multiple characters python string replace python-3.3 simultaneous

characters - string python



Funcionalidad simultánea de.replace (3)

Puede usar un diccionario de mapeo:

In [1]: dic={"A":"U","U":"A","G":"C","C":"G"} In [2]: strs="AUUUGCGGCAAA" In [3]: "".join(dic[x] for x in strs) Out[3]: ''UAAACGCCGUUU''

Ya he convertido la entrada del usuario del código de ADN (A,T,G,C) en el código de ARN (A,U,G,C) . Esto fue bastante fácil

RNA_Code=DNA_Code.replace(''T'',''U'')

Ahora, lo siguiente que tengo que hacer es convertir el RNA_Code en su cadena de cumplidos. Esto significa que necesito reemplazar A con U, U con A, G con C y C con G, pero todos simultáneamente.

si yo digo

RNA_Code.replace(''A'',''U'') RNA_Code.replace(''U'',''A'')

convierte todo el As en Nosotros, luego todos nosotros en As, pero me queda todo en cuanto a ambos.

Necesito tomar algo como AUUUGCGGCAAA y convertirlo a UAAACGCCGUUU .

¿Alguna idea sobre cómo hacer esto? (3.3)


Si aún no lo está usando, sugiero probar Biopython . Tiene todo tipo de funciones para tratar con datos biológicos, incluido un objeto Seq bastante atractivo. Hay una función reverse_complement() que hace exactamente lo que estás tratando de hacer, y mucho más de lo que quizás ni siquiera hayas pensado. Compruébalo, ahorra mucho tiempo.

>>> from Bio.Seq import Seq >>> from Bio.Alphabet import generic_dna >>> my_dna = Seq("AGTACACTGGT", generic_dna) >>> my_dna Seq(''AGTACACTGGT'', DNAAlphabet()) >>> my_dna.complement() Seq(''TCATGTGACCA'', DNAAlphabet()) >>> my_dna.reverse_complement() Seq(''ACCAGTGTACT'', DNAAlphabet())


Use una tabla de traducción:

RNA_compliment = { ord(''A''): ''U'', ord(''U''): ''A'', ord(''G''): ''C'', ord(''C''): ''G''} RNA_Code.translate(RNA_compliment)

El método str.translate() toma una asignación desde el punto de código (un número) hasta el carácter de reemplazo. La función ord() nos da un punto de código para un personaje dado, lo que facilita la construcción de su mapa.

Manifestación:

>>> RNA_compliment = {ord(''A''): ''U'', ord(''U''): ''A'', ord(''G''): ''C'', ord(''C''): ''G''} >>> ''AUUUGCGGCAAA''.translate(RNA_compliment) ''UAAACGCCGUUU''