bioawk简介
生信人一定用过三剑客awk、grep、sed,生信牛人——李恒,根据awk的源代码,进行修修补补专门用于生信的小工具。
-c
指定文件格式:常用的有bed、sam、vcf、gff、fastax,甚至文件的注释行header也可以
help,查看可以用的格式
$ 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:filter 8:strand 9:group 10:attribute
fastx:
1:name 2:seq 3:qual 4:comment
-t
将分隔符设为tab
-H
输出文件中依然保留注释头信息(retain header in such SAM files)
>>>>>>>>>>>>>>>>>>>>>>>>下面我们直接上例子,看看这个小工具的强大!!!!!
FASTA文件的处理
准备一个测试文件为:
$ cat sample.fastq
@A01403:54:HL3WFDRXY:1:2101:8983:1204 1:N:0:AGACCGTA
AACGGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGTCAACTAGCCGTTGGGGTCCTTGAGACTTTAGTGGCGCAGCTAACGCATTAAGTTGACCGCCTGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGCAAAGCGAAGAACCTTACCAGGGCTTGACATGCCGCGAATCCTCTTGAAAGAGAGGGG
+
FFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,FFFFFFFFFFFFFFFFF,FFFFFFFFFFFF
@A01403:54:HL3WFDRXY:1:2101:16866:1485 1:N:0:AGACCGTA
AACGGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAATGCCAGCCGTTGGTGGGTTTACTCACCAGTGGCGCAGCTAACGCTTTAAGCATTCCGCCTGGGGAGTACGGTCGCAAGATTAAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGACGCAACGCGCAGAACCTTACCAGCCCTTGACATGTCCAGGACCGGTCGCAGAGATGTGACC
+
FFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFF,FFFF::FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFF::FFFFFFFFFFF:FFFF:FFFFFFFFF:FFFF:
开始之前我们回顾一下格式
fastx:1:name 2:seq 3:qual 4:comment
统计序列长度
$ bioawk -c fastx '{print $name length($seq)}' sample.fastq
A01403:54:HL3WFDRXY:1:2101:8983:1204244
A01403:54:HL3WFDRXY:1:2101:16866:1485244
$ bioawk -c fastx '{print $name"\t" length($seq)}' sample.fastq
A01403:54:HL3WFDRXY:1:2101:8983:1204 244
A01403:54:HL3WFDRXY:1:2101:16866:1485 244
fastq转fasta
按照这个原理,那我们这个转化将变得非常的简单;如果这里不熟悉这两种格式的,可以看https://blog.csdn.net/weixin_60157921/article/details/125889250
$ bioawk -c fastx '{print ">"$name;print $seq }' sample.fastq
>A01403:54:HL3WFDRXY:1:2101:8983:1204
AACGGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGTCAACTAGCCGTTGGGGTCCTTGAGACTTTAGTGGCGCAGCTAACGCATTAAGTTGACCGCCTGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGCAAAGCGAAGAACCTTACCAGGGCTTGACATGCCGCGAATCCTCTTGAAAGAGAGGGG
>A01403:54:HL3WFDRXY:1:2101:16866:1485
AACGGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAATGCCAGCCGTTGGTGGGTTTACTCACCAGTGGCGCAGCTAACGCTTTAAGCATTCCGCCTGGGGAGTACGGTCGCAAGATTAAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGACGCAACGCGCAGAACCTTACCAGCCCTTGACATGTCCAGGACCGGTCGCAGAGATGTGACC
取特定长度bp的序列;取出大于200bp序列的id ,序列等等
$ bioawk -c fastx 'length($seq)>200bp{print $name}' sample.fastq
A01403:54:HL3WFDRXY:1:2101:8983:1204
A01403:54:HL3WFDRXY:1:2101:16866:1485
添加前缀
$ bioawk -c fastx '{print ">ASV" $name; $seq}' sample.fastq
>ASVA01403:54:HL3WFDRXY:1:2101:8983:1204
>ASVA01403:54:HL3WFDRXY:1:2101:16866:1485
统计GC含量
$ bioawk -c fastx '{print $name,gc($seq)}' sample.fastq
A01403:54:HL3WFDRXY:1:2101:8983:1204 0.528689
A01403:54:HL3WFDRXY:1:2101:16866:1485 0.54918
工具不仅可以处理fatax文件,还可以处理sam文件,等我遇上了,我再补充;也希望你们一起来挖掘呀~~~~