Giter Site home page Giter Site logo

cadrres's Introduction

CaDRReS

Cancer Drug Response prediction using a Recommender System (CaDRReS) is based on the matrix factorization approach to predict which drugs are sensitive for an unseen cell line. CaDRReS can also be used for studying drug response mechanisms including classes of drugs, subtypes of cell lines based on drug response profile, and drug-pathway associations.

Chayaporn Suphavilai, Denis Bertrand, Niranjan Nagarajan; Predicting Cancer Drug Response using a Recommender System, Bioinformatics, Volume 34, Issue 22, 15 November 2018, Pages 3907โ€“3914, https://doi.org/10.1093/bioinformatics/bty452

A newer TensorFlow implementation of CaDRReS, with additional features to support single-cell RNA-seq data, as well as Jupyter notebooks for model training and testing, can be found here: https://github.com/CSB5/CaDRReS-SC.

How to run CaDRReS?

CaDDReS is based on Python 2.7

Required libraries
  • Pandas
  • Numpy
  • Scipy
  • Argparse
pip install -r requirements.txt
NOTE

Users have two options to run CaDRReS. The first option is to run CaDRReS_test.py for applying the pre-trained model based on the GDSC dataset to predict drug response of input samples. The second option is to run CaDRReS_train_and_test.py for training and testing the model as well as obtaining the pharmacogenomic space for input samples. We provide examples for both options below:

Predicting drug responses from an existing model

Here we provides a model trained on the GDSC dataset using 10 dimensions for the pharmacogenomic space.

Input files

  • CaDRReS_model.pickle is a file containing an existing model
  • drug_response_ic50_test.csv contains an empty matrix where rows are cell lines and columns are features
  • cell_line_features.csv contains a feature matrix where rows are the cell lines to be analyzed and columns are features. The features have to match with the features used for training the model.

Output file

  • Drug response prediction for input cell lines {out_dir}/CaDRReS_pred.csv
  • Matrices P and Q and bias terms {out_dir}/CaDRReS_pred.pickle

Command

python CaDRReS_test.py CaDRReS_model.pickle ../input/ccle_all_abs_ic50_bayesian_sigmoid.csv ../input/ccle_cellline_pcor_ess_genes.csv {out_dir}

An example command for predicting drug responses based on the provided model:

$ cd scripts
$ python CaDRReS_test.py ../output/10D/seed0/lr0-01/CaDRReS_model.pickle ../input/ccle_all_abs_ic50_bayesian_sigmoid.csv ../input/ccle_cellline_pcor_ess_genes.csv ../output

Training and testing a model

Input files

  • drug_response_ic50_train.csv contains a matrix of IC50s where rows are cell lines and columns are drugs
  • drug_response_ic50_test.csv contains an empty matrix where rows are cell lines and columns are drugs
  • cell_line_features.csv contains a feature matrix where rows are both testing and training cell lines and columns are features
  • drug_list.txt is a text file contains drugs of interest

Output files

  • Drug response prediction of testing cell lines {out_dir}/{f}D/seed{seed}/lr{l_rate}/CaDRReS_pred_end.csv
  • Drug response prediction of training cell lines {out_dir}/{f}D/seed{seed}/lr{l_rate}/CaDRReS_pred_end_train.csv
  • A pickle file contains the model {out_name}/{f}D/seed{seed}/lr{l_rate}/CaDRReS_model.pickle
  • Cell line (P) and drug (Q) matrices {out_name}/{f}D/seed{seed}/lr{l_rate}/CaDRReS_P.csv and {out_name}/{f}D/seed{seed}/lr{l_rate}/CaDDReS_Q.csv

Parameters

Description Variable Example
Number of dimensions f 10
Output directory out_dir output/
Maximum iterations max_iterations 50000
Learning rate l_rate 0.01
Random seed seed 0

Command

python CaDRReS_train_and_test.py drug_response_ic50_train.csv drug_response_ic50_test.csv  cell_line_features.csv drug_list.txt {out_dir} {f} {max_iterations} {l_rate} {seed}

Note that CaDRReS also saves checkpoints (parameters and predictions) of the model for every 1000 iterations. An example command to train a model for the CCLE dataset:

$ cd scripts
$ python CaDRReS_train_and_test.py ../input/ccle_all_abs_ic50_bayesian_sigmoid.csv ../input/ccle_all_abs_ic50_bayesian_sigmoid.csv ../input/ccle_cellline_pcor_ess_genes.csv ../misc/ccle_drugMedianGE0.txt ../output 10 50000 0.01 0

Bayesian Sigmoid Curve Fitting

For calculating dose-response curves for CCLE and GDSC, please visit this page.

Contact

Please direct any questions or feedback to Chayaporn Suphavilai ([email protected]) and Niranjan Nagarajan ([email protected]).

cadrres's People

Contributors

dependabot[bot] avatar nnnagara avatar nokcs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cadrres's Issues

how can i run CaDrRes?

hello there, i am having trouble in running this code. can you guide me that which IDE i should use to run and which python version is needed?

Why calculate a new IC50?

Hi,
The GDSC Provided the IC50 of the drug. Why calculate a new IC50? What are the advantages of the newly IC50?
Thanks for your attention!
Bests

GDSC dose response scores .zip file

I am trying to download the GDSC_dose_response_scores.zip file.
When I try to open this file, I get the error:

End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of GDSC_dose_response_scores.zip or GDSC_dose_response_scores.zip.zip, and cannot find GDSC_dose_response_scores.zip.ZIP, period.

It appears that the file is broken. Is there a special way I should be reading this/opening this?

How to apply this tool to my own samples?

Hi Nok,
its a amazing tool, but some problems occured when i tried to apply it to my own dataset.

In your examples, you used ccle_cellline_pcor_ess_genes.csv as a feature matrix, and it confused me that why you chose to use a similarity matrix instead of a essential genes' matrix?
(if i want to use this tool to predict the drug response of patients in TCGA cohort, how to preprocess the TCGA data?)

Besides, can i use log(AUC) instead of log(IC50)?

cannot get the result in the literature

I use the command like
python CaDRReS_train_and_test.py ../input/cv/ccle_cv_5f_train_2.csv ../input/cv/ccle_cv_5f_test_2.csv ../input/ccle_cellline_pcor_ess_genes.csv ../misc/ccle_drugMedianGE0.txt ../output 10 50000 0.01 0

I foud that the test_dataset ndcg reduce from 1000 to 50000 although the train_dataset ndcg increase.
I just got the test ndcg result just 0.46

Source code of bayesian sigmoid curve fitting

In the manuscript, it mentions that bayesian sigmoid curve fitting approach was applied to raw intensity data at different drug dosages to re-compute IC50. Will these part of source code be released ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.