ari1990
(usa Outra)
Enviado em 18/09/2017 - 19:18h
Boa noite. Como estão? Espero encontrá-l@s bem.
Eu tenho um arquivo .fasta (arquivo de texto que representa sequências de DNA) e preciso editar os headers (cabeçalho) de cada sequência de nucleotídeos. Cada cabeçalho é constituído por um símbolo ">" que indica o começo de cada sequência e outras informações relevantes sobre a sequência. Seria possível criar um script que retirasse esse código do começo de cada sequência. No caso, passaria disso:
>M02913_120_000000000-AMC56_1_1101_20029_3467 Otu000001|58637|C2C1-C2C2-C2C4-C2S1-C2S2-C2S3-C3C1-C3C2-C3C3-C3S1-C3S2-C3S3-C4C2-C4C3-C4C4-C4S1-C4S2-C4S3-C9C1-C9C2-C9C4-C9S1-C9S2-C9S3-U2C2-U2C3-U2C4-U2S1-U2S2-U2S3-U3C1-U3C2-U3C4-U3S1-U3S2-U3S3-U4C1-U4C2-U4C4-U4S1-U4S2-U4S3-U9C1-U9C3-U9C4-U9S1-U9S2-U9S3
GG-G-G-A-A--TA-TT--GG-A-C----AA-T-G-G--GC---GA-A--A--G-C--C-T-G-A-T-C-C-A--GC-A-A--T-GCC-G-C-G-T--G-A-G-T--GA--T-G--A--A--G-G-CC----TT-AG--G-G-T--T-G-T--A---AA-G-C-TC----------------------TT-TT-A-C--C-CGG----G--A-T--G---A---------------------------------------T----------------------------AA------------------------------------------------------------------T-G-A-C-A-----G-T---A-C-CG--------G-G-A-G---------A-A-----------T--AA-----GC-C--CC-G-G-C-TAA-C--T-C-C-G-T--G-C-CA-G-C-A-G-C--CG-C-------GG--TA-AT-------AC---GG-AG-GGG-------GCT-A-G-C--G-T-T--GT-T-CGG-AA--TT-A-C-T--GG-GC--GT--A---AA-GC-GC-AC---G-TA-G-G-C-G--G--C-TT-T-G-T---AA-G-T-T-A----G-A-G--G--TG--A-AA-GC--C-C-GG-G-G---CT-C-AA--------C-T-C-C-G-G-A--A-T----T-G--C-C---T--T------T--AA-G-A---C-------T--G-C--AT--C-G-C--------T-A-G-A-A-T--T-----G-TG------GA-G-A--------G-G-T-A---AG-T-------------GG--A--ATT----C-C-G-A-GT--GT-A-G-AG-GT--G----A--A-A--TT-C-GT-AG--AT-A-TT--C-G-G-A-A-G-A-AC-A-CC--------AG--T--G--GC-GAA-G--G-C---G---A--C-T-T-A---CTG-----G--AC-A-C------------------------A-T-----A-T-T--GA--CG--C--T-G--A-GG--T-G-CG-A--AA-G-C--G-TG--GG-G--AG-C-A-AA--CA
>M02913_120_000000000-AMC56_1_1101_23577_7876 Otu000002|24961|C2C1-C2C2-C2C4-C2S1-C2S2-C2S3-C3C1-C3C2-C3C3-C3S1-C3S2-C3S3-C4C2-C4C3-C4C4-C4S1-C4S2-C4S3-C9C1-C9C2-C9C4-C9S1-C9S2-C9S3-U2C2-U2C3-U2C4-U2S1-U2S2-U2S3-U3C1-U3C2-U3C4-U3S1-U3S2-U3S3-U4C1-U4C2-U4C4-U4S1-U4S2-U4S3-U9C1-U9C3-U9C4-U9S1-U9S2-U9S3
GG-G-G-A-A--TA-TT--GG-A-C----AA-T-G-G--GC---GC-A--A--G-C--C-T-G-A-T-C-C-A--GC-C-A--T-GCC-G-C-G-T--G-A-G-T--GA--T-G--A--A--G-G-CC----CT-AG--G-G-T--T-G-T--A---AA-G-C-TC----------------------TT-TT-G-T--G-CGG----G--A-A--G---A---------------------------------------T----------------------------AA------------------------------------------------------------------T-G-A-C-G-----G-T---A-C-CG--------C-A-A-G---------A-A-----------T--AA-----GC-C--CC-G-G-C-TAA-C--T-T-C-G-T--G-C-CA-G-C-A-G-C--CG-C-------GG--TA-AT-------AC---GA-AG-GGG-------GCT-A-G-C--G-T-T--GC-T-CGG-AA--TC-A-C-T--GG-GC--GT--A---AA-GG-GT-GC---G-TA-G-G-C-G--G--G-TC-T-T-T---AA-G-T-C-A----G-G-G--G--TG--A-AA-TC--C-T-GG-A-G---CT-C-AA--------C-T-C-C-A-G-A--A-C----T-G--C-C---T--T------T--GA-T-A---C-------T--G-A--AG--A-T-C--------T-T-G-A-G-T--T-----C-GG------GA-G-A--------G-G-T-G---AG-T-------------GG--A--ACT----G-C-G-A-GT--GT-A-G-AG-GT--G----A--A-A--TT-C-GT-AG--AT-A-TT--C-G-C-A-A-G-A-AC-A-CC--------AG--T--G--GC-GAA-G--G-C---G---G--C-T-C-A---CTG-----G--CC-C-G------------------------A-T-----A-C-T--GA--CG--C--T-G--A-GG--C-A-CG-A--AA-G-C--G-TG--GG-G--AG-C-A-AA--CA
Para isso:
>Otu000001|58637|C2C1-C2C2-C2C4-C2S1-C2S2-C2S3-C3C1-C3C2-C3C3-C3S1-C3S2-C3S3-C4C2-C4C3-C4C4-C4S1-C4S2-C4S3-C9C1-C9C2-C9C4-C9S1-C9S2-C9S3-U2C2-U2C3-U2C4-U2S1-U2S2-U2S3-U3C1-U3C2-U3C4-U3S1-U3S2-U3S3-U4C1-U4C2-U4C4-U4S1-U4S2-U4S3-U9C1-U9C3-U9C4-U9S1-U9S2-U9S3
GG-G-G-A-A--TA-TT--GG-A-C----AA-T-G-G--GC---GA-A--A--G-C--C-T-G-A-T-C-C-A--GC-A-A--T-GCC-G-C-G-T--G-A-G-T--GA--T-G--A--A--G-G-CC----TT-AG--G-G-T--T-G-T--A---AA-G-C-TC----------------------TT-TT-A-C--C-CGG----G--A-T--G---A---------------------------------------T----------------------------AA------------------------------------------------------------------T-G-A-C-A-----G-T---A-C-CG--------G-G-A-G---------A-A-----------T--AA-----GC-C--CC-G-G-C-TAA-C--T-C-C-G-T--G-C-CA-G-C-A-G-C--CG-C-------GG--TA-AT-------AC---GG-AG-GGG-------GCT-A-G-C--G-T-T--GT-T-CGG-AA--TT-A-C-T--GG-GC--GT--A---AA-GC-GC-AC---G-TA-G-G-C-G--G--C-TT-T-G-T---AA-G-T-T-A----G-A-G--G--TG--A-AA-GC--C-C-GG-G-G---CT-C-AA--------C-T-C-C-G-G-A--A-T----T-G--C-C---T--T------T--AA-G-A---C-------T--G-C--AT--C-G-C--------T-A-G-A-A-T--T-----G-TG------GA-G-A--------G-G-T-A---AG-T-------------GG--A--ATT----C-C-G-A-GT--GT-A-G-AG-GT--G----A--A-A--TT-C-GT-AG--AT-A-TT--C-G-G-A-A-G-A-AC-A-CC--------AG--T--G--GC-GAA-G--G-C---G---A--C-T-T-A---CTG-----G--AC-A-C------------------------A-T-----A-T-T--GA--CG--C--T-G--A-GG--T-G-CG-A--AA-G-C--G-TG--GG-G--AG-C-A-AA--CA
>Otu000002|24961|C2C1-C2C2-C2C4-C2S1-C2S2-C2S3-C3C1-C3C2-C3C3-C3S1-C3S2-C3S3-C4C2-C4C3-C4C4-C4S1-C4S2-C4S3-C9C1-C9C2-C9C4-C9S1-C9S2-C9S3-U2C2-U2C3-U2C4-U2S1-U2S2-U2S3-U3C1-U3C2-U3C4-U3S1-U3S2-U3S3-U4C1-U4C2-U4C4-U4S1-U4S2-U4S3-U9C1-U9C3-U9C4-U9S1-U9S2-U9S3
GG-G-G-A-A--TA-TT--GG-A-C----AA-T-G-G--GC---GC-A--A--G-C--C-T-G-A-T-C-C-A--GC-C-A--T-GCC-G-C-G-T--G-A-G-T--GA--T-G--A--A--G-G-CC----CT-AG--G-G-T--T-G-T--A---AA-G-C-TC----------------------TT-TT-G-T--G-CGG----G--A-A--G---A---------------------------------------T----------------------------AA------------------------------------------------------------------T-G-A-C-G-----G-T---A-C-CG--------C-A-A-G---------A-A-----------T--AA-----GC-C--CC-G-G-C-TAA-C--T-T-C-G-T--G-C-CA-G-C-A-G-C--CG-C-------GG--TA-AT-------AC---GA-AG-GGG-------GCT-A-G-C--G-T-T--GC-T-CGG-AA--TC-A-C-T--GG-GC--GT--A---AA-GG-GT-GC---G-TA-G-G-C-G--G--G-TC-T-T-T---AA-G-T-C-A----G-G-G--G--TG--A-AA-TC--C-T-GG-A-G---CT-C-AA--------C-T-C-C-A-G-A--A-C----T-G--C-C---T--T------T--GA-T-A---C-------T--G-A--AG--A-T-C--------T-T-G-A-G-T--T-----C-GG------GA-G-A--------G-G-T-G---AG-T-------------GG--A--ACT----G-C-G-A-GT--GT-A-G-AG-GT--G----A--A-A--TT-C-GT-AG--AT-A-TT--C-G-C-A-A-G-A-AC-A-CC--------AG--T--G--GC-GAA-G--G-C---G---G--C-T-C-A---CTG-----G--CC-C-G------------------------A-T-----A-C-T--GA--CG--C--T-G--A-GG--C-A-CG-A--AA-G-C--G-TG--GG-G--AG-C-A-AA--CA
Esse primeiro código é o nome dado para cada dado pelo equipamento, dessa forma, cada sequência teria um código diferente. quando eu utilizo
grep 'M02913' rep.fasta
eu consigo encontrar todos os códigos diferentes que tem essa sequência no inicio. Existe alguma forma de utilizar o mesmo principio para encontrar e apagar todos os códigos que contenham M02913 no inicio? É importante que o sinal de ">" permanceça no começo.
Caso não seja possível, eu encontrei um script em python, mas eu não tenho nenhum conhecimento (noob) em python para utilizá-lo. Caso seja do conhecimento de algum de vocês, por gentileza, onde eu referencio o meu arquivo? Em qual lugar desse script e como eu coloco o arquivo molde para ser utilizado (rep.fasta)? Do jeito que esse script está, eu o copiei no servidor com o nome de otu.py e ao rodar apareceu um erro de Syntax na linha 8.
import sys
import re
#an empty list to hold the lines, as strings, of the input fasta file
info = []
#iterate through the input file and file up the list
with open(sys.argv[1], 'r') as fasta_in:
for line in fasta_in:
info.append(line.replace('\r', '').rstrip('\n'))
#an empty list to hold the OTU fasta seqs and their IDs as tuples
seqs = []
#iterate through the info list, replace the complex seq IDs with just the OTU ID, and fill up the seqs list
for index, item in enumerate(info):
if index == 0:
ID = re.search('Otu[0-9]*',item[1:]).group(0)
else:
if index % 2 == 0:
ID = re.search('Otu[0-9]*',item[1:]).group(0)
else:
seqs.append((ID, item))
#write the contents of the seqs list to a new file called "clean_repFasta.fasta"
with open("clean_repFasta.fasta", 'w') as fasta_out:
for item in seqs:
fasta_out.write('>' + item[0] + '\n' + item[1] + '\n')
Eu peço desculpas pela noobice e pelo texto longo. Se alguém puder me auxiliar ficaria extremamente grata.