Package: insilico
insilico: A Python package to process & model ChEMBL data.ChEMBL is a manually curated chemical database of bioactive molecules with drug-like properties. It is maintained by the European Bioinformatics Institute (EBI), of the European Molecular Biology Laboratory (EMBL) based in Hinxton, UK.insilicohelps drug researchers find promising compounds for drug discovery. It preprocesses ChEMBL molecular data and outputs Lapinski's descriptors and chemical fingerprints using popular bioinformatic libraries. Additionally, this package can be used to make a decision tree model that predicts drug efficacy.About the package nameThe termin silicois a neologism used to mean pharmacology hypothesis development & testing performed via computer (silicon), and is related to the more commonly known biological termsin vivo("within the living") andin vitro("within the glass".)InstallationInstallation via pip:$ pip install insilicoInstallation via cloned repository:$ git clone https://github.com/konstanzer/insilico
$ cd insilico
$ python setup.py installPython dependenciesFor preprocessing,rdkit-pypi,padelpy, andchembl_webresource_clientand for modeling,sklearnandseabornBasic Usageinsilicooffers two primary functions: one to search the ChEMBL database and a second to output preprocessed ChEMBL data based on the molecular ID, which saves the chemical fingerprint in the data folder.Using the chemical fingerprint, theModelChemblclass creates a decision tree and outputs residual plots and metrics. When declaring the modeling class, you may specify a test set size and a variance threshold, which sets the minimum variance allowed for each column. This optional step can eliminate hundreds of features unhelpful for modeling.When calling thetreefunction, you may specify max tree depth and cost-complexity alpha, hyperparameters to control overfitting.frominsilicoimporttarget_search,process_target_data,Model# return search results for 'P. falciparum D6'result=target_search('P. falciparum D6')# return molecular data for CHEMBL2367107 (P. falciparum D6)df=process_target_data('CHEMBL2367107')# display molecular descriptor plotsplot_descriptors(df)model=ModelChembl(df,test_size=0.2,var_threshold=0.15)# return a fitted decision tree & test set predictionstree,predictions=model.tree(max_depth=50,ccp_alpha=0.)# return metrics (R^2 and MAE) & display plots for test setmetrics=model.evaluate(predictions)# return split data for other modelingX_train,X_test,y_train,y_test=model.get_data()Advanced option: Use optional 'fp' parameter to specify fingerprinterValid fingerprinters are "PubchemFingerprinter" (default), "ExtendedFingerprinter", "EStateFingerprinter", "GraphOnlyFingerprinter", "MACCSFingerprinter", "SubstructureFingerprinter", "SubstructureFingerprintCount", "KlekotaRothFingerprinter", "KlekotaRothFingerprintCount", "AtomPairs2DFingerprinter", and "AtomPairs2DFingerprintCount".df=process_target_data('CHEMBL2367107',fp='SubstructureFingerprinter')Contributing, Reporting Issues & SupportMake a pull request if you'd like to contribute toinsilico. Contributions should include tests for new features added and documentation. File an issue to report problems with the software or feature requests. Include information such as error messages, your OS/environment and Python version.Questions may be sent to Steven Newton (steven.j.newton99@gmail.com).ReferencesBioinformatics Project from Scratch: Drug Discoveryby Chanin Nantasenamat