Skip to content

Conversation

@cmatKhan
Copy link
Member

No description provided.

cmatKhan and others added 30 commits May 6, 2025 09:35
…a separate output directory to differentiate from all data modeling
initial topn modeling implementation
…md line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
stepwise modelling, issue #13
initial attempt of stage 3 of modeling code for sigmoid
cmatKhan and others added 16 commits June 4, 2025 18:12
removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI
* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging
* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list
* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>
* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>
* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>
* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance
…e minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size
* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>
* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>
@codecov
Copy link

codecov bot commented Sep 22, 2025

Codecov Report

❌ Patch coverage is 69.35484% with 228 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.79%. Comparing base (2e3ce86) to head (1c5d8bd).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
tfbpmodeling/interface.py 50.90% 67 Missing and 14 partials ⚠️
tfbpmodeling/bootstrap_model_results.py 47.25% 44 Missing and 4 partials ⚠️
tfbpmodeling/modeling_input_data.py 71.97% 23 Missing and 21 partials ⚠️
tfbpmodeling/bootstrapped_input_data.py 83.21% 19 Missing and 5 partials ⚠️
tfbpmodeling/bootstrap_stratified_cv.py 69.38% 9 Missing and 6 partials ⚠️
tfbpmodeling/stratified_cv.py 53.33% 7 Missing and 7 partials ⚠️
...odeling/evaluate_interactor_significance_linear.py 92.30% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #77      +/-   ##
==========================================
- Coverage   72.59%   71.79%   -0.81%     
==========================================
  Files           5       13       +8     
  Lines         697      826     +129     
  Branches      116      116              
==========================================
+ Hits          506      593      +87     
- Misses        125      174      +49     
+ Partials       66       59       -7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@cmatKhan cmatKhan requested a review from Copilot September 22, 2025 20:40
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR prepares the tfbpmodeling package for paper release by restructuring the codebase through significant refactoring. The changes break down a large monolithic file into smaller, focused modules and update imports accordingly.

  • Modularizes the codebase by extracting classes and functions from lasso_modeling.py into separate files
  • Updates all test files to use the new module structure with corrected imports
  • Removes deprecated files including SigmoidModel.py and related sigmoid modeling tests
  • Adds new utility functions and consolidates the interface layer

Reviewed Changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tfbpmodeling/utils/exclude_predictor_variables.py New utility function for filtering predictor variables with exclusion logic
tfbpmodeling/tests/test_utils.py Tests for the new exclude_predictor_variables utility function
tfbpmodeling/tests/test_*.py Updated test files with corrected imports and removed sigmoid-related tests
tfbpmodeling/modeling_input_data.py Extracted ModelingInputData class with improved scaling functionality
tfbpmodeling/bootstrap_*.py Modularized bootstrap-related classes and functions
tfbpmodeling/interface.py New consolidated interface module for command-line functionality
tfbpmodeling/stratification_classification.py Simplified to remove perturbation-based binning
tfbpmodeling/__main__.py Significantly reduced by moving functionality to interface module

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +365 to +368
raise ValueError(
"Indices of response_df and predictors_df do not match after "
"filtering for common features. Please check your input data."
)
Copy link

Copilot AI Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a spelling error in the comment on line 362: 'indicies' should be 'indices'.

Copilot uses AI. Check for mistakes.
Comment on lines +221 to +222
formula = f"{random_sample_data_no_signal.perturbed_tf} + \
{' + '.join(interaction_terms)} - 1"
Copy link

Copilot AI Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The backslash line continuation is unnecessary here since the expression is already within parentheses on line 221. Consider removing the backslash and properly indenting the second line.

Suggested change
formula = f"{random_sample_data_no_signal.perturbed_tf} + \
{' + '.join(interaction_terms)} - 1"
formula = (
f"{random_sample_data_no_signal.perturbed_tf} + {' + '.join(interaction_terms)} - 1"
)

Copilot uses AI. Check for mistakes.
@cmatKhan cmatKhan merged commit 39fa701 into main Sep 22, 2025
6 of 8 checks passed
cmatKhan added a commit that referenced this pull request Sep 22, 2025
* preparing for paper release (#77)

* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* claude developed docs

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>
cmatKhan added a commit that referenced this pull request Sep 22, 2025
* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

* Adding documentation (#78)

* preparing for paper release (#77)

* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* claude developed docs

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>
cmatKhan added a commit that referenced this pull request Dec 1, 2025
* preparing for paper release (#77)

* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* claude developed docs

* removing a old comment

* updating documentation to reflect that the centering option is removed

* removing a old comment

* updating documentation to reflect that the centering option is removed

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>
cmatKhan added a commit to cmatKhan/tfbpmodeling that referenced this pull request Dec 1, 2025
* preparing for paper release (BrentLab#77)

* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (BrentLab#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (BrentLab#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (BrentLab#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (BrentLab#36)

* loop exits if no variable selected within the loop, fixes issue 34 (BrentLab#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (BrentLab#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (BrentLab#44)

* adding feature stage4_topn (BrentLab#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (BrentLab#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (BrentLab#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (BrentLab#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (BrentLab#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (BrentLab#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (BrentLab#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (BrentLab#60)

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* claude developed docs

* removing a old comment

* updating documentation to reflect that the centering option is removed

* removing a old comment

* updating documentation to reflect that the centering option is removed

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>
cmatKhan added a commit that referenced this pull request Dec 1, 2025
* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

* Adding documentation (#78)

* preparing for paper release (#77)

* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* claude developed docs

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* Fix estimator comment in interface (#83)

* preparing for paper release (#77)

* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* claude developed docs

* removing a old comment

* updating documentation to reflect that the centering option is removed

* removing a old comment

* updating documentation to reflect that the centering option is removed

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* stepwise modelling

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Fix estimator comment in interface (#83)

* preparing for paper release (#77)

* updating the tmp/readme

* updating precommit

* fixing cmd line interface in __main__

* updating typing on sigmoid fit

* adding logging re how CV is performed

* initial topn modeling implementation. This will store the results in a separate output directory to differentiate from all data modeling

* initial attempt of stage 3 of modeling. This seems to run without issues based on limited testing.

* stepwise modelling

* this separates the sigmoid step 3 into its own function; reoganizes cmd line input into reusable groups; sets the evaluate_interactor_significance estimator to LinearRegression by default

* removing windows 2019 from CI

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/loop_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* with pre-commit

* removing islice from bootstrap loop

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* only running tests on ubuntu

* trying to configure codecov

* debugging codecov

* debugging codecov

* removing codecov badge and updating the pytest badge

* adding the codecov badge back in -- secret corrected in the repo

* debugging codecov

* still debugging codecov

* Add cubic ptf and standardization (#29)

* init

* After installing pre-commit

* add center and scaling

* changing the names for center scaling

* Update tfbpmodeling/__main__.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/tests/test_lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Update tfbpmodeling/lasso_modeling.py

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* debugging the names for scale and center

* editing annotatioins

---------

Co-authored-by: Chase Mateusiak <chasem@wustl.edu>

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* Add function to exclude all model variables (#33)

* adding function to exclude all predictors. this can be used to exclude all and then use args.add_model_variables to customize the formula

* casting predictor_variables to list

* fixing centering and scaling (#36)

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* setting evaluate_interactor_significance ci_level to the parse args argument

* Tommy new stage3 (#41)

* WIP

* fixing imported but not used

* adding argument to include stage4_lasso

* changing formatting problems

* adding logger infomation for stage 4 method

* changing location of logger info for stage 4 method

* modifying logger.info to evaluate_interactor_significance

* adding f string to Writing the final interactor significance results to {output_significance_file}

* fixing logging

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: chasem <chasem@wustl.edu>

* fixing error in stratification_classification that reversed the bin_by_binding_only param (#44)

* adding feature stage4_topn (#43)

* adding feature stage4_topn

* modifying argument parser

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* Align response_df with predictors from get_modeling_data to ensure consistency when top_n_masked is enabled

* aligning stratified_cv_r2

* restoring changes to evaluate_interactor_significance_linear

* commit after fixing error in stratification_classification

* attempt to fixing inconsistent numbers of samples

* fixing pr

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Add row max in interactor significance (#48)

* setting row max depending on model variables

* setting row max depending on model variables

* adding testing on log for evaluate_interactor_significance

* removing ptf from all data formula by default (#51)

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* removing scale_center from interface (#60)

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* claude developed docs

* removing a old comment

* updating documentation to reflect that the centering option is removed

* removing a old comment

* updating documentation to reflect that the centering option is removed

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* removing a rebase error

* Adding stage1 model output (#84)

* stepwise modelling

* with pre-commit

* removing fixtures to conftest; fixing spacing in loop module; adding pytest to CI

* Set random state on bootstraps; Remove unweighted bootstrap option (#31)

* intermediate

* propogating bootstrappedmodelinginputdata changes to __main__

* removed unweighted bootstrap options

* removing top_n as argparse option from step3 sigmoid parser

* adding center_scale to argparse

* setting drop_intercept to True permanently for sigmoid worker

* the sigmoid parameters must have args.drop_intercept still

* handling intercepts

* fixing typo in center_scale logging

* changing the way the formula is logged

* removing truncation from formula logging

* adding logging on random_state in bootstrappedmodelinput

* removing sample weight cv log

* removing sample weight cv logging

* loop exits if no variable selected within the loop, fixes issue 34 (#37)

* loop exits if no variable selected within the loop, fixes issue 34

* fixing linter issues

* linter issues

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>

* Remove bin by binding and Add check on number of features and increase minimal test case size (#54)

* saving changes for remove_bin_by_binding

* Add check on number of features and increase minimal test case size

* Separate the functions and objects in lasso_modeling.py (#58)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

* separate the functions and objects in lasso_modeling.py

* Refactor main by adding interface.py (#56)

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* create interface.py to separate main

* add tests to verify important logging statements

* move the logging configuration back into main

* fixing interface

* removing bin_by_binding_only from test arguments to interface

* adding name == main to main script

* create interface.py to separate main

* move the logging configuration back into main

* removing bin_by_binding_only from test arguments to interface

* rebasing refactor onto dev

* adding calling to main

* adding a feature column in test_interface

---------

Co-authored-by: chasem <chasem@wustl.edu>

* create interface.py to separate main

move the logging configuration back into main

fixing interface

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

rebasing refactor onto dev

create interface.py to separate main

move the logging configuration back into main

removing bin_by_binding_only from test arguments to interface

adding name == main to main script

separate the functions and objects in lasso_modeling.py

* renaming loop_modeling

* separate the tests out into files

* separate the tests out into files

* fixing evaluate_interactor_significance_lassocv

---------

Co-authored-by: chasem <chasem@wustl.edu>

* adding stage to output best prediction model and output documentation

* removing erroneous parameter group after merge

* adding output.md to mkdocs.yml

* Update tfbpmodeling/interface.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/output.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/output.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@n039.adm>
Co-authored-by: ezolbooe <e.zolboo@wustl.edu>
Co-authored-by: zolboo e <admin@zolboos-macbook-pro.local.dhcp.wustl.edu>
Co-authored-by: 17TML <liuchenxing9@gmail.com>
Co-authored-by: Zolboo Erdenebaatar <e.zolboo@login.adm>
Co-authored-by: zolboo e <admin@zolboos-MacBook-Pro.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants