single-cell-perturbation-analysis

21-241 Project: Analyzing single cell drug-induced perturbations using PCA.

https://github.com/html1101/single-cell-perturbation-analysis

Science Score: 18.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

21-241 Project: Analyzing single cell drug-induced perturbations using PCA.

Basic Info
  • Host: GitHub
  • Owner: html1101
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 1.36 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme Citation

readme.md

21-241 Final Project: Analyzing Drug Response Using PCA

By Sarah Cross and Aashna Kulshrestha

Overview

Analyzing and predicting how small molecules change gene expression across different cell types is a remarkably complex problem that is extremely important in the field of drug discovery, as new medicines are typically costly and extremely expensive to develop. If able to accurately predict how a small molecule upregulates or downregulates a set of genes, therapeutics could be developed to target genes known to be associated with specific illnesses entirely computationally, significantly accelerating and expending the development of new medicines.

This project, using classic Linear Algebra techniques, attempts to divulge certain insights into the mechanisms and patterns found in drug perturbation, looking in particular at how to reduce down the dimensionality of differential gene expression using PCA in order to observe patterns amongst similar drugs. Additionally, by obtaining the principal components of a set of 18,211 genes, this may serve as a better input for a model predicting drug perturbation, as models being trained on relatively few samples (634 samples, in this case) with many inputs (18,211 genes) are likely to be subjected to extreme overfitting (eg. the models have enough parameters that they can "remember" the exact points given during training, and retain high accuracy during training while receiving extremely low accuracy when exposed to new data).

Background

This project uses a dataset developed by Open Problems in Single-Cell Analysis, containing single-cell gene expression profiles (with 18,211 genes) taken from human peripheral blood mononuclear cells (PBMCs). The cells were treated with 144 compounds, then gene expression was measured and post-processed.

The researchers stipulated that PCA was likely to perform well on this particular problem, as many genes are co-regulated. This can happen for a variety of reasons; for example, genes may be grouped into the same operon and may be transcribed into proteins together, or may be part of the same metabolic pathway and coregulate one another. As a result, it is likely that there are not 18,211 genes that are changing completely independently of one another, and that many are linearly dependent on one another, making principal component analysis a viable pre-processing technique for this dataset in particular.

Graphs and Results

NK Cells

The graphs above displays the first three principal components of drug samples with pharmacological classifications (EPC) available in the OpenFDA Drug database and cross-referenced with the National Drug Codes List, filtered by the type of cell (as different types of cells may respond very differently to the same type of drug, the researchers opted to analyze cell types separately, focusing on NK cells in particular). Ultimately it was found that there was a relatively weak correlation between drugs of the same pharmacological class, indicating that, although the drugs perform in the same way, they do not necessarily modify similar genes (however, only around 20 drugs had a corresponding EPC, which is likely not enough data to form a strong conclusion).

For NK Cells, the following information was found (in which standard deviation measures how different, on average, the gene expression data was across the drugs tested in that particular drug class):

Drug Class | Standard Deviation ---|--- His-1 Receptor Antagonist | 0.475053 Dipeptidyl Peptidase 4 Inhibitor | 0.738885 Histone Deacetylase Inhibitor | 0.868306 Antimetabolite | 0.900148 Nucleoside Metabolic Inhibitor | 1.317649 Alkaloid | 0.660692 Azole Antifungal | 0.612870 Aldehyde Dehydrogenase Inhibitor | 2.026750 Thalidomide Analog | 0.790018 Hepatitis B Virus Nucleoside Analog Reverse Transcriptase Inhibitor | 1.174471 Kinase Inhibitor | 1.041723 Androgen Receptor Inhibitor | 0.727339 Antimycobacterial | 0.919412 Soluble Guanylate Cyclase Stimulator | 0.476024

Excluding Azoles and Aldehyde drugs, the following appears to indicate that drugs within the same classification generally will result in similar gene expression profiles compared to how similar they are compared to drugs of all classes.

Drug Covariance Matrix

The graph above displays the covariance matrix for each drug and how similarly genes respond to perturbation. Lighter colors indicate that the drugs share similar differential gene expression data (the diagonal displays values of 1 because a drug will share 100\% similarity with itself). From the data given, the covariance matrix displayed that the Vandetanib and Idelalisib drugs had the most similar gene expression profiles; this corroborates with existing information about both molecules, as both are anti-cancer drugs, kinase inhibitors, and both have a two-ring carbon, as well as 7 Hydrogen bond acceptor locations.

It was additionally found that a rank 100 matrix was able to form the original matrix with 99.5\% accuracy, compared to the original 18,211 genes given, indicating that many genes can be represented as linear combinations of one another, and that the data can be significantly summarized down to enable more efficient analysis and effective ML model training.

Owner

  • Name: Sarah Cross
  • Login: html1101
  • Kind: user
  • Location: Texas, USA
  • Company: PTZOptics

Software engineer intern at @PTZOptics. Upcoming CMU SCS undergrad!

Citation (citations (2).bib)

@misc{noauthor_open_nodate,
	title = {Open {Problems} – {Single}-{Cell} {Perturbations}},
	url = {https://kaggle.com/competitions/open-problems-single-cell-perturbations},
	abstract = {Predict how small molecules change gene expression in different cell types},
	language = {en},
	urldate = {2023-12-08},
}

@misc{noauthor_national_nodate,
	title = {National {Drug} {Codes} {List}},
	url = {https://ndclist.com/},
	journal = {National Drug Codes List},
}

@article{agrawal_predicting_2023,
	title = {Predicting gene expression changes upon epigenomic drug treatment},
	url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10541107/},
	doi = {10.1101/2023.07.20.549955},
	abstract = {Background
Tumors are characterized by global changes in epigenetic changes such as DNA methylation and histone modifications that are functionally linked to tumor progression. Accordingly, several drugs targeting the epigenome have been proposed for cancer therapy, notably, histone deacetylase inhibitors (HDACi) such as Vorinostatis and DNA methyltransferase inhibitors (DNMTi) such as Zebularine. However, a fundamental challenge with such approaches is the lack of genomic specificity, i.e., the transcriptional changes at different genomic loci can be highly variable thus making it difficult to predict the consequences on the global transcriptome and drug response. For instance, treatment with DNMTi may upregulate the expression of not only a tumor suppressor but also an oncogene leading to unintended adverse effect.

Methods
Given the pre-treatment transcriptome and epigenomic profile of a sample, we assessed the extent of predictability of locus-specific changes in gene expression upon treatment with HDACi using machine learning.

Results
We found that in two cell lines (HCT116 treated with Largazole at 8 doses and RH4 treated with Entinostat at 1μM) where the appropriate data (pre-treatment transcriptome and epigenome as well as post-treatment transcriptome) is available, our model distinguished the post-treatment up versus downregulated genes with high accuracy (up to ROC of 0.89). Furthermore, a model trained on one cell line is applicable to another cell line suggesting generalizability of the model.

Conclusions
Here we present a first assessment of the predictability of genome-wide transcriptomic changes upon treatment with HDACi. Lack of appropriate omics data from clinical trials of epigenetic drugs currently hampers the assessment of applicability of our approach in clinical setting.},
	urldate = {2023-12-08},
	journal = {bioRxiv},
	author = {Agrawal, Piyush and Gopalan, Vishaka and Hannenhalli, Sridhar},
	month = jul,
	year = {2023},
	pmid = {37781626},
	pmcid = {PMC10541107},
	pages = {2023.07.20.549955},
}

@misc{noauthor_gene_nodate,
	title = {Gene regulation {\textbar} {Biological} {Principles}},
	url = {https://bioprinciples.biosci.gatech.edu/module-4-genes-and-genomes/4-7-gene-regulation/},
	urldate = {2023-12-08},
}

@misc{noauthor_encyclopedia_nodate,
	title = {Encyclopedia of {Bioinformatics} and {Computational} {Biology}},
	url = {http://www.sciencedirect.com:5070/referencework/9780128114322/encyclopedia-of-bioinformatics-and-computational-biology},
	abstract = {Encyclopedia of Bioinformatics and Computational Biology: ABC of Bioinformatics, Three Volume Set combines elements of computer science, information t...},
	language = {en},
	urldate = {2023-12-08},
	journal = {ScienceDirect},
}

@article{razin_co-regulated_2021,
	title = {Co-{Regulated} {Genes} and {Gene} {Clusters}},
	volume = {12},
	issn = {2073-4425},
	url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8230824/},
	doi = {10.3390/genes12060907},
	abstract = {There are many co-regulated genes in eukaryotic cells. The coordinated activation or repression of such genes occurs at specific stages of differentiation, or under the influence of external stimuli. As a rule, co-regulated genes are dispersed in the genome. However, there are also gene clusters, which contain paralogous genes that encode proteins with similar functions. In this aspect, they differ significantly from bacterial operons containing functionally linked genes that are not paralogs. In this review, we discuss the reasons for the existence of gene clusters in vertebrate cells and propose that clustering is necessary to ensure the possibility of selective activation of one of several similar genes.},
	number = {6},
	urldate = {2023-12-08},
	journal = {Genes},
	author = {Razin, Sergey V. and Ioudinkova, Elena S. and Kantidze, Omar L. and Iarovaia, Olga V.},
	month = jun,
	year = {2021},
	pmid = {34208174},
	pmcid = {PMC8230824},
	pages = {907},
}

@misc{noauthor_notitle_nodate-1,
	url = {https://open.fda.gov/apis/},
	abstract = {openFDA},
	urldate = {2023-12-08},
}

@misc{pubchem_idelalisib_nodate,
	title = {Idelalisib},
	url = {https://pubchem.ncbi.nlm.nih.gov/compound/11625818},
	abstract = {Idelalisib {\textbar} C22H18FN7O {\textbar} CID 11625818 - structure, chemical names, physical and chemical properties, classification, patents, literature, biological activities, safety/hazards/toxicity information, supplier lists, and more.},
	language = {en},
	urldate = {2023-12-08},
	author = {{PubChem}},
}

@misc{pubchem_vandetanib_nodate,
	title = {Vandetanib},
	url = {https://pubchem.ncbi.nlm.nih.gov/compound/3081361},
	abstract = {Vandetanib {\textbar} C22H24BrFN4O2 {\textbar} CID 3081361 - structure, chemical names, physical and chemical properties, classification, patents, literature, biological activities, safety/hazards/toxicity information, supplier lists, and more.},
	language = {en},
	urldate = {2023-12-08},
	author = {{PubChem}},
}

GitHub Events

Total
Last Year

Dependencies

single-cell-perturbations/Cargo.lock cargo
  • adler 1.0.2
  • ahash 0.8.6
  • alloc-no-stdlib 2.0.4
  • alloc-stdlib 0.2.2
  • android-tzdata 0.1.1
  • android_system_properties 0.1.5
  • arrow-array 49.0.0
  • arrow-buffer 49.0.0
  • arrow-cast 49.0.0
  • arrow-data 49.0.0
  • arrow-ipc 49.0.0
  • arrow-schema 49.0.0
  • arrow-select 49.0.0
  • autocfg 1.1.0
  • base64 0.21.5
  • bitflags 1.3.2
  • brotli 3.4.0
  • brotli-decompressor 2.5.1
  • bumpalo 3.14.0
  • byteorder 1.5.0
  • bytes 1.5.0
  • cc 1.0.83
  • cfg-if 1.0.0
  • chrono 0.4.31
  • const-random 0.1.17
  • const-random-macro 0.1.16
  • core-foundation-sys 0.8.4
  • crc32fast 1.3.2
  • crunchy 0.2.2
  • flatbuffers 23.5.26
  • flate2 1.0.28
  • getrandom 0.2.11
  • half 2.3.1
  • hashbrown 0.14.2
  • iana-time-zone 0.1.58
  • iana-time-zone-haiku 0.1.2
  • integer-encoding 3.0.4
  • jobserver 0.1.27
  • js-sys 0.3.65
  • lexical-core 0.8.5
  • lexical-parse-float 0.8.5
  • lexical-parse-integer 0.8.6
  • lexical-util 0.8.5
  • lexical-write-float 0.8.5
  • lexical-write-integer 0.8.5
  • libc 0.2.150
  • libm 0.2.8
  • log 0.4.20
  • lz4_flex 0.11.1
  • miniz_oxide 0.7.1
  • num 0.4.1
  • num-bigint 0.4.4
  • num-complex 0.4.4
  • num-integer 0.1.45
  • num-iter 0.1.43
  • num-rational 0.4.1
  • num-traits 0.2.17
  • once_cell 1.18.0
  • ordered-float 2.10.1
  • parquet 49.0.0
  • paste 1.0.14
  • pkg-config 0.3.27
  • proc-macro2 1.0.69
  • quote 1.0.33
  • rustc_version 0.4.0
  • semver 1.0.20
  • seq-macro 0.3.5
  • snap 1.1.0
  • static_assertions 1.1.0
  • syn 2.0.39
  • thrift 0.17.0
  • tiny-keccak 2.0.2
  • twox-hash 1.6.3
  • unicode-ident 1.0.12
  • version_check 0.9.4
  • wasi 0.11.0+wasi-snapshot-preview1
  • wasm-bindgen 0.2.88
  • wasm-bindgen-backend 0.2.88
  • wasm-bindgen-macro 0.2.88
  • wasm-bindgen-macro-support 0.2.88
  • wasm-bindgen-shared 0.2.88
  • windows-core 0.51.1
  • windows-targets 0.48.5
  • windows_aarch64_gnullvm 0.48.5
  • windows_aarch64_msvc 0.48.5
  • windows_i686_gnu 0.48.5
  • windows_i686_msvc 0.48.5
  • windows_x86_64_gnu 0.48.5
  • windows_x86_64_gnullvm 0.48.5
  • windows_x86_64_msvc 0.48.5
  • zerocopy 0.7.26
  • zerocopy-derive 0.7.26
  • zstd 0.13.0
  • zstd-safe 7.0.0
  • zstd-sys 2.0.9+zstd.1.5.5
single-cell-perturbations/Cargo.toml cargo