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 :

langage perl et bash ,utilisation qsub


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur d'étude et de développement en bioinformatique en recherche d'emploi
    Inscrit en
    Mars 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'étude et de développement en bioinformatique en recherche d'emploi
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Points : 68
    Points
    68
    Par défaut langage perl et bash ,utilisation qsub
    Bonjour je lance un qsub depuis un script perl
    Voici le script
    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
    #generate qsub file and launch it
    my $qsuboutfile3 = "summary_$chr.qsub";
    open (QSUB,">summary_chr/$chr/$qsuboutfile3")or die "\nError : $qsuboutfile3 file could not be created: $!\n";
    print QSUB qq(#!/bin/bash
    #\$ -S /bin/bash
    #\$ -V
    #\$ -M $users{$user}
    #\$ -m e
    #\$ -o $qsuboutfile3.out
    #\$ -e $qsuboutfile3.err
    #\$ -cwd
    #\$ -q long.q
    #\$ -pe thread 3
    # command(s):
    hostname >&2
     
    for sample in $(ls *_rmdup_$chr/_find_CNV.txt)
    	do cat $sample > summary_$chr.txt
    done
    sort -t: -k 3,3 -n  summary_$chr.txt  | uniq -c - > summary_$chr/_sorted.txt
     
    );
    close QSUB;
    #launch qsub job if asked
    my $jobid;
    if ($submit eq "yes") {
    	my $dependencies = "-hold_jid ".join(",",@compare_samples_jobs);
    	my $instruction = "cd summary_chr/$chr;qsub $dependencies $qsuboutfile3 | awk '{print \$3}'";
    	$jobid=qx{$instruction};
    	chomp $jobid;
    	$summary_samples_jobs{$chr}=$jobid;
    	print STDERR ".";
    	}
    Et quand je fais tourner le script voici ce qu'il me dit
    Global symbol "$sample" requires explicit package name at /projet/gabi/save/kbarrilliot/bin/sge_CNVcapt_FINAL_essai.pl line 284.
    Et ce $sample doit etre compris dans le script bash et non dans le perl.
    Merci de votre aide

  2. #2
    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 : 498 771
    Points
    498 771
    Par défaut
    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
    #generate qsub file and launch it
    my $qsuboutfile3 = "summary_$chr.qsub";
    open( QSUB, '>', "summary_chr/$chr/$qsuboutfile3" )
      or die "\nError : $qsuboutfile3 file could not be created: $!\n";
    print QSUB <<'PROG';
    #!/bin/bash
    #\$ -S /bin/bash
    #\$ -V
    #\$ -M $users{$user}
    #\$ -m e
    #\$ -o $qsuboutfile3.out
    #\$ -e $qsuboutfile3.err
    #\$ -cwd
    #\$ -q long.q
    #\$ -pe thread 3
    # command(s):
    hostname >&2
     
    for sample in $(ls *_rmdup_$chr/_find_CNV.txt)
    	do cat $sample > summary_$chr.txt
    done
    sort -t: -k 3,3 -n  summary_$chr.txt  | uniq -c - > summary_$chr/_sorted.txt
     
    PROG
    close QSUB;
     
    #launch qsub job if asked
    my $jobid;
    if ( $submit eq "yes" ) {
      my $dependencies = "-hold_jid " . join( ",", @compare_samples_jobs );
      my $instruction = "cd summary_chr/$chr;qsub $dependencies $qsuboutfile3 | awk '{print \$3}'";
      $jobid = qx{$instruction};
      chomp $jobid;
      $summary_samples_jobs{$chr} = $jobid;
      print STDERR ".";
    }
    Au moins, cela évite les interpolations.

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

Discussions similaires

  1. Utilisation de langage Perl
    Par sonia5 dans le forum Langage
    Réponses: 10
    Dernier message: 09/12/2014, 22h55
  2. l'utilisation de la langage perl
    Par rezguiinfo dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2011, 16h19
  3. Réponses: 2
    Dernier message: 16/07/2004, 19h31
  4. Réponses: 5
    Dernier message: 08/07/2004, 19h57
  5. [langage] Perl en Stand alone ?
    Par lasconic dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2004, 10h19

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