У меня есть file.fasta, подобный этому:
>NODE_1_length_4203_cov_583903
CCCCCAGTAATTGTGCTGCGCGGCGATGCTAACAAGTTAAAATGCTATCGCTGAGCTAAG
AAAAAGCATGGAAGCTTGGTAAAGTACTACAGTACTACGTGAATGTACCATCAGATTGTG
TTTGTTAGTCGCGCTTTTTTTTTTTTGGAATTTTTTGGAATTTTTTTTGCGCTAACAACC
TCCTGCCGTTTTGCCCGTGCATATCGGTCACGAACAAATCTGATTACTAAACACAGTAGC
CACGGGTGGTAAGAGCAGC
.
.
.
>NODE_2_length_1959_cov_102497
ATATAAAAAAAAAAGGAACTCCAAAATGCAAAAAATGTACAAATCTAGAACTCAAAATCA
TGAATTAACAAAAAAAAAAGCCCAAAAGAAAAGCATCACTTGGAATGCAAGAATTTCATC
ATGGAACATAAAAATATAATGAAAATATAACAATCATGGAAGGCAACTGTCATCAAATAA
CAAATCTGAAAAAAATCTCAATGCATCAAGAAAAAACAGAAGCGGTAAAAGCCGTTGACC
TTCTTTGCCTAATGAAATAGAAACAATGCAGAAGTACATCCTGTACCTACTGACACTTAG
ATGTTGATGCTCCTGTTGTTACACGGGTGGTAAGAGCAGCTCTGGACTCGGCGCGCCGTT
TTGGAGGTTGGGTGGATCCTAGTCCACCTGGAAAAATGGCCACACAAAGGGTGTCTAGAA
.
.
.
Я хочу найти все вхождения для конкретной строки (например, "CACGGGTGGTAAGAGCAGC"). Я делаю это с помощью grep, например:
grep -E "CACGGGTGGTAAGAGCAGC" file.fasta
тогда я хочу суммировать все значения "cov" для вхождений. поэтому сценарий должен найти вхождения, и для каждого из них нужно подойти к более близкой строке, начинающейся с «>» (или содержащей слово «cov» ... то же самое), и, возможно, распечатать его, чтобы получитьперечислите как:
>NODE_1_length_4203_cov_583903
>NODE_2_length_1959_cov_102497
и затем суммируйте значения cov следующим образом: 583903 + 102497 = 686400
Если вы хотите, он может даже сделать все это в одном решении, например: найтивхождений, затем суммируйте все значения параметра cov (присутствующие в верхней строке относительно каждого вхождения, начинающегося с символа «>») для всех найденных вхождений.