小工具-bioawk

作者: 斩毛毛 | 来源:发表于2020-05-11 10:04 被阅读0次

相比于awk,bioawk更加方便,因为使用awk,我们不得不数所需要的是第几列,而bioawk则是将其设定为一变量,更加方便。学习bioawk,对于处理fasta/q,vcf,bed等文件着实方便不少,告别写代码。

安装

git clone git://github.com/lh3/bioawk.git && cd bioawk && make && mv awk bioawk
#或者使用conda
conda install bioawk

使用

查看帮助信息

bioawk -c help
bed:
    1:chrom 2:start 3:end 4:name 5:score 6:strand 7:thickstart 8:thickend 9:rgb 10:blockcount 11:blocksizes 12:blockstarts
sam:
    1:qname 2:flag 3:rname 4:pos 5:mapq 6:cigar 7:rnext 8:pnext 9:tlen 10:seq 11:qual
vcf:
    1:chrom 2:pos 3:id 4:ref 5:alt 6:qual 7:filter 8:info
gff:
    1:seqname 2:source 3:feature 4:start 5:end 6:score 7:strand 8:frame 9:attribute
fastx:
    1:name 2:seq 3:qual 4:comment

#各种格式的每一列或者每一行都设为为一个变量,方便记忆,无需查找

基本参数一览

  • -t将输入输出的分隔符设置为tab
  • -c 设置输入文件或想解析的文件的格式
  • -v 设置自定义的变量
  • -H 保留输出结果的header(例如sam file)

处理fasta文件

筛选>50的序列

bioawk -c fastx 'length($seq) > 50{ print $name }' input.fasta

测量fasta序列文件中gc含量

bioawk -c fastx '{ print $name, gc($seq) }' input.fasta

获取所有序列的反向互补链序列

bioawk -c fastx '{ print ">"$name;print revcomp($seq) }' input.fasta

修改序列ID,增加前缀或者后缀

bioawk -c fastx '{ print ">PREFIX"$name; $seq }' input.fasta
bioawk -c fastx '{ print ">"$name"|SUFFIX"; $seq }' input.fasta

处理fastq文件

将fastq格式转为fasta格式

bioawk -c fastx '{print ">"$name; print $seq}' input.fastq

计算fastq中碱基的平均质量分数

bioawk -c fastx '{print ">"$name; print meanqual($qual)}' input.fastq

处理BED file

计算bed file中,所对应feature的长度,例如基因的长度

bioawk -c bed '{ print $end - $start }' test.bed

处理SAM 文件

bioawk -c sam '{ s=$seq; if(and($flag, 16)) {s=revcomp($seq) } print ">"$qname"\n"s}' input.sam > output.fasta

处理VCF文件

输出你想要那组samples(这里是foo和bar)所对应的基因型:

grep -v "^##" in.vcf | bioawk -tc hdr '{print $foo,$bar}'

相关文章

网友评论

    本文标题:小工具-bioawk

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