前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SnpSift学习笔记(二)

SnpSift学习笔记(二)

作者头像
生信修炼手册
发布2020-05-11 10:30:00
1.7K0
发布2020-05-11 10:30:00
举报
文章被收录于专栏:生信修炼手册生信修炼手册

本篇主要介绍interval, intidx, split, extractFields这四个命令。

1. intervals

intervals命令根据提供的BED文件中定义的染色体区间,去筛选VCF文件,用法如下

代码语言:javascript
复制
cat variants.vcf | java -jar SnpSift.jar intervals my_intervals.bed > variants_intersecting_intervals.vcf

需要注意以下两点

  1. BED文件中染色体起始位置从0开计数,在实际处理时,只需要前三列,即chr\tstart\tend的信息,其它列的信息会被忽略,意味只只根据区间筛选,不考虑正负链的信息;
  2. 在使用intervals命令时,默认情况下只输出位于BED文件区间上的突变位点;如果添加-x参数,会过滤掉位于BED文件区间上的突变位点,将剩余的突变位点输出;
2. intidx

intidxintervals index的缩写,作用和intervals命令相似,都是根据提供的BED文件中定义的染色体区间,去筛选变异位点。唯一的区别在于intidx是针对比较大的VCF文件的,在处理时会对VCF文件构建索引,在处理大文件速度更快,用法如下

代码语言:javascript
复制
java -jar SnpSift.jar intidx variants.vcf my_intervals.bed > variants_intersecting_intervals.vcf

如果你感兴趣的目标区域只有两三个,这个命令还提供了一种简单用法,不必提供BED文件来定义染色体区间,而是直接将染色体区间当成命令行参数,用法如下

代码语言:javascript
复制
java -jar SnpSift.jar intidx -c variants.vcf chr1:12345-23456 chr2:3456789-4567890  > variants_intersecting_intervals.vcf

在这种用法中,和BED文件的从0开始计数不同,染色体的起始位置从1开始计数的,这点需要特别注意。

3. split

split命令用于拆分VCF文件,既可以按照每条染色体拆成不同文件,也可以按照行数进行拆分。除了拆分之外,split也可以合并多个VCF文件。

最典型的使用场景就是把一个非常大的VCF文件首先拆分成几个小的VCF文件,对这几个小的VCF文件并行处理,然后将处理之后的结果在合并,这样会加速大型VCF文件的处理速度。

基本用法如下:

代码语言:javascript
复制
java -jar SnpSift.jar split myHugeVcf.vcf.gz

默认按照染色体拆分,会生成myHugeVcf.1.vcf, myHugeVcf.2.vcf,..., myHugeVcf.X.vcf等文件。

按照行数拆分的示例如下

代码语言:javascript
复制
java -jar SnpSift.jar split -l 10000 myHugeVcf.vcf.gz

按照行数拆分会生成myHugeVcf.001.vcf, myHugeVcf.002.vcf等文件。需要注意的是,每个拆分好的VCF文件都会有header部分,这里的10000行指的是正文内容。

split合并VCF文件的用法如下

代码语言:javascript
复制
java -jar SnpSift.jar split -j huge.000.vcf huge.001.vcf huge.002.vcf > huge.out.vcf
4. extractFields

从VCF文件中提取指定字段的信息,输出文件为\t分隔的文本文件,可以导入到R,Excel等软件中。 对于标准的VCF格式,每个字段的写法如下

  1. CHROM
  2. POS
  3. ID
  4. REF
  5. ALT
  6. FILTER

对于INFO字段,也可以提取其中的sub filelds。对于SnpEFF注释产生的VCF文件

ANN字段中的sub filelds的写法如下

  1. “ANN[*].ALLELE”
  2. “ANN[*].EFFECT”
  3. “ANN[*].IMPACT”
  4. “ANN[*].GENE”
  5. “ANN[*].GENEID”
  6. “ANN[*].FEATURE”
  7. “ANN[*].FEATUREID”
  8. “ANN[*].BIOTYPE”
  9. “ANN[*].RANK”
  10. “ANN[*].HGVS_C”
  11. “ANN[*].HGVS_P”
  12. “ANN[*].CDNA_POS”
  13. “ANN[*].CDNA_LEN”
  14. “ANN[*].CDS_POS”
  15. “ANN[*].CDS_LEN”
  16. “ANN[*].AA_POS”
  17. “ANN[*].AA_LEN”
  18. “ANN[*].DISTANCE”
  19. “ANN[*].ERRORS”

对于旧版本产生的EFF字段,其中的sub filelds的写法如下

  1. “EFF[*].EFFECT”
  2. “EFF[*].IMPACT”
  3. “EFF[*].FUNCLASS”
  4. “EFF[*].CODON”
  5. “EFF[*].AA”
  6. “EFF[*].AA_LEN”
  7. “EFF[*].GENE”
  8. “EFF[*].BIOTYPE”
  9. “EFF[*].CODING”
  10. “EFF[*].TRID”
  11. “EFF[*].RANK”

LOF字段中的sub filelds的写法如下

  1. “LOF[*].GENE”
  2. “LOF[*].GENEID”
  3. “LOF[*].NUMTR”
  4. “LOF[*].PERC”

NMD字段中的sub filelds的写法如下

  1. “NMD[*].GENE”
  2. “NMD[*].GENEID”
  3. “NMD[*].NUMTR”
  4. “NMD[*].PERC”

示例用法, 提取CHROM等标准字段的值

代码语言:javascript
复制
java -jar SnpSift.jar extractFields s.vcf CHROM POS ID AF | head
#CHROM POS ID AF
1 69134 0.086
1 69496 rs150690004 0.001
1 69511 rs75062661 0.983

更多的extractFields的示例可以参考官方文档,链接如下

http://snpeff.sourceforge.net/SnpSift.html#Extract

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. intervals
  • 2. intidx
  • 3. split
  • 4. extractFields
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档