Fast Concatenation [closed]

0

Eu gerou contigs que foram colocados em um formato fastq. Eu queria saber se alguém sabe como eu poderia pegar a seqüência de nucleotídeos entre dois personagens e gerar um longo contig? Eu estou usando o Python 2.6.6. Eu também adicionei um exemplo do que eu quero:

Layout de arquivo atual:

>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

O que eu quero:

GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGGACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGGAAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG

P.S .: Eu tenho vários arquivos, por isso, se houver uma maneira de automatizar isso, enviando-o para o meu cluster e salvando cada arquivo individual com o nome original + concatenação adicionado ao final eu agradeceria. No entanto, acredito que consegui descobrir isso.

    
por FranzFerd 10.07.2017 / 01:52

1 resposta

2

Com o Grep

grep -ve '^>' source.fastaq

Resultado:

GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGG
ACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGG
AAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG

Eu acredito que as quebras de linha são ignoradas no FASTA e suas variações. Se você quiser livrar deles canalizar o resultado através de tr -d '\n' .

Com o Python 2 e 3

Essa abordagem usa o Python como processador de texto. Dependendo de como você gera ou lê os dados do FASTA em seu programa em Python, pode haver abordagens melhores.

import sys
sys.stdout.writelines(s for s in sys.stdin if not s.startswith('>'))

Se você quiser tudo em uma única linha, altere a última linha para:

[…]writelines(s.rstrip() for […])

Uso para ambos:

python select-contigs.py < source.fastaq
    
por David Foerster 10.07.2017 / 02:49