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

Langage Perl Discussion :

parser un fichier de 277 Go !


Sujet :

Langage Perl

  1. #21
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    oubie pas test4 avec -L , elle majuscule
    wc -L ../resultats/Match_natif_human_5000up.txt

  2. #22
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Peux tu nous montrer comment tu génères ce fichier et nous dire l'intérêt d'avoir un fichier de 277 Go ?

  3. #23
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par djibril Voir le message
    oubie pas test4 avec -L , elle majuscule
    je n'oublie pas, mais le premier (avec le -l minuscule) n'est toujours pas terminé.

    Citation Envoyé par djibril;
    Peux tu nous montrer comment tu génères ce fichier et nous dire l'intérêt d'avoir un fichier de 277 Go ?
    je veux bien montrer les codes générant le fichier sur lequel je travaille, mais l'algo qu'il y a derrière est assez complexe.
    En gros, j'ai à la base un fichier multifasta contenant une liste de 12951 promoteurs. Je prends les promoteurs un à un, et j'exécute un programme s'appelant MATCH dessus. Le programme MATCH permet d'obtenir la liste des TFBS potentiels qu'il y a sur le promoteur.
    Donc je génère un fichier qui répertorie tous les TFBS potentiels de chaque promoteur.

    Le truc, c'est qu'il va falloir filtrer ce fichier car il y a des TFBS non spécifiques qui sont trouvé. Au départ, on voulait avoir un fichier "natif" (non filtré) pour avoir quelques stats dessus (nombre de FT différents, nombre max de FTs par promoteur...). Je ne m'attendais pas à un fichier de 277Go...

    Du coup, tant pis pour les stats, je pense retravailler le script qui génère le fichier mais cette fois avec une contrainte permettant un "pré"-filtrage des résultats pour avoir un fichier plus léger à traiter après...

  4. #24
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Points : 129
    Points
    129
    Par défaut
    bon, alors le
    a donné 37587 lignes, ce qui encore une fois me parait peu.

    J'ai essayé avec le -L, mais l'option n'existe pas. Je travaille sur Mac, c'est peut être pour ça, mais les seules options disponibles que j'ai ce sont celles-là :
    The following options are available:

    -c The number of bytes in each input file is written to the standard output. This will cancel out any
    prior usage of the -m option.

    -l The number of lines in each input file is written to the standard output.

    -m The number of characters in each input file is written to the standard output. If the current
    locale does not support multibyte characters, this is equivalent to the -c option. This will can-
    cel out any prior usage of the -c option.

    -w The number of words in each input file is written to the standard output.

    When an option is specified, wc only reports the information requested by that option. The order of output
    always takes the form of line, word, byte, and file name. The default action is equivalent to specifying
    the -c, -l and -w options.
    ce qui parait le plus proche de ce qu'on veut, c'est l'option -m, mais je suis pas sur que ça donne la taille de la ligne la plus longue... je vais tester quand même, ça coute rien.


    Mais bon, étant donné que je peux pas traiter ce fichier et qu'il n'y a visiblement pas assez de lignes, je vais générer à nouveau le fichier en le filtrant pour obtenir un fichier moins lourd...

  5. #25
    Membre confirmé
    Avatar de MaliciaR
    Inscrit en
    Juillet 2008
    Messages
    513
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2008
    Messages : 513
    Points : 600
    Points
    600
    Par défaut
    Salut,

    Citation Envoyé par zaboug Voir le message
    En gros, j'ai à la base un fichier multifasta contenant une liste de 12951 promoteurs. Je prends les promoteurs un à un, et j'exécute un programme s'appelant MATCH dessus. Le programme MATCH permet d'obtenir la liste des TFBS potentiels qu'il y a sur le promoteur.
    Donc je génère un fichier qui répertorie tous les TFBS potentiels de chaque promoteur.
    Une idée qui vaut ce qu'elle vaut. Tu ne voudrais pas créer un fichier de sortie par promoteur testé? Bon, ok, ça fera au pire des cas 12951 fichiers Mais ce que tu peux faire, c'est créer un filtre à ce moment et ça te fera aussi tes stats. Je veux dire que tu peux faire plusieurs choses : rediriger le résultat de chaque recherche avec MATCH vers un fichier (promoterX.out avec X le nom ou le n° de ton promoteur dans le fichier d'entrée); mettre un seuil (là, c'est toi qui vois lequel, je ne connais pas MATCH) qui dit que si ce seuil est satisfait, le fichier .out est créé et on écrit le résultat dedans, sinon il est créé mais vide. Ainsi, tu pourras avoir directement des fichiers pleins avec les données qui t'intéressent et de taille plus petite que ~ 300 Go et d'une autre part, des fichiers tartampion.out vides qui disent directement que le promoteur tartampion ne contient pas les TFBS.
    Le tact dans l'audace c'est de savoir jusqu'où on peut aller trop loin. Cocteau
    L'abjection la plus totale, ce n'est pas de trahir, c'est de ne jamais donner un commencement de réalité à ses rêves les plus fous. M. Moreau


    Les indispensables : Les règles, , FAQ et tutos avant de poster, et !
    Traduction de Linux Device Drivers 3 : venez participer
    membre de l'April - Promouvoir et défendre les logiciels libres

  6. #26
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Points : 129
    Points
    129
    Par défaut
    MaliciaR, ça aurait pu être une bonne idée si je n'avais eu qu'à faire des stats. Mais sur tous les promoteurs il y aura des TFBS, c'est juste qu'il y en a qui apparaissent 300 fois (ceux que je dois éliminer) et d'autres qui apparaissent une fois. Cela dit, pas d'inquiétude, j'ai déjà une contrainte de filtrage codée. On voulait faire des stats sur un fichier non filtré pour voir, mais si ce n'est pas possible, ce n'est pas un drame...


    Djibril, tu avais raison, j'ai finis par obtenir les résultats des commandes wc. J'ai testé mes deux fichiers : celui que j'avais déjà, qui fais 1,45Go et contient "seulement" 4250 promoteurs, et sur le fichier de 277Go.

    Pour la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wc -l ../resultats/Match_natif_human_5000up.txt
    sur le petit fichier, j'obtiens : 18 819 923
    sur le grand fichier, j'obtiens : 37 587

    c'est incohérent d'avoir plus de lignes dans un fichier censé contenir plus de promoteurs....

    après de longues heures d'attentes, j'ai finis par obtenir les résultats de la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wc -m ../resultats/Match_natif_human_5000up.txt
    pour le petit fichier : 1 560 675 523
    pour le grand fichier : 297 599 248 110

    Donc y'a bien une ligne énorme qui fout la grouille dans le gros fichier...

    Du coup, je m'en vais de ce pas corriger le script qui génère le fichier, et il ne devrait plus y avoir de problème.

    Merci de votre aide, j'aurais jamais vu ça toute seule

  7. #27
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Points : 129
    Points
    129
    Par défaut
    bon, finalement le problème ne venait pas du script qui génère mes fichiers (ou pas complètement)!

    Le fichier est généré sur une machine virtuelle, et visiblement, le problème vient de là. Maintenant, reste à comprendre le pourquoi du comment.

    Je viens de poster l'explication du problème sur le forum de virtualisation ici :
    http://www.developpez.net/forums/d75...ille-fichiers/

    Je met quand même le résolu, étant donnée que le problème ne venait pas de la manière de parser le fichier, mais bien du fichier lui-même...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [SAX] parser un fichier xml en Java
    Par royou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/02/2005, 17h12
  2. parser un fichier .dtd
    Par bgranou dans le forum Valider
    Réponses: 2
    Dernier message: 04/06/2004, 19h53
  3. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08
  4. parser un fichier avec xerces
    Par traiangueul dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 02/02/2004, 18h14
  5. parser un fichier html
    Par noarno dans le forum ASP
    Réponses: 2
    Dernier message: 10/12/2003, 17h53

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