欢迎关注”生信修炼手册”!

通过SNP芯片来检测CNV,对应的分析软件有很多,PennCNV就是其中之一,该软件通过隐马可夫模型来检测CNV, 官网如下

​http://penncnv.openbioinformatics.org/en/latest/​

数据分析的pipeline示意如下

PennCNV:利用SNP芯片检测CNV_flink

首先我们需要准备signal intensity file, 该文件用来记录每个位点对应的LRR和BAF两个统计值,有两种格式,第一种格式示意如下

PennCNV:利用SNP芯片检测CNV_flink_02

​\t​​分隔的6列,第一列为SNP的名称,第二列为snp位点所在的染色体名称,第三列为snp位点所在的染色体位置,第四列为该位点的分型结果,第五列为LRR统计值,第六列为BAF统计值,对于cnv calling而言,最重要的是Name, LRR, BAF这3列的值,所以该文件还可以有第二种格式,示意如下

PennCNV:利用SNP芯片检测CNV_数据分析_03

其次需要芯片平台对应的HMM和PFB文件,在软件的安装目录自带了部分芯片对应的这两种文件。PFB是population frequency of B allel的缩写,本质是每个SNP位点的MAF, 同时还提供了染色体位置的注释信息,内容示意如下

PennCNV:利用SNP芯片检测CNV_flink_04

对于SNP芯片上集成的非SNP探针,约定其PFB的值为2。需要注意的是,只有该文件中记录的位点才会用于CNV calling的分析,当我们需要筛选位点时,只需要在该文件中进行过滤即可。HMM文件是软件自带的,提供了不同拷贝数之间的转移概率。准备好输入文件之后,就可以进行分析了,常见的分析步骤如下

1. CNV calling

对于独立样本,检测CNV的命令如下

detect_cnv.pl \
-test \
-hmm lib/hh550.hmm \
-pfb lib/hh550.hg18.pfb \
sample.txt \
-log sample.log \
-out sample.rawcnv

输出内容如下所示

PennCNV:利用SNP芯片检测CNV_flink_05

第一列为CNV的染色体区域,第二列为该CNV区域包含的SNP位点数目,第三列为CNV区域的长度,第四列中​​cn​​表示该CNV区域的拷贝数,后面依次是样本对应的输入文件,起始和终止的snp name, 打分值。

2. 筛选CNV

常见的筛选策略如下

  1. 根据长度和包含的位点数等统计指标进行过滤
  2. 根据染色体区域进行筛选,过滤掉位于特殊区域的CNV,比如着丝粒,端粒等区域

根据长度过滤的命令如下

filter_cnv.pl \
-numsnp 10 \
-length 50k \
sampleall.rawcnv

过滤掉包含的snp位点数少于10个,长度小于50kb的CNV区域。

3. CNV的注释

通常会对CNV区域进行以下注释

  1. overlap的基因
  2. 上下游最邻近的基因
  3. overlap的功能元件

命令如下

scan_region.pl \
sampleall.rawcnv \
hg19_refGene.txt \
-refgene \
-reflink hg19_refLink.txt \
> sampleall.cnv.hg19

4. CNV的可视化

对CNV区域内SNP位点的LRR和BAF值进行可视化,命令如下

visualize_cnv.pl \
-format plot \
-signal sample.txt \
sampleall.rawcnv

结果示意如下

PennCNV:利用SNP芯片检测CNV_flink_06

该软件还有很多高级的用法,比如家系样本的CNV检测,case/control的关联分析等等,更多用法请参考官方文档。

·end·

—如果喜欢,快分享给你的朋友们吧—


扫描关注微信号,更多精彩内容等着你!

PennCNV:利用SNP芯片检测CNV_flink_07