【一起学生信】根据reads名称提取bam

上文(https://lipidong.blog.csdn.net/article/details/88975801) 提到了根据参考基因组的位置来提取bam信息,
根据基因组区域来提取其实是比较容易的,即便没有现成的软件我们将bam排序后,用awk也可以快速提取,但是如果是根据reads名称来提取就比较麻烦了,自己写脚本或者用grep速度会比较慢,今天推荐用picard来操作。

java -jar picard.jar FilterSamReads \
       I=input.bam \ 
       O=output.bam \ 
       READ_LIST_FILE=read_names.txt \ 
      FILTER=includeReadList

如果bam文件没有加入 SM tag, 可能会报错,这时候我们需要picard 放宽条件,要用到这个参数 VALIDATION_STRINGENCY=LENIENT

java -jar picard.jar FilterSamReads \
       I=input.bam \ 
       O=output.bam \ 
       READ_LIST_FILE=read_names.txt \ 
      FILTER=includeReadList \
      VALIDATION_STRINGENCY=LENIENT

VALIDATION_STRINGENCY 这个参数的含义是: Validation stringency for all SAM files read by this program. Setting stringency to SILENT can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) do not otherwise need to be decoded ,默认是 STRICT(严格),就会对bam文件的格式规范卡的比较严格,一言不合就报错,所以我们把这里设置为LENIENT(宽松)。

你可能感兴趣的:(生物信息)