作者:余涛 email:yutao@big.ac.cn 中国科学院大学
做生信的应该没有人不知道李恒大神了,鼎鼎大名的BWA在2009年到2019年短短10年的引用次数已经接近20K了,这样的引用次数对于生物软件来说绝对是数一数二的了。除此之外,Samtools、MAQ、TreeFam等也都是他的杰作。下面是李恒大神入主华大基因跟汪建大佬的合影(左边就是李恒了,略带羞涩啊)。
bioawk是李恒大神应广大生信猿呼声做出的出于awk又胜于awk的超级好用生物序列处理软件。bioawk是用C写的,用法和awk基本一样。
$ sudo apt-get install byacc git #安装git
$ git clone git://github.com/lh3/bioawk.git #默认安装在当前目录
git clone git://github.com/lh3/bioawk.git ${path}/bioawk #若加path则必须为空,因此可在想要安装的目录下起一个新名称,git会clone到其下
$ cd bioawk
$ make
$ echo "export PATH=${path}/bioawk/:\${PATH}" >> ~/.bashrc
$ . ~/.bashrc
#!/bin/bash
read -p 'Input installed path: ' tmp_path
path=${tmp_path/\//}
if [ ! -d "${path}" ];then echo "No such file:${path}" && exit ;fi
git clone git://github.com/lh3/bioawk.git ${path}/bioawk && \ cd ${path}/bioawk && make && \
echo "export PATH=${path}/bioawk/:\${PATH}" >> ~/.bashrc && . ~/.bashrc && \
echo 'Successfully install bioawk!' || echo 'Failed install bioawk'
bioawk基本思想是把组成不同类型的文件(sam、bam、fasta、fastq、vcf)的基本元素封装成变量,直接调用即可。
bioawk
usage: bioawk [-F fs] [-v var=value] [-c fmt] [-tH] [-f progfile | 'prog'] [file ...]
-c 支持输入文件格式,查看帮助:
bioawk -c -h
打印fasta序列ID、序列、长度、GC含量
bioawk -cfastx '{print "ID: "$name"\tlength: "length($seq)"\tGC: "gc($seq)"\t"$seq}' demo.fa
结果:
ID: g1 length: 18 GC: 0.722222 atcccccccccccccttt
ID: g2 length: 26 GC: 0.0769231 cattatatcttatttttttttttttt
ID: g3 length: 48 GC: 0.229167 acccccccccctttttttttttttcatttttttttttttttttttttt
原始文件:
>g1
atcccccccccccccttt
>g2 enzyme
cattatatcttatttttttttttttt
>g3
accccccccccttttttttttttt
catttttttttttttttttttttt
注意:
可以看到bioawk在提取ID的时候只提取了空格分隔后的第一个字段,默认输出域分割符是\t,实际后面的存在$comment中
输出反向互补序列
bioawk -cfastx '{print $name,$seq,revcomp($seq)}' demo.fa
结果:
g1 atcccccccccccccttt aaagggggggggggggat
g2 cattatatcttatttttttttttttt aaaaaaaaaaaaaataagatataatg
g3 acccccccccctttttttttttttcatttttttttttttttttttttt aaaaaaaaaaaaaaaaaaaaaatgaaaaaaaaaaaaaggggggggggt
根据序列ID提取序列,这个是最爱的功能
bioawk -cfastx 'BEGIN{while((getline k <"id.txt")>0)i[k]=1}{if(i[$name])print ">"$name"\n"$seq}' demo.fa
id.txt:
g1
g2
g2 enzyme
>g3
结果:
>g1
atcccccccccccccttt
>g2
cattatatcttatttttttttttttt
注意:id.txt 需要去掉>
当然还有其他的花样,大家自己去探索吧
手机扫一扫
移动阅读更方便
你可能感兴趣的文章