Programme python qui recherche toutes les occurrences d’un site de restriction

Signaler
-
Messages postés
13159
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
-
Bonjour, j'ai un programme à réaliser mais je rencontre des difficultés. Pouvez-vous m'aider s'il vous plait ?

Voici l'énnoncé :

Ecrire un programme qui lis une séquence d’ADN au format fasta stockée dans un fichier et qui recherche toutes les occurrences d’un site de restriction donné par l’utilisateur pour les indiquer en majuscules, le reste de la séquence étant en minuscules. Ce programme devra afficher la séquence par blocs de 60.

Avez-vous des idées ?
Merci d'avance pour votre réponse

4 réponses

Messages postés
13159
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
732
J'ai réussi à lire la séquence au format FASTA, et à l'afficher par bloc de 60. Cependant je n'arrive pas à mettre en évidence le site de restriction rentré par l'utilisateur.
Voici ce que j'ai essayé:

nom_fichier = input('Quel est le nom du fichier FASTA contenant la séquence ? ')
fichier_fasta = open(nom_fichier) #ouverture fichier FASTA contenant la séquence
nom = fichier_fasta.readline().strip() #On passe la premiere ligne
sequence = '' # boucle de lecture de la sequence
for ligne in fichier_fasta.readlines() :
sequence = sequence + ligne.strip()
fichier_fasta.close() #fermeture fichier FASTA
sequence=sequence.lower()

# affichage par bloc de 60
for i in range(0,len(sequence),60) :
print(sequence[i:i+60])
Messages postés
13159
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
732
peux-tu relire soigneusement la page dont je t'ai envoyé le lien? elle explique, entr'autres, comment poster du code.
J'ai réussi à lire la séquence au format FASTA, et à l'afficher par bloc de 60. Cependant je n'arrive pas à mettre en évidence le site de restriction rentré par l'utilisateur.
Voici ce que j'ai essayé:

<code csharp>nom_fichier = input('Quel est le nom du fichier FASTA contenant la séquence ? ')
fichier_fasta = open(nom_fichier) #ouverture fichier FASTA contenant la séquence
nom = fichier_fasta.readline().strip() #On passe la premiere ligne
sequence = '' # boucle de lecture de la sequence
for ligne in fichier_fasta.readlines() :
sequence = sequence + ligne.strip()
fichier_fasta.close() #fermeture fichier FASTA
sequence=sequence.lower()

# affichage par bloc de 60
for i in range(0,len(sequence),60) :
print(sequence[i:i+60])
</code>                        
                
Messages postés
13159
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
732
si c'est du python, pourquoi le postes-tu avec les balises pour c#?

je ne vois pas où tu essaies de faire quelque chose avec le site de restriction.
Le programme doit demander un site de restriction à l'utilisateur. Il s'agit d'une suite de lettres. Ensuite le programme doit repérer et mettre en évidence ce site dans la séquence qu'il a lu dans le format FASTA.

Exemples d'exécution :
Nom du fichier de la sequence d'ADN (format fasta) : seq1.txt
Entrez un site de restriction : AAGCTT
affichage en majuscules des sites de restriction trouves :
tgcggctgagggcggattcctggtggatccggtgaacggccagaagatcaccgtgttAAG
CTTgcgcgacccggccaacatcaactgggccagtgggaattcctggagccgaattcgtat
gtggtggagtccaccggagtgttcaccaccattgacaagAAGCTTgcgtccacccacttg
aagggcgg


nom_fichier = input('Quel est le nom du fichier FASTA contenant la séquence ? ')
fichier_fasta = open(nom_fichier) #ouverture fichier FASTA contenant la séquence
nom = fichier_fasta.readline().strip() #On passe la premiere ligne
sequence = '' # boucle de lecture de la sequence
for ligne in fichier_fasta.readlines() :
     sequence = sequence + ligne.strip()         
fichier_fasta.close() #fermeture fichier FASTA
sequence=sequence.lower()

# affichage par bloc de 60
for i in range(0,len(sequence),60) :
   print(sequence[i:i+60]) 
Messages postés
13159
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2020
732
à toi maintenant de trouver comment continuer l'exercice.
si tu ne trouves vraiment pas, je suggère de faire d'abord des exercices plus simples.