J'essaye de créer une liste possible de codons donnés une séquence de protéine.Travailler avec itertools.product et les listes en python 3
Fondamentalement, le script que j'essaie de créer traitera une entrée de chaîne donnée et sortira des combinaisons possibles d'un autre ensemble de chaînes que l'entrée représente. Par exemple, le caractère «F» représente «UUU» ou «UUC»; le caractère 'I' représente 'AUU', 'AUC' ou 'AUA'.
Compte tenu de l'entrée 'FI', le script que je suis en train de créer une sortie devrait: 'UUUAUU', 'UUUAUC', 'UUUAUA', 'UUCAUU', 'UUCAUC' et 'UUCAUA'.
Je suis actuellement coincé avec ce code:
import itertools
F = ['UUU', 'UUC']
I = ['AUU', 'AUC', 'AUA']
seq, pool = 'FI', []
for i in seq:
pool.append(eval(i))
for n in itertools.product(pool):
print(n)
Il fonctionne quand je remplacerai pool
à itertools.product
avec pool[0], pool[1]
. Mais je ne peux pas comprendre comment le faire fonctionner afin que l'utilisateur puisse entrer une chaîne avec plus de 2 caractères (c'est-à-dire ne pas le rendre codé en dur).
Merci d'avance pour l'aide!