会一点
awk
很容易上手
1. 介绍
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