IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Fragmenter une sequence (fichier FASTA) :


Sujet :

Python

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    �tudiant
    Inscrit en
    D�cembre 2018
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Sant�

    Informations forums :
    Inscription : D�cembre 2018
    Messages : 1
    Par d�faut Fragmenter une sequence (fichier FASTA) :
    J'ai r�aliser un programme dans python afin de fragmenter une longue s�quence prot�ique de plus de 600 acides amin�s en petits fragments de 200aa et les sauvegarder dans des sous fichiers ,mais ca fonctionne pas quand je ferais l'ex�cution...

    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    from Bio import SeqIO
    from Bio.Seq import Seq
     
    def LireFASTA(chemin):
        print("------------------------------ Lecture ------------------------------")
     
     
        seqs = [] 
        for record in SeqIO.parse(chemin, "fasta"):
            seqs.append(str(record.seq))
        return seqs
    def fragmentersequence(seq):
        print("......................Fragmenter..................")
     
        fragment_sequence = []
        j=0
        n=0
        m=200
        if len(seq)>600 :     
            for i in seq:
                    fragment_sequence= i[n:m]
                    n=n+200
                    m=m+200
                    j=j+1
                    print(fragment_sequence)
                    count = SeqIO.write(fragment_sequence, "E:/fragment"+ str(j)+".txt", "fasta")
    def program():
       chemin=input ("entrez chemin : ")
       res= LireFASTA(chemin)
       fragmentersequence(res)
     
    if __name__ == '__main__':
       program()
    Fichiers attach�s Fichiers attach�s

  2. #2
    Membre �m�rite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Ao�t 2005
    Messages
    637
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Bio informaticien

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 637
    Par d�faut
    Bonjour,

    Tout d'abord pour afficher du code utilise la balise CODE (le signe #) pour un meilleur formatage.

    Ensuite nous sommes dans un forum perl, le forum python serait plus appropri�.

    Enfin, il existe une fonction split pour faire ce d�coupage.

    Bon courage !

  3. #3
    Expert confirm� Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par d�faut
    Ta fonction LireFASTA() renvoie une liste de plusieurs s�quences (une liste de cha�ne de caract�res) alors que ta fonction fragmentersequence() prend en param�tre une seule s�quence (une cha�ne de caract�res).

    Or dans la fonction program() tu passes la liste renvoy�e par LireFASTA() � ta fonction fragmentersequence() qui attend une simple cha�ne. �a ne peut pas marcher.

    La logique de fragmentersequence() n'a pas l'air bonne: boucler sur chaque caract�re avec for i in seq: est une id�e plut�t bizarre. La seule chose sur laquelle il faut te concentrer, c'est la longueur de la s�quence et les positions o� tu vas faire tes d�coupages, pas besoin de passer tous les acides amin�s en revue. Donc une boucle conditionnelle qui compare la position du d�but de ta fen�tre (n dans ton code) avec la taille de la s�quence serait plus appropri�e.

    Certaines choses ne sont pas claires dans ta question:
    • Est-ce que ton fichier fasta de d�part contient plusieurs s�quences? Et si oui, ton programme doit-il toutes les traiter? (ceci implique de trouver une mani�re de nommer les fichiers automatiquement d'apr�s la description de la prot�ine du fichier fasta.)
    • Dans le cas o� une s�quence d�passe les 600 acides amin�s, les fichiers r�sultants doivent-ils aussi �tre au format fasta (c'est � dire commen�ant par une description du type:>sp|Q6GZW6|009L_FRG3G Putative helicase 009L OS=Frog virus 3 (isolate Goorha) OX=654924 GN=FV3-009L PE=4 SV=1) ou doivent-ils juste contenir le morceau de s�quence?

Discussions similaires

  1. decoupage des sequences de fichier fasta
    Par rosef dans le forum G�n�ral Python
    R�ponses: 6
    Dernier message: 24/09/2013, 11h23
  2. Manipulation sequence fichier fasta
    Par Isabella83 dans le forum Bioinformatique
    R�ponses: 1
    Dernier message: 15/02/2012, 21h21
  3. [Fichier] Chercher et remplacer une sequence
    Par maximus001ma dans le forum Entr�e/Sortie
    R�ponses: 14
    Dernier message: 25/01/2006, 16h08
  4. [bioinfo] reverse complementaire d'une sequence
    Par perlgirl dans le forum Bioinformatique
    R�ponses: 6
    Dernier message: 18/06/2004, 11h22
  5. peut-on savoir si un champ a une sequence??
    Par e11137 dans le forum PostgreSQL
    R�ponses: 3
    Dernier message: 09/01/2004, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo