Я создал contigs, которые были помещены в формат 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
PS: У меня есть несколько файлов, поэтому, если есть способ автоматизировать это, отправив его в мой кластер и сохраняя каждый отдельный файл с добавленным исходным именем + конкатенацией, я был бы признателен. Однако я верю, что смогу понять это.
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
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