DNAcopy-处理affymetrix芯片中游软件

欢迎同行一起交流讨论   微信 forensic_JS    QQ1956238898

DNAcopy R包可以处理Affymetrix芯片中游数据,即LRR和BAF文件→DNAcopy→segment文件

https://cloud.tencent.com/developer/news/378422 可参考文章


DNAcopy 利用CBS算法进行数据的分割。循环二元分割算法(circular binary segmentation, CBS)是目前常用的SNParray 数据分段算法, 其优势在于利用相邻待测区间的数据均值差构建 t 统计量, 进而精确检测不同变异区域间的分段点。

Create ‘Copy Number Array’ data object


CNA(genomdat, chrom, maploc, data.type=c("logratio","binary"),

sampleid=NULL, presorted = FALSE)

-genomdat :一个矩阵,行为基因名、列为样本名

-maploc:标记在基因组上的位置

datatype:可以是logratio,也可以是LOH

-presorted:样本是否经过排序-默认是FALSE

#如果数据里面有X、Y,要先用下面的命令进行排序。

chrom <- ordered(coriell$Chromosome, levels=c(1:22,"X","Y"))


Genome Segmentation Program


segment(x, weights = NULL, alpha = 0.01, nperm = 10000, p.method =

                    c("hybrid", "perm"), min.width=2, kmax=25, nmin=200,

                    eta=0.05, sbdry=NULL, trim = 0.025, undo.splits =

                    c("none", "prune", "sdundo"), undo.prune=0.05,

                    undo.SD=3, verbose=1)

-alpha:可接受的变化点的显著差异水平

-p.method:计算p值得方法 默认是混合法

-undo.splits:撤销更改点。默认无撤销

-undo.SD:撤销点的水平


segments.p                            p-values for the change-points


计算变点的P值及置信区间

segments.p(x, ngrid=100, tol=1e-6, alpha=0.05, search.range=100, nperm=1000)

计算每段的中值和标准差

segments.summary(x)


smooth.CNA Smooth a ‘Copy Number Array’ data object


在使用循环二进制分割(CBS)等程序进行分析之前,检测离群值并平滑数据。

smooth.CNA(x, smooth.region=10, outlier.SD.scale=4, smooth.SD.scale=2,

trim=0.025)

-smooth.region 要考虑的点的左边和右边的点数,以检测它为离群点。(默认= 10)

-outlier.SD.scale 在平滑区域中距离最近的点的SDs数,将一个点称为离群点

-smooth.SD.scale 平滑区域中位于平滑点所在位置的SDs的数量

trim:要修剪的数据的比例,以便进行方差计算,平滑离群值,并基于SD撤消分割。


plot.DNAcopy Plot the data and results from segment of a CNA object


plot(x, plot.type=c("whole", "plateau", "samplebychrom",

"chrombysample"), xmaploc=FALSE, altcol=TRUE, sbyc.layout=

NULL, cbys.nchrom=1, cbys.layout=NULL, include.means=TRUE,

zeroline=TRUE, pt.pch=NULL, pt.cex=NULL, pt.cols=NULL,

segcol= NULL, zlcol=NULL, ylim=NULL, lwd=NULL, ...)

Arguments



RStudio--脚本汇总



library(DNAcopy) #LRR和BAF文件→DNAcopy→产生segment文件(seg.mean)

data(coriell)

#如果数据里面有X、Y,要先用下面的命令进行排序。

chrom <- ordered(coriell$Chromosome, levels=c(1:22,"X","Y"))

CNA.object <- CNA(cbind(coriell$Coriell.05296),

                  chrom,

                  coriell$Position,

                  data.type ="logratio",

                  sampleid ="c05296")

#运行后如果数据中有重复的探针出现,会有个warnings,但是不影响后续的结果。

#smooth.CNA 离散值的检测,同时对离散数据进行平滑处理。

#具体的参数我们就直接取默认值了,毕竟包开发者不会把不合理的值作为默认值。

smoothed.CNA.object <- smooth.CNA(CNA.object)

#segment 利用CBS算法进行数据的分割。循环二元分割算法(circular binary segmentation, CBS)是目前常用的SNParray 数据分段算法, 其优势在于利用相邻待测区间的数据均值差构建 t 统计量, 进而精确检测不同变异区域间的分段点。

#其中verbose参数比较有趣,是为了打印计算结果的,0不产生打印;1打印样本名称;2打印染色体信息;3打印当前的分割情况。默认状态是1。Undo.splits主要是为了确定是否设置分割的阈值。后面接着给出所设阈值的大小。

segment.smoothed.CNA.object <- segment(smoothed.CNA.object, verbose=3)

sdundo.CNA.object <- segment(smoothed.CNA.object, #应用撤销的方法去掉不必要的变化的点。

                            undo.splits="sdundo",

                            undo.SD=3,verbose=1)

#第一种方法是根据染色体和位置图对数据进行排序。红线对应的是分段的平均值。注意,点的颜色是交替的,表示不同的染色体

#其中主要的是参数plot.type。whole(w)指的绘制完整基因组;

#plateau(p)对全基因组进行排序;

#samplebychrom(s) 绘制每一个染色体图像;

#chrombysample(c)将每个染色体的所有样本展示在一起

plot(segment.smoothed.CNA.object, plot.type="p")

plot(segment.smoothed.CNA.object, plot.type="w")

plot(segment.smoothed.CNA.object, plot.type="s")

plot(segment.smoothed.CNA.object, plot.type="c")

head(segment.smoothed.CNA.object$output)

plot(sdundo.CNA.object, plot.type="w") #undo方法后生成的图变化点的确减少很多。

你可能感兴趣的:(DNAcopy-处理affymetrix芯片中游软件)