我有一个看起来像这样的文件(fasta 格式的 DNA 序列):
>sequence_name1
ATCGTGATNNNNNNNNAGTCGATCGGATTCT
>sequence_name2
NNNNATGTNNATGTCCNNNNNNN
我想计算间隙的长度,即 N 个字符串的长度。例如,在第一个序列中,长度为 8。在第二个序列中,我有一个间隙为 4,另一个间隙为 2,另一个间隙为 7。
如果我能获得一个具有间隙长度密度的表格,那就太好了,该表格表明我有 X 个长度为 1 的间隙,X 个长度为 2 的间隙,等等:
1 X
2 X
3 X
...
知道怎样做吗?
谢谢 !
亩
答案1
Awk 没问题吗?试试下面的方法:
awk -F'[^N]*' '
!/^>/ {
for(i=1; i<=NF; i++) {
g=length($i)
if(g>m)m=g
A[g]++
}
}
END {
for(i=1; i<=m; i++) print i, A[i]+0
}
' file