Я сгенерировал контиги, которые были помещены в формат fastq. Мне интересно, знает ли кто-нибудь, как я могу захватить нуклеотидную последовательность между двумя символами и сгенерировать один длинный контиг? Я использую Python 2.6.6. Я также добавил пример того, что я хочу:
Текущий макет файла:
>DHWCT801:455:H5HHJBCXX:1:2109:10376:67348/1
GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGG
>DHWCT801:455:H5HHJBCXX:2:1105:15915:79934/2
ACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGG
>DHWCT801:455:H5HHJBCXX:2:1114:17610:55148/2
AAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG
Что я хочу:
GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGGACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGGAAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG
P.S..: У меня несколько файлов, так что если есть способ автоматизировать это, отправив его на мой кластер и сохранив каждый отдельный файл с оригинальным именем + конкатенация, добавленная в конце, я был бы признателен. Однако я полагаю, что смогу разобраться с этим.
grep -ve '^>' source.fastaq
Результат:
GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGG
ACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGG
AAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG
Я полагаю, что разрывы строки проигнорированы в FASTA и его изменениях. Если Вы хотите избавить от них, передают результат по каналу через tr -d '\n'
.
Этот подход использует Python в качестве текстового процессора. В зависимости от того, как Вы генерируете или считываете данные FASTA в своей программе Python могут быть лучшие подходы.
import sys
sys.stdout.writelines(s for s in sys.stdin if not s.startswith('>'))
Если Вы хотите все это на одной строке, изменяют последнюю строку к:
[…]writelines(s.rstrip() for […])
Использование для обоих:
python select-contigs.py < source.fastaq