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

C++ Discussion :

Erreur dans le calcul d'un score


Sujet :

C++

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut Erreur dans le calcul d'un score
    Bonjour

    Je travaille sur un projet de prédiction d'oligonucléotides ou je détermine pour chacune de ces macomolécules un score en fonction de leur réponse à des critères d'évaluation.
    Voici une sortie de mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CAAGAAUGCCGUGGAGUCUGU    2015    -212.82    -571.6    6973.09    52    56.7712    5
    GUUCUUACGGCACCUCAGACA
    CCAAGCCACUGUUAAGUGGCU    2090    -208.74    -556.9    6893.03    52    58.6193    134678821
    GGUUCGGUGACAAUUCACCGA
    CAAGCCACUGUUAAGUGGCUG    2091    -205.79    -551.1    6933.06    52    57.0812    134681523
    Le score est le dernier chiffre. Ce chiffre doit être compris entre 0 et 10 inclus. Comme vous le voyez, certains de ces chiffres ne sont pas corrects. Voici mon enchaînement :
    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
     
    void my_prediction(siRNA_Ensembl *ensemble, siRNA_Ensembl *ensemble2, int MaxGC, int MinGC, double sel){
        for(unsigned int i=0; i<ensemble->ensembl.size(); i++){
            if(rule1(ensemble->ensembl[i], MaxGC, MinGC))
                if(rule2(ensemble->ensembl[i]))
                     if(rule3(ensemble->ensembl[i])){
                        ensemble->ensembl[i]->Tm = Calc_Tm(ensemble->ensembl[i], sel);
                        ensemble->ensembl[i]->MW = getMW(ensemble->ensembl[i]->sens);
                        ensemble->ensembl[i]->antisens = complement(ensemble->ensembl[i]->sens);
                        rule4(ensemble->ensembl[i]);
                        rule5(ensemble->ensembl[i]);
                        rule6(ensemble->ensembl[i]);
                        rule7(ensemble->ensembl[i]);
                        rule8(ensemble->ensembl[i]);
                        ensemble2->ensembl.push_back(ensemble->ensembl[i]);
                    }
        }
    }
    Tous mes scores sont pourtant initialisés à 0 et je procède par des post-incrémentations pour augmenter mon score.
    Pourquoi ai-je de temps en temps de pareils résultats ?
    Merci d'avance de votre aide.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut moi-même

    Apparemment mon erreur venait d'une mauvaise initiation.
    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    siRNA *si = new siRNA();
    si->score = 0;
    Tout se passe bien. Initiallement, la deuxième ligne n'existait pas.
    Le plus curieux vient de mon constructeur où pourtant, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    siRNA::siRNA(){
        sens = "";
        antisens = "";
        Tm = 0;
        GC = 0;
        start = 0;
        score = 0;
        MW = 0;
    }
    Bref, je ne comprends pas pourquoi cet ajout de ligne, redondante à priori, me donne un bon résultat.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Bon et bien c'est résolu mais si des gens veulent me dire la bizarrerie que je viens d eciter, je leur en serais gré.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Je t'avouerai que je suis
    Tu peux vérifier que ton constructeur est bien appelé ? En faisant un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout << "coucou c'est moi" << std::endl;
    dans le constructeur, ça ira - avec #include <iostream> -

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Non, c'est correct Miles, mon constructeur est bien appelé.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Bizarre... Pas de problème d'overflow quand tu travailles sur tes objets ?

  7. #7
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Hello

    Non, non, à priori, tout est correct.
    Comment vérifies-tu ces erreurs ?
    C'est ça qui me surprend le plus.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Avec un add-on de gdb comme efence, mais à part ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur dans le calcul de exponentielle
    Par Por Qué dans le forum MATLAB
    Réponses: 3
    Dernier message: 20/09/2013, 08h49
  2. [AC-2000] Mention #Erreur dans champ calculé
    Par ClaudeLELOUP dans le forum IHM
    Réponses: 6
    Dernier message: 22/10/2010, 09h18
  3. Erreur dans des calculs avec des dates
    Par Oliv'83 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 31/07/2008, 11h23
  4. erreur dans le calcul de nombre moyen des bits érronés
    Par princesse07 dans le forum MATLAB
    Réponses: 3
    Dernier message: 23/05/2008, 14h30
  5. erreur dans la formule de calcul introuvable
    Par carmen256 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 23/05/2006, 08h39

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