工具 | bioawk

会一点awk很容易上手

1. 介绍

https://github.com/lh3/bioawk

2. 安装

conda install bioawk

3. 参数

3.1 -t

bioawk -t # 相当于
bioawk -F '\t' -v OFS="\t" # 即分隔符、输出分隔符设置为制表符

3.2 -c

3.2.1 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

在这些有规范格式的文件中,对各成分定义了变量,并且添加了一些子命令,非常方便!

3.2.2 fastx

对最熟悉的fasta/fastq文件进行操作

$ cat a.fa
>gene1
actcagatcgatcca
cagatcaggcagtta
cag
>gene2
cagatcagatcagcg
cagatcgcgacagat
cagtctt
$ bioawk -t -c fastx 'BEGIN{print "#geneid\tlength\tGC_content\tsequence"}{print $name,length($seq),gc($seq),$seq}' a.fa
#geneid length  GC_content      sequence
gene1   33      0.484848        actcagatcgatccacagatcaggcagttacag
gene2   37      0.513514        cagatcagatcagcgcagatcgcgacagatcagtctt

gc(): 返回序列gc含量
length():返回长度
revcomp(): 返回互补链
...

3.2.3 hdr or header

甚至可以按自己的第一行进行变量定义

$ cat b.txt
geneid  T1_1    T1_2    T1_3    T2_1    T2_2    T2_3
gene1   1       3       9       2       8       5
gene2   3       4       5       8       0       8
$ bioawk -t -c header '{print $geneid,$T1_1,$T2_1}' b.txt
geneid  T1_1    T2_1
gene1   1       2
gene2   3       8
更多请参考:

github: 李恒:bioawk
:刘小泽:一个神奇的小软件bioawk

你可能感兴趣的:(工具 | bioawk)