{"id":32566112,"url":"https://github.com/gitter-lab/active-learning-drug-discovery","last_synced_at":"2025-10-29T05:00:11.884Z","repository":{"id":47729154,"uuid":"154545740","full_name":"gitter-lab/active-learning-drug-discovery","owner":"gitter-lab","description":"Iterative chemical screening pipeline for drug discovery","archived":false,"fork":false,"pushed_at":"2025-06-02T17:44:40.000Z","size":106970,"stargazers_count":5,"open_issues_count":13,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-03T07:03:51.580Z","etag":null,"topics":["active-learning","drug-discovery","virtual-screening"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gitter-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-10-24T18:02:22.000Z","updated_at":"2025-05-07T14:51:59.000Z","dependencies_parsed_at":"2025-06-02T19:38:33.849Z","dependency_job_id":null,"html_url":"https://github.com/gitter-lab/active-learning-drug-discovery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gitter-lab/active-learning-drug-discovery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Factive-learning-drug-discovery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Factive-learning-drug-discovery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Factive-learning-drug-discovery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Factive-learning-drug-discovery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gitter-lab","download_url":"https://codeload.github.com/gitter-lab/active-learning-drug-discovery/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitter-lab%2Factive-learning-drug-discovery/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281563786,"owners_count":26522704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["active-learning","drug-discovery","virtual-screening"],"created_at":"2025-10-29T04:59:58.185Z","updated_at":"2025-10-29T05:00:11.865Z","avatar_url":"https://github.com/gitter-lab.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Active Learning in Drug Discovery\n\n[![Test active learning in drug discovery](https://github.com/gitter-lab/active-learning-drug-discovery/actions/workflows/test.yml/badge.svg)](https://github.com/gitter-lab/active-learning-drug-discovery/actions/workflows/test.yml)\n\n\u003c!--\n## Citation\n\nIf you use this software please cite:\n\nMoayad Alnammi, Spencer S. Ericksen, Scott A. Wildman, Nathan Wlodarchak, Hunter Reis, Troy King, Song Guo, Gene E. Ananiev, Anthony Gitter.\nIterative Batched Screening.\n2021. [doi:xx.xxxx/xxxxxx]()\n--\u003e\n\n## Installation\n\nWe recommend creating a [conda environment](https://conda.io/docs/user-guide/tasks/manage-environments.html) to manage the dependencies.\nAssumes [Anaconda installation](https://www.anaconda.com/download/). \nClone this repository:\n```\ngit clone https://github.com/gitter-lab/active-learning-drug-discovery.git\ncd active-learning-drug-discovery\n```\n\nSetup the `active_learning_dd` conda environment using the `conda_cpu_env.yml` file:\n```\nconda env create -f conda_cpu_env.yml\nconda activate active_learning_dd\n```\nIf you do want GPU support, you can replace `conda_cpu_env.yml` with `conda_env.yml`.\n\nFinally, install `active_learning_dd` with `pip`:\n```\npip install -e .\n```\n\nNow check the installation is working correctly by running the sample data test:\n```\ncd chtc_runners\npython sample_data_runner.py \\\n        --pipeline_params_json_file=../param_configs/sample_data_config.json \\\n        --hyperparams_json_file=../param_configs/experiment_PstP_hyperparams/sampled_hyparams/ClusterBasedWCSelector_609.json \\\n        --iter_max=5 \\\n        --no-precompute_dissimilarity_matrix \\\n        --initial_dataset_file=../datasets/sample_data/training_data/iter_0.csv.gz\n ```\n \n You should see the following last prompt:\n ```\n Finished testing sample dataset. Verified that hashed selection matches stored hash.\n ``` \n\n## datasets\n\nThe datasets used in this study are: PriA-SSB target, 107 PubChem BioAssay targets, and PstP target. \n\u003c!--The specific datasets used in this study can be downloaded from: [doi:xx.xxxx/zenodo.xxxxxxx](). --\u003e\nThe datasets will be uploaded to Zenodo in the near future.\n\nThe repository also contains a small dataset for testing: `datasets/sample_data/`. \n\n## active_learning_dd\n\nThe `active_learning_dd` subdirectory contains the main codebase for the iterative batched screening components. \nConsult the README in that subdirectory for details. \n\n## param_configs\n\nThis subdirectory contains json config files for strategies and experiments used in the [thesis document](https://www.biostat.wisc.edu/~gitter/pubs/AlnammiThesis.pdf).\nConsult the README in that subdirectory for details. \n\n## analysis_notebooks\n\nThis subdirectory contains Jupyter notebooks that preprocess the datasets, debug methods, analyze the results, and produce result images.\n\n## runner scripts\n\n`chtc_runners/` contains runner scripts for the experiments in the [thesis document](https://www.biostat.wisc.edu/~gitter/pubs/AlnammiThesis.pdf).\n`chtc_runners/simulation_runner.py` can be used as a starting template for your own runner script. \n`chtc_runners/simulation_utils.py` contains helper functions for pre- and post-processing iteration selections for retrospective experiments. \nConsult the README in that subdirectory for details. \n\n## Implemented Iterative Strategies\n\nThe following are the currently implemented strategies in `active_learning_dd/next_batch_selector/` (see [thesis document](https://www.biostat.wisc.edu/~gitter/pubs/AlnammiThesis.pdf) and hyperapameter examples in `param_configs/`):\n\n1. **ClusterBasedWeightSelector (CBWS)**: assigns exploitation-exploration weights to every cluster, splits the budget between exploit-explore, then select compounds from most exploitable clusters, followed by selecting most explorable clusters. \n\n2. **ClusterBasedRandom**: randomly samples a cluster, then randomly samples compounds from within clusters. \n\n3. **InstanceBasedRandom**: randomly samples compounds from the pool. \n\n4. **ClusterBasedDissimilar**: samples clusters dissimilarly according to a dissimilarity measure which is by default fingerprint based. \n\n5. **InstanceBasedDissimilar**: samples compounds dissimilarly from the pool. \n\n6. **MABSelector**: Upper-Confidence-Bound (UCB) style solution from Multi-Armed Bandits (MAB). \nAssigns every cluster an upper-bound estimate of the reward that is a combination of a exploitation term and an exploration term. \nSamples clusters with the highest rewards. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitter-lab%2Factive-learning-drug-discovery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgitter-lab%2Factive-learning-drug-discovery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgitter-lab%2Factive-learning-drug-discovery/lists"}