拷贝数工作流程

Sonali Arora,Martin Morgan
2014年10月28日

拷贝数变型(CNV)是指DNA段的重复或删除大于1 kB。CNV是基因组的结构变异,其长度在50bp和1mbp之间。它们在人类中普遍 - 与参考基因组相比,每个人都存在平均存在12个CNV。他们也被证明在疾病中发挥作用,例如自闭症,乳腺癌,肥胖症,阿尔茨海默病和疾病中的精神分裂症。

实验设计

和其他基因组分析一样,在我们开始拷贝数分析之前,我们需要考虑实验设计。这里,我们强调了两个特定的指针,在设计拷贝数分析时需要记住这两个指针。

肿瘤和正常样品我们只是打算在每个人身上找到拷贝数吗?例如,一个地区的拷贝数配置文件在一段时间内是如何演变的?(这里我们将拷贝数配置文件与参考基因组进行比较)

我们是否计划将拷贝数概况从肿瘤与正常配置文件进行比较?例如,我们可能试图找出拷贝数变更对某种形式的癌症负责,并且想要找到可以开发治疗的确切基因组区域。

在相同的包装内有不同的包和不同的功能,用于处理肿瘤和正常样品或样品中的CNV。

胚系CNV与体细胞CNV生物线CNV(少数BP到几MBP)拷贝数变化,所以个体继承来自两个亲本配子中的一个,因此通常存在于100%的细胞中。

体细胞拷贝数变异(通常称为CNA, A代表改变或畸变)是指在癌细胞中发生的(通常会继续发生)任意大小和数量的拷贝数变化(从几个碱基到整个染色体)。癌细胞可以是非整倍体(这意味着它们大部分是三倍体、四倍体甚至是倍体),并且可以有高焦点放大(一些区域可能有许多副本:在某些区域有8-12副本并不罕见)。此外,由于肿瘤样本通常是正常细胞和癌细胞的混合物,肿瘤的纯度未知且可变。

在处理Somatic或Grow Line CNV时,不同的算法在处理各种算法时进行不同的假设。通常,Grow Line CNV呼叫者可以假设:

出于这些原因,算法可以更多地关联关联p-每个调用的值;可以估计假阳性和假阴性率。

躯体中枢呼叫者不能做出上述任何假设,或者即使他们做出,他们的范围也有限。

测序技术

在思考使用次序使用时的一些关键问题包括:

复制号码分析算法?

由于统计数据在拷贝数分析中发挥着巨大作用,因此我们还应该花一些时间彻底了解潜在的算法R使用包装。选择包时需要考虑几个问题 -

  1. 我们选择的包装搭档和计数如何阅读?

  2. 是我们最终需要的任何预处理吗?它在内部修剪对齐读数吗?

  3. 使用的分割算法是什么?例如,该包是否使用圆形二进制分割,基于HMM的方法等。

  4. 它处理大数据的效率如何?我是否需要额外的计算资源来运行分析?函数是并行运行的吗?

可用的资源生物体

生物体目前大约有41个用于拷贝数分析的包。要找到这些,你可以去biocViews页面和在“自动完成生物视图搜索”中键入“CopyNumbervariation”

工作流使用cn.mops.

让我们通过一个小示例来说明,一旦您弄清楚了所有的流程,拷贝数分析是多么简单。我们还将发现存在于检测到的拷贝数区域内的基因。

对于这个分析,我选择了cn.mops.包装,因为它有助于我们

如果有必要,我们首先下载相关文件

## set path/to/download/directory,例如:## destdir <- "~/bam/copynumber" stopifnot(file.exists(destdir)) bamFiles <- file.exists(destdir))路径(destdir c(“tumorA.chr4。url <- paste0("http://s3.amazonaws.com/copy-number-analysis/", basename(bamFiles))) for (i in seq_along(bamFiles)) if (!file.exists(bamFiles[i])){下载。文件(url[我],bamFiles[我])下载。文件(paste0 (url[我],“.bai”),paste0 (bamFiles[我],“.bai”))}

主工作流程1)加载库;2)计数读数;3)正常化计数;4)检测CNVS;5)可视化结果。

# # 1。加载cn。mops包suppressPackageStartupMessages({library(cn.mops)}) ## 2。我们可以bin和计数reads_gr <- getReadCountsFromBAM(BAMFiles = BAMFiles, sampleNames = c("tumor", "normal"), refSeqName = "chr4", WL = 10000, mode = "unpaired") ## 3。我们需要一个特殊的归一化,因为肿瘤有许多较大的CNVs X <- normalize基因组(reads_gr, normType="poisson")。检测cnv的ref_analysis <- referencecn。拖把(X[1],[2],规范= 0,I = c(0.025、0.5、1、1.5、2、2.5、3、3.5、4、8、16、32、64),类= paste0(“CN”,c(0:8、16、32、64、128)),segAlgorithm =“DNAcopy”)
##分析:Sample.1
RescnMops < -  calcintegercopumbers(Ref_Analysis)## 5.可视化CNV的SEGPLOT(RESCNMOPS)

大块cnv-工作流图

这里x轴代表基因组位置,y轴代表每个片段的读计数和拷贝数调用的对数比率(红色)

human_cn < -  cnvr(Rescnmops)Human_cn
## GRanges对象有6个范围和1个元数据列:肿瘤# # # # seqnames范围链| < Rle > < IRanges > < Rle > | <因素> # # [1]chr4 (1 49340000) * | CN4 # # [2] chr4(49480001、49480001)* | CN5 # # [3] chr4(52660001、52660001)* | CN8 # # [4] chr4(59780001、59780001)* | CN8 # # [5] chr4(190470001、190470001)* | c·n³# # [6]chr4(190790001、190790001)* | CN4  ## ------- ## seqinfo:一个未知基因组的序列

要找到位于这些副本号码的基因,我们将使用TranscriptDbHG19的对象

库(TXDB.hsapiens.ucsc.hg19.knowngene)##子集仅使用CHR4 TXDB < -  KeepseQLevels(TXDB.HSAPIENS.Cucsc.HG19.knowngene,“CHR4”)GENES0 < - 基因(TXDB)##'“因此,每个范围都与单个基因标识符IDX < -  rep(SEQ_ALONG(GENES0),ElementLengts(Genes0 $ Gene_ID))基因< -  Granges(Genes0)[IDX]基因$ Gene_ID = Unl(Genes0 $ Gene_ID)

接下来,我们将使用查找重叠将基因标识符分配给CNV区域。

OLAPS < -  fincoverlaps(基因,Human_cn,type =“)IDX < - 因子(主题(OLAPS),级别= SEQ_LEN(DementrentLength(OLAPS)))Human_cn $ Gene_IDS < -  splitasList(Genes $ Gene_ID [QueryHits(OLAP)],idx)human_cn
## GRanges对象有6个范围和2个元数据列:肿瘤# # # # seqnames范围链| < Rle > < IRanges > < Rle > | <因素> # # [1]chr4 (1 49340000) * | CN4 # # [2] chr4(49480001、49480001)* | CN5 # # [3] chr4(52660001、52660001)* | CN8 # # [4] chr4(59780001、59780001)* | CN8 # # [5] chr4(190470001、190470001)* | c·n³# # [6]chr4 (190790001,## gene_ids ##  ##[1] 100126332,100129917,100129931,…##[2] ##[3] 100288413,100506462,100506564,…##[4] ##[5] ##[6] 100288255,22947,2483,…## ------- ## seqinfo: 1未指定基因组的序列

会话信息

本工作流中使用的包和版本如下:

restoreSeqlevels (TxDb.Hsapiens.UCSC.hg19.knownGene)
## TXDB对象:## |DB类型:TXDB ## |支持包:基因组法## |数据源:UCSC ## |基因组:HG19 ## |生物:Homo Sapiens ## |UCSC表:认识## |资源URL:http://genome.ucsc.edu/ ## |基因ID类型:Entrez Gene ID ## |完整数据集:是## | miRBase build ID: GRCh37 ## | transcript_nrow: 82960 ## | exon_nrow: 289969 ## | cds_nrow: 237533 ## | Db created by: GenomicFeatures package from Bioconductor ## | Creation time: 2014-09-26 11:16:12 -0700 (Fri, 26 Sep 2014) ## | GenomicFeatures version at creation time: 1.17.17 ## | RSQLite version at creation time: 0.11.4 ## | DBSCHEMAVERSION: 1.0
sessionInfo ()
## R版本3.1.1(2014-07-10)##平台:x86_64-unknown-linux-gnu(64位)## ##区域设置:## [1]LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# ## [3] LC_TIME=en_US。UTF-8 LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C LC_TELEPHONE= c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ## attached base packages: ## [1] grid stats4 parallel stats graphics grDevices utils ## [8] datasets methods base ## ##其他attached packages:# # # # [1] DNAcopy_1.40.0 [2] cn.mops_1.12.0 # # [3] fission_0.99.4 # # [4] sva_3.12.0 # # [5] mgcv_1.8-3 # # [6] nlme_3.1 - 118 # # [7] Gviz_1.10.1 # # [8] ggplot2_1.0.0 # # [9] PoiClaClu_1.0.2 # # [10] RColorBrewer_1.0-5 # # [11] gplots_2.14.2 # # [12] DESeq2_1.6.1 # # [13] RcppArmadillo_0.4.450.1.0 # # [14] Rcpp_0.11.3 # # [15] org.Hs.eg.db_3.0.0 # # [16]RSQLite_1.0.0 # # [17] DBI_0.3.1 # # [18] ShortRead_1.24.0 # # [19] BiocParallel_1.0.0 # # [20] VariantAnnotation_1.12.2 # # [21] RNAseqData.HNRNPC.bam.chr14_0.3.2 # # [22] GenomicAlignments_1.2.0 # # [23] Rsamtools_1.18.1 # # [24] genefilter_1.48.1 # # [25] BSgenome.Hsapiens.UCSC.hg19_1.4.0 # # [26] BSgenome_1.34.0 # # [27] rtracklayer_1.26.1 # # [28]airway_0.99.5 # # [29] ALL_1.7.1 # # [30] TxDb.Hsapiens.UCSC.hg19.knownGene_3.0.0 # # [31] GenomicFeatures_1.18.1 # # [32] AnnotationDbi_1.28.0 # # [33] Biobase_2.26.0 # # [34] GenomicRanges_1.18.1 # # [35] GenomeInfoDb_1.2.2 # # [36] Biostrings_2.34.0 # # [37] XVector_0.6.0 # # [38] IRanges_2.0.0 # # [39] S4Vectors_0.4.0 # # [40] BiocGenerics_0.12.0 # # [41]## [42] LearnBioconductor_0.1.6 ## ##通过命名空间加载(未附加):# # # # [1] BBmisc_1.7 BatchJobs_1.4 BiocInstaller_1.16.0 [4] Formula_1.1-2 Hmisc_3.14-5 KernSmooth_2.23-13 # # [7] MASS_7.3-35 Matrix_1.1-4 R.methodsS3_1.6.1 # # [10] rcurl_1.95 1.1 - 4.3 xml_3.98 acepack_1.3 - 3.3 # # [13] annotate_1.44.0 base64enc_0.1-2 biomaRt_2.22.0 # # [16] biovizBase_1.14.0 bitops_1.0-6 brew_1.0-6 # # [19] caTools_1.17.1 checkmate_1.5.0 cluster_1.15.3 ## [22] codetools_0.2-9 colorspace_1.2-4 dichromat_2.0-0 ## [25] digest_0.6.4 evaluate_0.5.5 fail_1.2 ## [28] foreach_1.4.2 foreign_0.8-61 formatR_1.0 ## [31] gdata_2.13.3 geneplotter_1.44.0 gtable_0.1.2 ## [34] gtools_3.4.1 hwriter_1.3.2 iterators_1.0.7 ## [37] knitr_1.7 labeling_0.3 lattice_0.20-29 ## [40] latticeExtra_0.6-26 locfit_1.5-9.1 markdown_0.7.4 ## [43] matrixStats_0.10.3 mime_0.2 munsell_0.4.2 ## [46] nnet_7.3-8 plyr_1.8.1 proto_0.3-10 ## [49] reshape2_1.4 rpart_4.1-8 scales_0.2.4 ## [52] sendmailR_1.2-1 splines_3.1.1 stringr_0.6.2 ## [55] survival_2.37-7 tools_3.1.1 xtable_1.7-4 ## [58] zlibbioc_1.12.0