李恒大神的又一杰作:bioawk让你轻松搞定生物序列分析
bioawk的安装
clone git://github.com/lh3/bioawk.git git
cd bioaw
make
或者connda安装:
:connda install -p ~/YOUR/conda path/ bioawk -y
bioawk的基本语法
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:filter 8:strand 9:group 10:attribute
fastx:
1:name 2:seq 3:qual 4:comment
bioawk的常见应用
如果我们想统计测序数据的基本信息,我们可以使用下面的命令来打印出每条序列的名称、GC比和长度:
$ bioawk -c fastx '{ print $name, gc($seq),length($seq) }' test.fastq
bioawk -c gff '{count[$3]++; len[$3] += $5 - $4 + 1} END {for (f in count) print f, count[f], len[f]}' test.gff
2. 过滤序列
$ bioawk -c fastx 'length($seq) >= 100 && meanqual($qual) >= 35' test.fastq > filtered_test.fastq
3. 转换格式
bioawk -c fastx -v OFS=',' '{print $name, length($seq), gc($seq)}' test.fastq > test.csv
bioawk -c fastx '{ print ">"$name ORS revcomp($seq) }' test.fastq > rtest.fasta
samtools view test.bam | bioawk -c sam '{s=$seq; if(and($flag, 16)) {s=revcomp($seq)} print ">"$qname"n"s}'
往期推荐