Awk OK? Tente algo assim:
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
Eu tenho um arquivo que se parece com isso (sequência de DNA no formato fasta):
>sequence_name1
ATCGTGATNNNNNNNNAGTCGATCGGATTCT
>sequence_name2
NNNNATGTNNATGTCCNNNNNNN
Eu quero contar o comprimento das lacunas, que é o comprimento de N cordas. Por exemplo, na primeira sequência, o tamanho é 8. Na segunda sequência, tenho um intervalo de 4, outro de 2 e outro de 7.
Seria ótimo se eu conseguisse obter uma tabela com densidade de comprimento de lacuna que seja uma tabela informando que tenho lacunas X com comprimento de 1, X com comprimento de 2 e assim por diante:
1 X
2 X
3 X
...
Alguma ideia de como fazer isso?
Obrigado!
Mu
Awk OK? Tente algo assim:
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