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

Calcul scientifique Python Discussion :

creation d'un dictionaire


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 44
    Par défaut creation d'un dictionaire
    salut
    j'ai un fichier qui contient des sequences du nucleotides :
    et je veux construire un dictionaire a partie de ces donnees comme ceci:

    j'ai fait un programme mais ca marche pas tellment :
    Code : 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
    34
    35
    36
    37
    38
     
    #!/usr/bin/env python
    def position(c):
        if c=='A':
            pos = 0
        if c=='C':
            pos = 1
        if c=='G':
            pos = 2
        if c=='T':
            pos = 3
        return pos
     
     
     
     
     
     
    def create_dict(seq):
     
        for i in range(0,len(seq)):
     
            q=seq[i]
            a= position(q)
     
            for j in range(0,len(dict[i])):
                if j==a:
     
                    dict[i][j]='true'
                else:
                    dict[i][j]='false'
     
     
    liste=['CCG','AAT','CTG','TAG']
    for seq in liste:
        dict = {}
     
        create_dict(seq)

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    un exemple d'input/output serait plus parlant ...

    genre tu as ['CCG','AAT','CTG','TAG'] en entrée, tu veux quoi en sortie ?

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 44
    Par défaut
    desolée encore une fois ,voici l'output pour la liste:['CCG','AAT','CTG','TAG']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    A1A	A1C	A1G	A1T	A2A	A2C	A2G	A2T	A3A	A3C	A3G	A3T	Target
    F	T	F	F	F	T	F	F	F	F	T	F	yes
    T	F	F	F	T	F	F	F	F	F	F	T	yes
    F	T	F	F	F	F	F	T	F	F	T	F	yes
    F	F	F	T	T	F	F	F	F	F	T	F	yes
    T :true
    F: false

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    heu ... je ne suis pas plus avancé ^^
    tu veux créer un dictionnaire à partie de cette séquence: ['CCG','AAT','CTG','TAG']
    donc, à quoi ressemblera ce dictionnaire ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Bonsoir,

    Tout d'abord, simplifions la fonction position:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def position(letter):
        return 'ACGT'.index(letter)
    Ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def create_dict(seq):
     
        for i in range(0,len(seq)):
     
            q=seq[i]
            a= position(q)
     
            for j in range(0,len(dict[i])):
    devrait te lever une exception KeyError puisque ton dictionnaire est vide.
    Cette fonction ne retourne rien d'autre que None donc tu la relances à chaque fois avec un dictionnaire vide.

    En fait on ne comprend pas exactement ce que doit faire la fonction create_dict.

    Un exemple ?

  6. #6
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 44
    Par défaut
    merci pour vos reponces,
    je vais essayer de mieux expliquer le probleme .
    je dois inserer chaque sequence dans la liste dans un tableau ,par exemple pour la sequence :CGC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A1A	A1C	A1G	A1T	A2A	A2C	A2G	A2T	A3A	A3C	A3G	A3T	Target
    F	T	F	F	F	F	T	F	F	T	F	F	yes
    le premier nucleotide est :C donc A1C sera True et les autres A1 seront false
    le 2eme est :G donc A2G sera True et les autres A2 seront false ,la meme chose pOUr le troisieme .

Discussions similaires

  1. [VB6] Création de composant
    Par Tchetch dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/10/2002, 14h52
  2. [c++ builder] creation de surface sur TPanel
    Par JEG dans le forum DirectX
    Réponses: 7
    Dernier message: 23/09/2002, 22h41
  3. [Kylix] SIGSEGV 11 - creation form
    Par pram dans le forum EDI
    Réponses: 1
    Dernier message: 29/08/2002, 15h24
  4. Creation de fiche dynamique
    Par Mouss26 dans le forum C++Builder
    Réponses: 7
    Dernier message: 24/07/2002, 07h56
  5. Creation d une clee dans la registry en VC++
    Par rico27fr dans le forum MFC
    Réponses: 4
    Dernier message: 30/05/2002, 12h36

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