Extraire le complémentaire de ADN en python

lana_djoen Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
georges97 Messages postés 13767 Date d'inscription   Statut Contributeur Dernière intervention   -


Bonjour,
  Le  fonction complémentaire ADN n'est pas fonctionner, comment résoudre-la.

#Extraire le complément de la chaîne d'ADN 
def complementary_dna ( b_com , g_com , r_com ) :
    complement = { ' A ' : ' T ' , ' T ' : ' A ' , ' G ' : ' C ' , ' c ' : ' G ' } 
    blue_complement = [ ] 
    green_complement = [ ] 
    red_complement = [ ] 
    for base in b_com :
        blue_complement.append ( complement [ base ] ) 
    for base in g_com : 
        green_complement.append( complement [ base ] )
    for base in r_com : 
        red_complement.append (complement [base])
    return blue_complement, green_complement, red_complement

def encrypt (file_path,Mk ) :
    blue,green,red,img1=decompose_matrix(file_path)
    blue_e,green_e,red_e=dna_encode(blue,green,red)
   
    blue_s,green_s,red_s =complementary_dna(blue_e,green_e,red_e)
    blue_final, green_final, red_final,h,y = operation(blue_s,green_s,red_s,Mk) 
    b,g,r=dna_decodee(blue_final,green_final,red_final)
    img2=recover_image(b,g,r)
    return img2 ,img1

error:
 File "c:\Users\acer\projetdna\encrypt.py", line 336, in encrypt
    blue_s,green_s,red_s =complementary_dna(blue_e,green_e,red_e)
                        
  File "c:\Users\acer\projetdna\encrypt.py", line 208, in complementary_dna
    blue_complement.append ( complement [ base ] )
                             
TypeError: unhashable type: 'chararray'

A voir également:

3 réponses

BmV Messages postés 92715 Date d'inscription   Statut Modérateur Dernière intervention   4 849
 

Bien le bonjour,

On va peut-être juste rappeler ici que, sur ce forum comme dans la "vraie" vie, des formules minimales de politesse basique (en-dehors du "Bonjour" préimprimé gratuitement) du genre "S'il vous plait" - "Merci par avance" - "Bien cordialement" et toute autre variante sur le même thème sont très appréciées.

Et ce, pour au moins une bonne raison s'ajoutant à la notion de civilité universelle : les gens qui répondent ici sont des bénévoles à qui on vient demander un service gratuit.

Pour accéder à tous les détails, cliquer sur ► https://www.commentcamarche.net/infos/25855-charte-d-utilisation-de-commentcamarche-net-respect-d-autrui/#politesse

Merci par avance.
Et en attendant, bonne continuation ici.

0
brucine Messages postés 21674 Date d'inscription   Statut Membre Dernière intervention   3 424
 

Bonjour,

Cet exercice semble être devenu un passage obligé de certaines classes au lycée et à la fac, c'est sans doute ce qui nous vaut des demandes de plus en plus répétées à ce sujet; ne conviendrait-il pas de les regrouper dans un fil unique?

Cette popularité fait aussi que, selon qu'on veut se former à Python ou bien seulement avoir une bonne note à un devoir en recopiant ce que d'autres ont fait, on trouve facilement sur Internet des sites expliquant la démarche ou proposant un script prêt à l'emploi.

0
georges97 Messages postés 13767 Date d'inscription   Statut Contributeur Dernière intervention   2 648
 

Bonjour,

Il est possible que ce soit un exercice correspondant à un test de niveau, mais pour ce sujet, il est apparu en Mars, sous des pseudos et titres légèrement différents mais d'un seul et même pays étranger et sans qu'apparaissent dans l'historique les nombreux doublons supprimés de la seule et même provenance.

Il suffit de taper images ou ADN pour en suivre les différents avatars sous au moins trois pseudos.

Le regroupement sur un fil ne consisterait à mon avis que dans la suppression des doublons répétés sur un seul et unique pseudo.

0