Extraire le complémentaire de ADN en python

Fermé
lana_djoen Messages postés 1 Date d'inscription mardi 23 mai 2023 Statut Membre Dernière intervention 23 mai 2023 - 23 mai 2023 à 09:46
georges97 Messages postés 12265 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 28 septembre 2024 - 23 mai 2023 à 10:51


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 91168 Date d'inscription samedi 24 août 2002 Statut Modérateur Dernière intervention 28 septembre 2024 4 685
23 mai 2023 à 09:55

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 16966 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 28 septembre 2024 2 404
23 mai 2023 à 10:12

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 12265 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 28 septembre 2024 2 355
Modifié le 23 mai 2023 à 10:52

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