Oi, pessoal.
Bom, meu problema é simples, porém não consigo resolver:
Eu tenho o DNA de uma doença aleatória e preciso substituir os valores pelo cDNA, onde “A” será substituído por “C”, “C” por “A”, “T” por “G” e “G” por “T”;
EXEMPLO:
DNA do ser vivo gerado aleatoriamente: TCCATGAGTTACCATCTGAG
DNA do ser vivo, complementar invertido: GAACGTCTGGCAACGAGTCT
Eu tentei usar
['A'ifx=='C'elsexforxindna]
e funciona, mas quando eu adiciono um “and […]” pra continuar substituindo por outras letras, a letra anterior para de substituir.
Usando and não dá certo, x não pode ser A e C e G e T… ao mesmo tempo no momento da verificação… para isso você deve usar or… mas vai ficar gigante sua instrução, melhor mapear o dna com seus valores invertidos usando dict (dicionário)…
mapa_dna={'A':'C','C':'A','G':'T','T':'G'}
Depois sim fica facil criar uma lista…
[mapa_dna[x]forxindna]
W
Willian_Silva_Ads
Achei uma solução que talvez possa lhe ajudar:
dna='TCCATGAGTTACCATCTGAG'#DNA doentecdna={'A':'C','C':'A','G':'T','T':'G'}#mapeamento do cDNAlista2=[]#percorre o dna doenteforxindna:# se cDNA for igual ao DNA doente substitui cada letra pelo mapeamento cDNA...ifcdna['A']==x:lista2.append('A')elifcdna['C']==x:lista2.append('C')elifcdna['G']==x:lista2.append('G')elifcdna['T']==x:lista2.append('T')else:lista2.append(x)#transforma uma lista em uma String sem [] e espaçosnovo_dna=''.join(map(str,lista2))#imprime as duas sequenciasprint('Sequência DNA de doença---: {}'.format(dna))print('Sequência cDNA------------: {}'.format(novo_dna))