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''