{"id":22096219,"url":"https://github.com/aspirincode/qsar","last_synced_at":"2025-03-24T00:56:52.268Z","repository":{"id":92050232,"uuid":"140664478","full_name":"AspirinCode/QSAR","owner":"AspirinCode","description":"Neural Network based model relevant for drug discovery","archived":false,"fork":false,"pushed_at":"2018-03-19T03:38:25.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T07:30:30.925Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AspirinCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-07-12T05:20:13.000Z","updated_at":"2022-10-18T15:25:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"76ac4a50-807b-4f42-9c4e-1cda45fe801b","html_url":"https://github.com/AspirinCode/QSAR","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspirinCode%2FQSAR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspirinCode%2FQSAR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspirinCode%2FQSAR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspirinCode%2FQSAR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AspirinCode","download_url":"https://codeload.github.com/AspirinCode/QSAR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245191636,"owners_count":20575248,"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","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":[],"created_at":"2024-12-01T04:09:52.748Z","updated_at":"2025-03-24T00:56:52.262Z","avatar_url":"https://github.com/AspirinCode.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QSAR\n\nThe pharmaceutical industry relies on Quantitative structure−activity relationships (QSAR) models to predict a quantified biological response of a molecule based on its descriptors, which are essentially studied properties of the molecule. These descriptors vary in complexity and can range from simple molecular weight measures to complex geometric features. Drug discovery is a time-consuming and expensive process for pharma. A major purpose of these QSAR models is to help accelerate discovery of molecular drug candidates through reduced experimental work, and eventually bring a drug to market faster. Due to recent advances in Machine Learning and hardware capabilities, Deep Neural Networks (DNNs) serve as a promising tool to predict biological activity, such as receptor binding or enzyme inhibition, based on molecular descriptors.\n\nThis project implements a DNN based on the architecture and parameters described in the following paper:\n\n`Ma, J., Sheridan, R.P., Liaw, A., Dahl, G.E. and Svetnik, V., 2015. Deep neural nets as a method for quantitative structure–activity relationships. Journal of chemical information and modeling, 55(2), pp.263-274.`\n\n## Getting Started\n\nThe data used for training and evaluation of the model is can be downloaded from the paper's supplementary section.\n\n[Paper's supplementary page](https://pubs.acs.org/doi/suppl/10.1021/ci500747n)\n\nBoth the training and test data are structured in such a way that each row represents a molecule. There is a single column called \"Act\" that represents the biological activity that is to be predicted. The rest of the columns are molecular descriptors.\n\n### Prerequisites\n\n* Docker\n* Pipenv\n\n\n[Docker Installation Documentation](https://docs.docker.com/install/#desktop)\n\n[Pipenv Installation Documentation](https://docs.pipenv.org/)\n\n### Installing\n* Install dependencies via Pipenv\n* Build Docker image based on Dockerfile\n\n```\nmake build\n```\n\n### Preparing the Data for Training\nSpecify the dataset of interest and its location. For example:\n\n```\nmake preprocess DATASET=NK1 DATA=~/Documents/qsar/\n```\n\n\n### Training the Model\n\nSpecify the dataset of interest and its location and override the batch size and number of epochs specified in the Makefile.\n\n```\nmake train DATASET=NK1 DATA=~/Documents/qsar/ BATCH_SIZE=64 EPOCHS=128\n```\n\n### Evaluating the Model\n\nSpecify the dataset of interest and its location. For example:\n\n```\nmake evaluate DATASET=NK1 DATA=~/Documents/qsar/\n```\n\nThe metric used to evaluate the model is the correlation coefficient (R2). According to Ma et al., a model with coefficient even as low as 0.30 is still useful since QSAR is used to prioritize a large number of molecular compounds so the activity prediction on a single molecular basis is less important. The paper recommends that the number of epochs should be set as high as possible (within hardware limits) to increase the R2. The trade off is time and resources vs. a higher R2.\n\n### Testing\n\nPytest\n\n```\nmake test\n```\n### Linting\n\nFlake8 is the chosen linter\n\n```\nmake lint\n```\n\n## Acknowledgments\n\nThank you to Ma, J et al. for clear description of DNN architecture and supplementary data\n\n### Future Work\n* NVIDIA Docker image for GPU based Training\n* Error handling if weights aren't available for a dataset\n* Tests around the Preprocessor\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faspirincode%2Fqsar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faspirincode%2Fqsar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faspirincode%2Fqsar/lists"}