This GitHub repo contains data and scripts relevant to COVID-19, which is the disease caused by the virus SARS-CoV-2. For a full descriptions of our efforts, please see https://www.aicures.mit.edu/.
Note that since relatively little data for SARS-CoV-2 is available, most of the data in this repo is for SARS-CoV (responsible for the 2002/3 SARS outbreak) and other related coronaviruses. The hope is that models trained on this data will be able to retain their predictive ability on SARS-CoV-2.
Although the data contained in this repo can be used by any model, we have primarily been working with the message passing neural network model chemprop. Our trained models are available on http://chemprop.csail.mit.edu/predict and the predictions from these models on the Broad Repurposing Hub are available in predictions/.
SARS-CoV data
SARS-CoV-2 data
Data extracted from literature
Catalogues of drugs that can be screened for repurposing
Other property prediction data
Contains train/dev/test splits (using a scaffold split) of some of the above datasets for benchmarking purposes.
Original raw data files and format conversions.
Predictions made by trained models on some of the repurposing datasets. See the README inside the predictions/ directory for details.
t-SNE plots comparing the datasets. Note that in the plots, "sars_pos" and "sars_neg" refer to any hits or non-hits, respectively, across both AID1706_binarized_sars.csv and PLpro.csv.
Files for converting between smiles/cid/name. Obtained from https://pubchem.ncbi.nlm.nih.gov/idexchange/idexchange.cgi
The nearest neighbor computations from each test set to the training set.
Various data processing scripts for reuse/reproducibility.
Statistics about overlap between the SMILES strings of various datasets.
t-SNE plots of chemical rationales extracted (using this code) from a model trained on the combined AID1706 and PLpro datasets.
Older versions of files from when we combined AID1706 data with other data that was unhelpful.
These commands are for running experiments using chemprop and should be run from the main directory in the chemprop repo. You may need to modify some paths depending on your directory structure. The commands below assume you are using AID1706_binarized_sars.csv but can be modified to work with any of the datasets.
To speed up experiments, you can pre-generate RDKit features using the script save_features.py
in chemprop/scripts
. You should run this command:
python save_features.py
--data_path ../../coronavirus_data/data/AID1706_binarized_sars.csv \
--save_path ../../coronavirus_data/features/AID1706_binarized_sars.npz \
--features_generator rdkit_2d_normalized
By default this will run feature generation using parallel processing. On occasion the parallel processing gets stuck near the end of feature generation, so if this happens, just kill the process and restart with the --sequential
flag. This will pick up where the parallel version stopped and will finish correctly.
python train.py \
--data_path ../coronavirus_data/data/AID1706_binarized_sars.csv \
--dataset_type classification \
--save_dir ../coronavirus_data/ckpt/AID1706_binarized_sars \
--features_path ../coronavirus_data/features/AID1706_binarized_sars.npz \
--no_features_scaling \
--split_type scaffold_balanced \
--quiet
The data splitting mechanism in chemprop is seeded so that this will reproduce the same train/dev/test split as in splits.zip.
To run experiments with class balance, switch to the class_weights
branch of chemprop (git checkout class_weights
) and add the --class_balance
flag. This will train with an equal number of positives and negatives in each batch.
Experiment combining data on the 3CLpro target for SARS-CoV-2 mpro_xchem.csv and SARS-CoV AID1706_binarized_sars.csv.
5-fold cross validation performance is 0.850 +/- 0.022.
python multitask.py \
--data_path data/mpro_xchem.csv \
--source_data_path data/AID1706_binarized_sars.csv \
--dataset_type classification \
--save_dir ckpt/