什么是CNV?
copy number variation (CNV)
A copy number variation (CNV) is when the number of copies of a particular gene varies from one individual to the next. Following the completion of the Human Genome Project, it became apparent that the genome experiences gains and losses of genetic material. The extent to which copy number variation contributes to human disease is not yet known. It has long been recognized that some cancers are associated with elevated copy numbers of particular genes.
https://github.com/broadinstitute/inferCNV
教程:InferCNV: Inferring copy number alterations from tumor single cell RNA-Seq data
安裝
conda install -c conda-forge jags if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("infercnv") library(infercnv)
下載github倉庫測試數據
git clone https://github.com/broadinstitute/infercnv.git cd inferCNV/example Rscript ./run.R
進入服務器jupyter,查看和准備輸入文件:
# create the infercnv object infercnv_obj = CreateInfercnvObject(raw_counts_matrix=system.file("extdata", "oligodendroglioma_expression_downsampled.counts.matrix.gz", package = "infercnv"), annotations_file=system.file("extdata", "oligodendroglioma_annotations_downsampled.txt", package = "infercnv"), delim="\t", gene_order_file=system.file("extdata", "gencode_downsampled.EXAMPLE_ONLY_DONT_REUSE.txt", package = "infercnv"), ref_group_names=c("Microglia/Macrophage","Oligodendrocytes (non-malignant)"))
system.file("extdata", "oligodendroglioma_expression_downsampled.counts.matrix.gz", package = "infercnv") system.file("extdata", "oligodendroglioma_annotations_downsampled.txt", package = "infercnv") system.file("extdata", "gencode_downsampled.EXAMPLE_ONLY_DONT_REUSE.txt", package = "infercnv")
因為R版本不夠,不能在本地裝上最新的版本,可以用容器代替。
module load singularity singularity build infercnv.latest.simg docker://trinityctat/infercnv:latest singularity exec -e -B `pwd` infercnv.latest.simg Rscript run.R
需要運行的R腳本
#!/usr/bin/env Rscript options(error = function() traceback(2)) packageVersion("infercnv") library("infercnv") # create the infercnv object infercnv_obj = CreateInfercnvObject(raw_counts_matrix="~/project/scPipeline/infercnv/cell.count.matrix.txt.gz", annotations_file="~/project/scPipeline/infercnv/cell.anno.txt", delim="\t", gene_order_file="~/project/scPipeline/infercnv/gene.anno.txt", ref_group_names=c("IMR_ENCC","UE_ENCC")) out_dir="HSCR_CNV" # perform infercnv operations to reveal cnv signal infercnv_obj = infercnv::run(infercnv_obj, cutoff=1, # cutoff=1 works well for Smart-seq2, and cutoff=0.1 works well for 10x Genomics out_dir=out_dir, cluster_by_groups=TRUE, plot_steps=FALSE, denoise=TRUE, HMM=TRUE, num_threads=10 )
可能不是癌症樣本,結果沒有那么突出。
結果解讀
把基因按染色體的坐標排列,如果某個染色體片段的表達顯著提高或減少,則說明其CNV發生了變化。
參考文章:Single-cell RNA-seq highlights intratumoral heterogeneity in primary glioblastoma
結果描述:
Normalization of CNV profiles using signal from the ‘normal’ cluster revealed coherent chromosomal aberrations in each tumor (Fig. 1C). Gain of chromosome 7 and loss of chromosome 10, the two most common genetic alterations in glioblastoma (20), were consistently inferred in every tumor cell. Chromosomal aberrations were relatively consistent within tumors, with the exception that MGH31 appears to contain two genetic clones with discordant copy number changes on chromosomes 5, 13 and 14. While this data suggests largescale intratumoral genetic homogeneity, we recognize that heterogeneity generated by focal alterations and point mutations will be grossly underappreciated using this method. Nevertheless, such panoramic analysis of chromosomal landscape effectively separated normal from malignant cells.
待續~
參考:
使用broad出品的inferCNV來對單細胞轉錄組數據推斷CNV信息
The Trinity Cancer Transcriptome Analysis Toolkit (CTAT)