SnpSift学习笔记(二)

作者: 生信修炼手册 | 来源:发表于2018-06-30 10:23 被阅读10次

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

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

1. intervals

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

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文件构建索引,在处理大文件速度更快,用法如下

java -jar SnpSift.jar intidx variants.vcf my_intervals.bed > variants_intersecting_intervals.vcf

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

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文件的处理速度。

基本用法如下:

java -jar SnpSift.jar split myHugeVcf.vcf.gz

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

按照行数拆分的示例如下

java -jar SnpSift.jar split -l 10000 myHugeVcf.vcf.gz

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

split合并VCF文件的用法如下

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等标准字段的值

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

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

相关文章

  • SnpSift学习笔记(二)

    欢迎关注"生信修炼手册"! 本篇主要介绍interval, intidx, split, extractField...

  • SnpSift学习笔记(三)

    欢迎关注"生信修炼手册"! 本篇主要介绍caseControl, rmRefGen, tstv, rmInfo, ...

  • SnpSift学习笔记(一)

    欢迎关注"生信修炼手册" 除了filter功能外,snpsift还提供了许多实用的功能,本篇文章主要看下注释相关的...

  • JavaScript学习笔记二

    JavaScript学习笔记二 个人学习笔记参考阮一峰的JavaScript教学学习笔记二是对学习笔记一的补充 J...

  • MySQL 学习实践笔记(四)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

  • MySQL 学习实践笔记(三)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

  • MySQL 学习实践笔记(二)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

  • MySQL 学习实践笔记(一)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

  • 【Objective-c】_蓝牙开发

    ios蓝牙开发学习笔记(一)蓝牙概述 ios蓝牙开发学习笔记(二)central角色的实现 ios蓝牙开发学习笔记...

  • webpack4入门学习笔记(一)

    系列博客链接 webpack4入门学习笔记(一) webpack4入门学习笔记(二) webpack4入门学习笔记...

网友评论

    本文标题:SnpSift学习笔记(二)

    本文链接:https://www.haomeiwen.com/subject/vyhtuftx.html