Конкатенация Fastq [закрыта]

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

0
задан 10 July 2017 в 10:44

2 ответа

С Grep

grep -ve '^>' source.fastaq

Результат:

GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGG ACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGG AAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG

Я считаю, что разрывы строк игнорируются в FASTA и ее вариациях. Если вы хотите избавиться от них, вы можете получить результат через tr -d '\n'.

С Python 2 и 3

Этот подход использует 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
2
ответ дан 18 July 2018 в 10:30

С Grep

grep -ve '^>' source.fastaq

Результат:

GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGG ACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGG AAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG

Я считаю, что разрывы строк игнорируются в FASTA и ее вариациях. Если вы хотите избавиться от них, вы можете получить результат через tr -d '\n'.

С Python 2 и 3

Этот подход использует 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
2
ответ дан 24 July 2018 в 19:35
  • 1
    Я собираюсь попробовать это сейчас. Большое спасибо! – FranzFerd 10 July 2017 в 13:35

Другие вопросы по тегам:

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