У меня есть длинный список данных, организованный, как показано ниже (INPUT). Я хочу разбить данные так, чтобы получить выходной сигнал, как показано ниже (желаемый ВЫХОД).unix split FASTA с использованием цикла, awk и split
В приведенном ниже коде определены все строки, содержащие «> gi», и сохраняется линейная строка этих строк в массиве B. Затем в новом файле он должен заменить эти строки из массива B на сокращенную версию текста, следующего за «> gi»
Я понял, что самым простым способом было бы разделение на «|», однако это не сработает (без моего разделения с моим кодом, если я заменяю «» на «|»)
Мой код ниже и хорошо делится после «", если я заменил "|" на «» в ВХОДА, однако я попадаю в неприятности, когда я хочу, чтобы получить текст между [] скобки, что не всегда и не всегда только два слова ...:
B=$(grep -n ">gi" 1VAO_1DII_5fxe_all_hits_combined.txt | cut -d : -f 1)
awk <1VAO_1DII_5fxe_all_hits_combined.txt >seqIDs_1VAO_1DII_5fxe_all_hits_combined.txt -v lines="$B" '
BEGIN {split(lines, a, " "); for (i in a) change[a[i]]=1}
NR in change {$0 = ">" $4}
1
'
дайте мне знать если требуется больше объяснений!
ВХОД:
>gi|9955361|pdb|1E0Y|A:1-560 Chain A, Structure Of The D170sT457E DOUBLE MUTANT OF VANILLYL- Alcohol Oxidase
MSKTQEFRPLTLPPKLSLSDFNEFIQDIIRIVGSENVEVISSKDQIVDGSYMKPTHTHDPHHVMDQDYFLASAIVA
>gi|557721169|dbj|GAD99964.1|:1-560 hypothetical protein NECHADRAFT_63237 [Byssochlamys spectabilis No. 5]
MSETMEFRPMVLPPNLLLSEFNGFIRETIRLVGCENVEVISSKDQIHDGSYMDPRHTHDPHHIMEQDYFLASAIVAPRNV
требуемый выход:
>1E0Y
MSKTQEFRPLTLPPKLSLSDFNEFIQDIIRIVGSENVEVISSKDQIVDGSYMKPTHTHDPHHVMDQDYFLASAIVAPRNV
>GAD99964.1 Byssochlamys spectabilis No. 5
MSETMEFRPMVLPPNLLLSEFNGFIRETIRLVGCENVEVISSKDQIHDGSYMDPRHTHDPHHIMEQDYFLASAIVA
Это слишком сложно для не-навязчивого читателя, чтобы попытаться разобрать. Разве вы не можете сделать набор символов на 20 символов, который позволит людям легко увидеть проблему и помочь вам решить проблему? Кроме того, я думаю, что показ ввода, а затем вывод для более естественного потока решения проблем. Удачи. – shellter
спасибо за предложения, было сделано редактирование – gugy
[изменить] ваш вопрос снова и использовать кнопку '{}' для форматирования ввода и вывода так же, как вы сделали свой код. –