Skip to content

Release v1.0.0 on main - #94

Merged
cmatKhan merged 37 commits into
mainfrom
dev
Mar 18, 2026
Merged

Release v1.0.0 on main#94
cmatKhan merged 37 commits into
mainfrom
dev

Conversation

@cmatKhan

Copy link
Copy Markdown
Member

No description provided.

Zolboo Erdenebaatar and others added 30 commits December 1, 2025 15:18
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
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
* 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

* 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>
…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

* 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>
* 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>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
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
* 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

* 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>
…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

* 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>
* 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>

* removing a rebase error

* renaming exclude_interaction_variable to exclude_model_variable

* clarifying cmd line instructions

* updating macos github actions version

* Update README.md

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

* fixing plural on exclude_model_variables

* Update tfbpmodeling/interface.py

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

* Update tfbpmodeling/interface.py

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

* fixing some documentation issues with plural/singular and names around exclude and include variables

* Update docs/cli/linear-perturbation-binding-modeling.md

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

---------

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: 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: Copilot <175728472+Copilot@users.noreply.github.com>
cmatKhan and others added 6 commits February 17, 2026 11:01
* 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

* 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>

* removing a rebase error

* trying to fix logger issue

---------

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: 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: ejiawustl <e.jia@wustl.edu>
* 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

* 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>

* removing a rebase error

* Added logic for the following: (1) stage3_2b, (2) skip_1st_stage, (3) stage2_set_zero

* refactoring

* refactoring documentation

* versioning to v1.0.0

* addressing scipy future warning on n_alphas to alphas

* removing trailing whitespace

* Potential fix for pull request finding

The top-n bootstrap random_state calculation treats 0 as falsy: args.random_state + 10 if args.random_state else .... If a user passes --random_state 0, Stage 2 will incorrectly reuse the Stage 1 seed instead of offsetting it. Use an explicit is not None check so that 0 is handled as a valid seed.

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

* addressing copilot suggestions

* revising given copilot review

* clarifying stage3 order

* addressing copilot logger and sorted order of stage3_lassocv terms

* adding documentation for sample_weight_normalization in modelinputdata class

* changing logging level for no coefficients logs

* doing some output name refactoring

* refactoring docs

* updating output_dir help text

---------

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: 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: ejiawustl <e.jia@wustl.edu>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@codecov

codecov Bot commented Mar 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.42735% with 116 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.29%. Comparing base (2209bf6) to head (67db7e6).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
tfbpmodeling/__main__.py 50.67% 93 Missing and 17 partials ⚠️
tfbpmodeling/modeling_input_data.py 44.44% 3 Missing and 2 partials ⚠️
tfbpmodeling/configure_logger.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #94      +/-   ##
==========================================
- Coverage   72.19%   67.29%   -4.91%     
==========================================
  Files          13       14       +1     
  Lines         838      954     +116     
  Branches      116      132      +16     
==========================================
+ Hits          605      642      +37     
- Misses        174      247      +73     
- Partials       59       65       +6     

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

@cmatKhan
cmatKhan merged commit d2e5dae into main Mar 18, 2026
6 checks passed
@cmatKhan
cmatKhan deleted the dev branch March 18, 2026 17:20
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.

3 participants