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

Shell et commandes GNU Discussion :

Comment utiliser join avec sort des 2 fichiers input


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut Comment utiliser join avec sort des 2 fichiers input
    Bonjour,
    Je cherche à exécuter cette commande que j'ai trouvé sur les forums de stackoverflow. Mais je n'arrive pas a faire fonctionner les 2 tris qui servent d'entrée au join.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    time join  -t $'\t' <(sort -T . chr.19.dump) <(sort -T . chr.19.hg18.data) | sort -T . -n > chr.19.aaa
    join: /dev/fd/63: No such file or directory
    J'ai aussi essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    time join  -t $'\t' <$(sort -T . chr.19.dump) <$(sort -T . chr.19.hg18.data) | sort -T . -n > chr.19.aaa
    -bash: $(sort -T . chr.19.dump): ambiguous redirect
    Auriez vous une idée?
    Merci
    Z.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 598
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 598
    Points : 19 486
    Points
    19 486
    Par défaut
    Bonjour,

    le première forme est correcte.

    quel est le contexte ?
    on peut avoir les fichiers (en pièces jointes) ?

  3. #3
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Bonjour,
    Puisque tu me confirmes l'exactitude de ma syntaxe, je l'ai testé sur d'autres machines (ubuntu 12.04 et centos 5.8). Il s'avère que la jointure s'effectue sans erreur. Les fichiers et la syntaxes sont correctes.

    J'ai observé le tri sous le centos 5.8, et les 'files descriptors' /dv/fd/xx des fichiers de tri se créent et restent présent pour la jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
    27045 root      20   0 58992   604   524 R 100.  0.0  2:04.60 join -t ? /dev/fd/63 /dev/fd/62
    Alors que avec le HPC, les /dev/fd ne sont pas accessible pour la jointure, d'ou l'erreur que j'ai.

    Je pense m'embarquer sur des fichiers intermédiaire, a moins de trouver une solution a cette erreur.

    [edit] Puisque mes fichiers sont déjà triés numériquement, je vais faire un programme en C. La solution ci-dessus n'est pas viable : 8 min pour ma plus petite paire (chromosome 19) de 900MO chacun. Ma plus grande paire (chromosome 1), chaque fichier font 7GO !

    Merci de ton aide.
    Z.

  4. #4
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Programme fini :
    outter join basé sur la 1ere colonne de 2 fichiers. Ces 2 colonnes doivent etre trier numériquenement. 8min avec join et sort (bash), 6 min avec perl, 53secondes en C
    Merci a tout ceux qui ont pris le temps de lire mon message.
    Z.

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

Discussions similaires

  1. [Débutant] Comment utiliser Unity avec le fichier de config
    Par youtpout978 dans le forum C#
    Réponses: 5
    Dernier message: 12/12/2012, 17h42
  2. Comment utiliser JAXB avec un fichier properties?
    Par sofien dans le forum Persistance des données
    Réponses: 0
    Dernier message: 24/02/2010, 13h28
  3. Comment utiliser ShellExecute avec un programme DOS ?
    Par RC10GT_MGT dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 22/09/2005, 15h23
  4. Comment utiliser AddItem avec un TComboBox ?
    Par richard038 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 01/08/2005, 18h58
  5. Réponses: 12
    Dernier message: 02/02/2004, 14h41

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