Использование подфункции awk для последовательной нумерации заголовков fasta

Я новичок в написании сценариев оболочки и пытаюсь последовательно пронумеровать заголовки в файле fasta. Последовательности в моем файле fasta выглядят следующим образом:

>Rodentia sp. 
MALWILLPLLALLILWGPDPAQAFVNQHLCGSHLVEALYILVCGERGFFYTPMSRREVED
PQVGQVELGAGPGAGSEQTLALEVARQARIVQQCTSGICSLYQENYCN

>Ovis aries
MALWTRLVPLLALLALWAPAPAHAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEG
PQVGALELAGGPGAGGLEGPPQKRGIVEQCCAGVCSLYQLENYCN

Я хочу использовать awk в моем сценарии оболочки, чтобы заголовки были последовательно пронумерованы, путем вставки числа от 1 до n (где n - количество последовательностей) после «>», чтобы последовательности выглядели так:

> 1 Rodentia sp. 
MALWILLPLLALLILWGPDPAQAFVNQHLCGSHLVEALYILVCGERGFFYTPMSRREVED
PQVGQVELGAGPGAGSEQTLALEVARQARIVQQCTSGICSLYQENYCN

> 2 Ovis aries
MALWTRLVPLLALLALWAPAPAHAFVNQHLCGSHLVEALYLVCGERGFFYTPKARREVEG
PQVGALELAGGPGAGGLEGPPQKRGIVEQCCAGVCSLYQLENYCN

Я попытался использовать подфункцию в awk, чтобы сделать это, заменив каждый экземпляр «>» на «> [число]».

awk '/>/{sub(">", "> ++i ")}1' file

Однако я не понимаю, как увеличивать переменные с помощью подфункции в awk. Я хотел бы знать, есть ли способ сделать это с помощью подфункции. Я понимаю, как работает подпрограмма, но не знаю, как правильно объявить переменную для увеличения.

Я объявил i равным 1 в начале моего сценария оболочки:

i=1

Однако вывод, который я получаю от подфункции:

> ++$i Rodentia sp. 
> ++$i Ovis aries 

Как можно правильно объявить переменную, чтобы я мог использовать подфункцию awk функция для нумерации заголовков?

0
30.09.2017, 15:38
0 ответов

Теги

Похожие вопросы