Add optional ML classifier for molecule prioritization within collections#62
Open
akshat998 wants to merge 1 commit into
Open
Add optional ML classifier for molecule prioritization within collections#62akshat998 wants to merge 1 commit into
akshat998 wants to merge 1 commit into
Conversation
…ions Adds an FNN classifier (Morgan fingerprints -> 512 -> 256 -> 128 -> 1, trained with Adam/BCE and early stopping) that plugs into the existing tranche/collection-based screening workflow: train it once on a prescreen run's docking-score summaries (tools/train_ml_classifier.py), then each queue (Slurm) or AWS Batch subjob filters its own collection(s) through it before docking, keeping only molecules predicted worth the cost of a full docking run. Implemented consistently across both execution paths: - Slurm/HPC: one-queue.sh invokes a small CLI bridge (ml_classifier_predict.py) once per collection, since the rest of the pipeline is Bash and cannot run PyTorch directly. - AWS Batch: vf_aws_run.py calls the shared ml_classifier module in-process, batched once per subjob. Activated via all.ctrl (use_ml_classifier); disabled by default with no change to existing behavior. Also unifies the two execution paths' docking-score summary file schema (both now include a SMILES column, and both use the best/most-negative score for the "maximum-score" column, matching what the column name implies), and updates vf_report.sh's column extraction to match the corrected schema.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
use_ml_classifier=falseinall.ctrl); default behavior is unchanged.one-queue.sh(Slurm/HPC) invokes a small CLI bridge (ml_classifier_predict.py) once per collection since the rest of that pipeline is Bash;vf_aws_run.py(AWS Batch) calls the sharedml_classifiermodule in-process, batched once per subjob.tools/train_ml_classifier.py: trains on a prescreen run's existing docking-score summary files, no Slurm/AWS Batch job needed.vf_report.sh's column extraction ($4->$5) to match, since the prior mismatch would have silently misreported average score as the top-hit ranking score.