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

Bioinformatique Perl Discussion :

Calcul taille intergenique


Sujet :

Bioinformatique Perl

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Voici le fichier reciprocal best blast hit.
    Donc le but c'est d'aller chercher les CV-*** qui se suivent , c'est a dire CV-00001 CV-00002 ou le contraire , CV-00002 CV-00001 ensuite verfier le Aster -*** d'en face si les genes se suivent aussi.

    Ensuite pour le calcul des sens je fixe CV-00001 comme gene A et CV-00002 comme gene B .
    Voici le debut du code pour les fichiers cds
    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
     
     
     
    loadHash("coco_cds" );
        loadHash("aster_cds" );
     
     
     
        sub loadHash {
         my $filename = shift;
         open my $desc, '<', $filename;
         while (my $line = <$desc> ) {
           next if ($line =~ m/^\#/);
           chomp $line;
           my ( $id, $strand, $coord) = $line =~ m/[\w-]+\t([\w-]+)\t\d+\t([-+])\tORIGINAL JGI\t\d+\t[\#\w\.]+\t([,\d\.]+)/;
    Ensuite je dois faire la complexite des strands

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Je reprends depuis le debut en refaisant un schema, en esperant que je sois mieux compris .

    En fait je rajoute car je n'arrive toujours pas a régler mon problème, en fait
    je recommence mon problème, je pars d'un fichier (mis en pièce jointe).
    Je dois regarder les differents couples de C-**** qui se suivent et regarder si les couples Aster-*** qui sont en face d'eux , eux aussi se suivent,
    exemple:
    C169v2-03066 Aster-04710
    C169v2-03065 Aster-04711
    on a bien C169v2-03065 qui suit C169v2-0306 et en face les Aster correspondant pareil, par contre il n y a pas de restriction pour les Aster, je m'explique le suivis peut etre different ca ne pose pas de soucis.Comme dans cet exemple C169v2-03065 Aster-04711
    C169v2-03066 Aster-04710

    Ce qui compte le plus c'est le suivi.
    Merci

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour, voici le premier programme il manquait juste un test en plus:

    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
    39
    40
    41
    42
    43
    44
     
     #!/usr/local/bin/perl
     
    my $A=+1;
    my $B=-1;
    open my $fh, '<', 'intron2.txt' or die;
     
    # liste des positions du gène C
    my @C_array;
     
    # liste des positions du gène Aster
    my @Aster_array;
     
    while ( my $l = <$fh>){
     
    	if ($l =~ m/C169v2-(\d+)\tAster-(\d+)/){
    		push (@C_array, $1);
    		push (@Aster_array, $2);
    	}
    }
     
    for (my $i =0; $i<$#C_array; $i++){
     
    	# on prend les gènes C deux par deux (j'ai gardé ta nomination A et B))
     
    	my $A = $C_array[$i];
    	my $B = $C_array[$i+1];
    	my $C = $Aster_array[$i];
    	my $D = $Aster_array[$i+1];
     
    	# on vérifie que la différence
    	# soit au plus de 1
     
    	if ((abs ($A - $B) == 1) &&(abs($C-$D)==1)){
     		if ($A>$B){
    			print "C169v2-".$B."\t"."Aster-".$D."\t"."C169v2-".$A."\t"."Aster-".$C."\n" ;
     
    		}
    		else{
    			print "C169v2-".$A."\t"."Aster-".$C."\t"."C169v2-".$B."\t"."Aster-".$D."\n";
     
    		}
        }
    }
    J'ai mis dans un fichier le résultat ce qui va me permettre par la suite , un meilleur accès aux données.

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonsoir,
    voici un code que j'ai commence pour répondre a mon sujet, cependant j'ai un souci dans le calcul du strand, pour coco_cds j'ai la multiplication qui fonctionne bien, sauf pour aster ca marche pas .
    Je ne comprend pas le soucis???

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
     
     #!/usr/local/bin/perl
     
    my $P=1;
    my $N=-1;
     
     
    open (DESC3, "aster_cds");
    while(<DESC3>){
    	next if /^\#/;
    	chomp;
    	 %hash;
    	my ($id,$strand)=(split/\t/)[1,3];
    	if ($strand eq "-"){
    		$strand=$N;
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;
     
    	}		
     
     
     
    open (DESC2, "coco_cds");
    while(<DESC2>){
    	next if /^\#/;
    	chomp;
    	 %hash;
    	my ($id,$strand)=(split/\t/)[1,3];
    	if ($strand eq "-"){
    		$strand=$N;
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;
     
     
    	}
     
    open my $fh, '<', 'mamoud.txt' or die;
     
    while ( my $l = <$fh>){
    	chomp;
    	my ($A,$C,$B,$D)=(split/\t/,$l);
    	if ( ($hash{$A}*$hash{$B})==($hash{$C}*$hash{$D}) ){
    	#if ( (($hash{$A}*$hash{$B})==($hash{$C}*($hash{$D})) ||   ( ($hash{$A}==1 && $hash{$B}==-1) && ($hash{$C}==-1) && (($hash{$D}==1)))){
    		print $A."\t".$B."\t".$hash{$A}*$hash{$B}."\n";
    		print $C."\t".$D."\t".$hash{$C}*$hash{$D}."\n";
     
    }
    	}
    Merci

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonsoir,
    j'ai bien avance mais je bloque sur une complexite dont j'ai ecrit la solution mais j'arrive pas a le faire en test,

    donc le but de la complexite etait de verifier l'etat des sens de lecture des genes, donc ce qui ma ramene a ajoute les SScoco et SSaster,
    Complexite:
    Les filtres :1er
    si SScoco >0 et SScoco ==SSaster ok
    si SScoco<1 et sscoco==SSaster
    SS coco1==S(mini Aster A et Aster B) ok

    ensuite il faut que j'integre la suite des tests que j'ai mis dans le programme, ce qui me permet de faire le calcul intergenique

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     
     #!/usr/local/bin/perl
     
    my $P=1;
    my $N=-1;
     
     
    my %hash = ();# hash des strand
     
     
    open (DESC2, "coco_cds");
    while(<DESC2>){
    	next if /^\#/;
    	chomp;
     
    	 my ($id,$strand,$coord)=(split/\t/)[1,3,-1];
    	 my @cds=();
    	 foreach my $exon (split/,/,$coord){
    		my ($s,$e)=split(/\.\./,$exon);
    		push @cds,($s..$e)
    	}
    	if ($strand eq "-"){
    		$strand=$N;
    		@cds=reverse(@cds);
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;# hash des strand pour coco
    	my $count=0;
    	for (my $i=0;$i<@cds;$i+=3){
    		 $count++;
    		$aa2geno{$id}{$count}=$cds[$i];# hash des genomes pour coco
     
    	}
     
     
     
    }
     
     
    open (DESC3, "aster_cds");
    while(<DESC3>){
    	next if /^\#/;
    	chomp;
     
    	 my ($id,$strand,$coord)=(split/\t/)[1,3,-1];
    	 my @cds=();
    	 foreach my $exon (split/,/,$coord){
    		my ($s,$e)=split(/\.\./,$exon);
    		push @cds,($s..$e)
    	}
    	if ($strand eq "-"){
    		$strand=$N;
    		@cds=reverse(@cds);
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;# hash des strand pour aster
    	my $count=0;
    	for (my $i=0;$i<@cds;$i+=3){
    		 $count++;
    		$aa2geno{$id}{$count}=$cds[$i];# hash des genomes pour aster
     
    	}
     
     
     
    }
     
     
    open my $fh, '<', 'gene.txt' or die;
     
    while (<$fh>){
    	chomp;
    	 my ($A,$C,$a1,$a2,$c1,$c2,$B,$D,$b1,$b2,$d1,$d2)=split(/\t/);#split pour avoir les donnees
    	#print $D,"\t",$d1,"\t",$d2,"\n" ;
    	my ($geneA,$asterC,$geneB,$asterD) = map { /(\d+)$/ } (split/\t/)[0,1,6,7] ;#split par rapport aux chiffres pour pouvoir faire la comparaison
     
    	#print "$A: start $gene{$A}->{start}, end $gene{$A}->{end}\n" ;
    	my $SScocco = $hash{$A}*$hash{$B};
    	my $SSaster = $hash{$C}*$hash{$D};#construction des strand
     
    	#partie des tests que je n'arrive pas
    	if ($SScocco>0 && ($SScocco==$SSaster)){
    	if ($hash{$A}==1){
    		my $cocco1= $a2;
    		my $orthcocco1= $c2;
     
    		}
    	else{
    		my $cocco1= $a1;
    		my $orthcocco1= $c1;
    		}
    	if ($hash{$B}==1){
    		my $cocco2= $b1;
    		my $orthococco2 = $d1;
    		}
    	else{
    		my $cocco2= $b2;
    		my $orthococco2 = $d2;
    		 $aa2geno{$B}{$cocco2};
    		}
     
    	}	
    	elsif($SScocco>0 && ($SScocco==$SSaster)){
     
    	if ($hash{$A}==1){
    		my $cocco1= $a2;
    		my $orthcocco1= $c2;
     
    		}
    	else{
    		my $cocco1= $a1;
    		my $orthcocco1= $c1;
    		}
    	if ($hash{$B}==1){
    		my $cocco2= $b1;
    		my $orthococco2 = $d1;
    		}
    	else{
    		my $cocco2= $b2;
    		my $orthococco2 = $d2;
    		 $aa2geno{$B}{$cocco2};
    		}
    	}
     
     
     
     
     
    	#print $aa2geno{$B}{$cocco2};
    print join("\t",$A,$B,abs($aa2geno{$B}{$cocco2}-$aa2geno{$A}{$cocco1}+1),$C,$D,abs($aa2geno{$D}{$orthococco2}-$aa2geno{$C}{$$orthcocco}+1))."\n";
    }
    voci le fichier gene.txt:
    une partie

    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
     
     
    C169v2-03065	Aster-04711	13	127	50	165	C169v2-03066	Aster-04710	3	62	7	66
    C169v2-02882	Aster-02471	10	312	5	307	C169v2-02883	Aster-02472	218	369	5	152			
    C169v2-02880	Aster-02469	1	115	1	115	C169v2-02881	Aster-02470	23	406	14	397
    C169v2-01286	Aster-00794	62	575	80	594	C169v2-01287	Aster-00793	4	213	11	221
    C169v2-05054	Aster-06211	5	144	1	139	C169v2-05055	Aster-06212	32	356	68	384
    C169v2-07517	Aster-03535	1	520	1	496	C169v2-07518	Aster-03536	50	618	3	575
    C169v2-06080	Aster-03170	75	290	3	211	C169v2-06081	Aster-03169	49	610	2	562
    C169v2-06088	Aster-03218	72	186	16	129	C169v2-06089	Aster-03219	1	98	1	98
    C169v2-00366	Aster-01967	13	311	29	319	C169v2-00367	Aster-01968	60	523	10	474
    C169v2-05830	Aster-01552	4	316	25	337	C169v2-05831	Aster-01553	17	176	16	179
    C169v2-02608	Aster-00505	9	275	3	269	C169v2-02609	Aster-00506	1	329	1	329
    C169v2-00604	Aster-01037	23	545	2	465	C169v2-00605	Aster-01038	88	160	1	73
    C169v2-04030	Aster-04405	1	62	1	62	C169v2-04031	Aster-04406	2	87	18	103
    C169v2-00446	Aster-03747	33	194	1	162	C169v2-00447	Aster-03748	610	631	227	248
    C169v2-00994	Aster-02517	81	160	86	159	C169v2-00995	Aster-02518	36	362	22	368
    C169v2-00194	Aster-06365	3	27	266	290	C169v2-00195	Aster-06364	61	455	1	399
    C169v2-05018	Aster-04265	1	227	1	215	C169v2-05019	Aster-04264	12	336	24	352
    C169v2-04634	Aster-06757	1	72	1	72	C169v2-04635	Aster-06756	8	158	11	185
    C169v2-03360	Aster-02046	6	124	1	118	C169v2-03361	Aster-02047	8	196	6	194
    C169v2-08190	Aster-03861	81	504	1	423	C169v2-08191	Aster-03860	76	191	1	116
    C169v2-01108	Aster-01807	1	732	30	760	C169v2-01109	Aster-01808	322	350	251	279
    C169v2-01455	Aster-02239	27	64	239	276	C169v2-01456	Aster-02240	1	208	6	212
    C169v2-01102	Aster-01703	77	357	18	299	C169v2-01103	Aster-01702	1	361	5	364
    C169v2-00276	Aster-02021	2	327	64	371	C169v2-00277	Aster-02022	8	114	22	130
    C169v2-00270	Aster-02011	64	461	4	386	C169v2-00271	Aster-02010	1	1636	6	1649
    C169v2-05222	Aster-02876	1	226	101	321	C169v2-05223	Aster-02875	6	346	3	343
    C169v2-05226	Aster-02857	17	570	1	551	C169v2-05227	Aster-02856	31	400	92	462
    C169v2-03774	Aster-00841	2	214	11	221	C169v2-03775	Aster-00842	16	525	9	511
    C169v2-04170	Aster-06806	85	356	40	316	C169v2-04171	Aster-06805	124	629	7	498
    C169v2-03195	Aster-01238	4	82	79	147	C169v2-03196	Aster-01237	1	301	13	389

  6. #26
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,


    Alors, tu t'en sors?

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour , jai fini presque tout mon code sauf jai un probleme pour le minimun car en perl il nexiste pas de focntion min?

    voci mon code
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
     
     
     #!/usr/local/bin/perl
     
    my $P=1;
    my $N=-1;
     
     
    my %hash = ();# hash des strand
     
     
    open (DESC2, "coco_cds");
    while(<DESC2>){
    	next if /^\#/;
    	chomp;
     
    	 my ($id,$strand,$coord)=(split/\t/)[1,3,-1];
    	 my @cds=();
    	 foreach my $exon (split/,/,$coord){
    		my ($s,$e)=split(/\.\./,$exon);
    		push @cds,($s..$e)
    	}
    	if ($strand eq "-"){
    		$strand=$N;
    		@cds=reverse(@cds);
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;# hash des strand pour coco
    	my $count=0;
    	for (my $i=0;$i<@cds;$i+=3){
    		 $count++;
    		$aa2geno{$id}{$count}=$cds[$i];# hash des genomes pour coco
     
    	}
     
     
     
    }
     
     
    open (DESC3, "aster_cds");
    while(<DESC3>){
    	next if /^\#/;
    	chomp;
     
    	 my ($id,$strand,$coord)=(split/\t/)[1,3,-1];
    	 my @cds=();
    	 foreach my $exon (split/,/,$coord){
    		my ($s,$e)=split(/\.\./,$exon);
    		push @cds,($s..$e)
    	}
    	if ($strand eq "-"){
    		$strand=$N;
    		@cds=reverse(@cds);
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;# hash des strand pour aster
    	my $count=0;
    	for (my $i=0;$i<@cds;$i+=3){
    		 $count++;
    		$aa2geno{$id}{$count}=$cds[$i];# hash des genomes pour aster
     
    	}
     
     
     
    }
     
     
    open my $fh, '<', 'gene.txt' or die;
     
     
    while (<$fh>){
    	chomp;
    	 my ($A,$C,$a1,$a2,$c1,$c2,$B,$D,$b1,$b2,$d1,$d2)=split(/\t/);#split pour avoir les donnees
    	 my $cocco1;
    	 my $cocco2;
    	 my $orth1;
    	 my $orth2;
     
    	#print $D,"\t",$d1,"\t",$d2,"\n" ;
    	my ($geneA,$asterC,$geneB,$asterD) = map { /(\d+)$/ } (split/\t/)[0,1,6,7] ;#split par rapport aux chiffres pour pouvoir faire la comparaison
     
    	#print "$A: start $gene{$A}->{start}, end $gene{$A}->{end}\n" ;
    	my $SScocco = $hash{$A}*$hash{$B};
    	my $SSaster = $hash{$C}*$hash{$D};#construction des strand
     
    	#debut des filtrages 
    	if ($SScocco>0 && ($SScocco==$SSaster)){
    		if ($hash{$A}==1 && $hash{$B}==1 ){
    			 $cocco1=$a2;
    			 $cocco2=$b1;
    			 $orth1=$c2;
    			 $orth2=$d1;
     
     
    		}
    		if  ($hash{$A}==-1 && $hash{$B}==-1 ){
    			 $cocco1=$a1;
    			 $cocco2=$b2;
    			 $orth1=$c1;
    			 $orth2=$d2;
     
    		}
    	}
    	elsif($SScocco<1 && ($SScocco==$SSaster)){
     
    		if ($hash{$A}==-1 && $hash{$B}==1){
    			 $cocco1=$a1;
    			 $cocco2=$b1;
    			 $orth1=$c1;
    			 $orth2=$d1;
    		}
    		if ($hash{$A}==1 && $hash{$B}==-1){
    			 $cocco1=$a2;
    			 $cocco2=$b2;
    			 $orth1=$c2;
    			 $orth2=$d2;
    		}
    	}
     
    	print join("\t",$A,$B,abs($aa2geno{$B}{$cocco2}-$aa2geno{$A}{$cocco1}+1),$C,$D,abs($aa2geno{$D}{$orthococco2}-$aa2geno{$C}{$$orthcocco}+1))."\n";
     
    }
     
     
     
     
     
     
     
    	#print $aa2geno{$B}{$cocco2};
    #print join("\t",$A,$B,abs($aa2geno{$B}{$cocco2}-$aa2geno{$A}{$cocco1}+1),$C,$D,abs($aa2geno{$D}{$orthococco2}-$aa2geno{$C}{$$orthcocco}+1))."\n";
     
     
     
    __END__

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Desole j'ai oublie ce que je voulais faire avec le min:
    En fait dans le deuxieme test je voudrais faire un test en plus en disant que :
    Strand de cocco 1 cest a dire hash{$A} ==Strand min( Aster A et Aster B)
    en sachant que ( Aster A et Aster B) en fait cest $asterC et $asterD, car le minimum cest le chiffre de L'ID.

    Merci

  9. #29
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    coucou,

    pour la fonction min()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    use List::Util qw[min max];
     
    print min(1, 2, 3);
    print max(1, 2, 3);
    si non, tu peux regarder les valeurs une à une et vérifier à chaque fois quelle est la plus petit afin de trouver le minimum

  10. #30
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Ok merci, en esperant que tout mon code soit bon car je dois le montrer a mon maitre de stage, enfin la bioinfo cest tout un art lol.

    Merci en tout cas, je vais ouvrir un topic pour demander pour la bioinfo car la je suis en plein doute pour mon master 2 ( recherche ou pro ) en bioinfo.

  11. #31
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    alors, si j'ai bien compris quand tu dis
    Strand de cocco 1 cest a dire hash{$A} ==Strand min( Aster A et Aster B)
    en sachant que ( Aster A et Aster B) en fait cest $asterC et $asterD, car le minimum cest le chiffre de L'ID.
    Essaie quelque chose de ce genre :
    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
    # Strand de cocco 1 cest a dire hash{$A} ==Strand min( Aster A et Aster B)
    # en sachant que ( Aster A et Aster B) en fait cest $asterC et $asterD, car le minimum cest le chiffre de L'ID.
     
     
    my %hash = ( k => 698, );
     
    my ($asterC, $asterD) = ('ID_756', 'ID_698');
     
     
     
    # recherche du numéro d'identifiant le plus petit
     
    my ($n_D) = $asterD =~ m/(\d+$)/;
    my ($n_C) = $asterC =~ m/(\d+$)/;
     
    my $min;
     
    if ($n_D < $n_C){
    	$min = $n_D;
    }
    else {
    	$min = $n_C;
    }
     
     
    # on vérifie que le num de l'ID est bien égal à 
    if ($hash{'k'} == $min){
    	print "OK\n";
    }

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    En fait dans le hash il n y a que les strand.
    Cest dans la partie deux de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my ($geneA,$asterC,$geneB,$asterD) = map { /(\d+)$/ } (split/\t/)[0,1,6,7] ;
    car la jai les aster sous forme de chiffre:, je recupere ques les parties chiffrées,
    donc je veux prendre le minimum pour regarder le plus petit des aster, mais je suis bloque car je dois quand meme garde le Id car ensuite je dois faire if ($hash{$A}==($min )

    voici mon code
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
     
     #!/usr/local/bin/perl
    use List::Util qw[min max];
     
     
    my $P=1;
    my $N=-1;
     
     
    my %hash = ();# hash des strand
     
     
    open (DESC2, "coco_cds");
    while(<DESC2>){
    	next if /^\#/;
    	chomp;
     
    	 my ($id,$strand,$coord)=(split/\t/)[1,3,-1];
    	 my @cds=();
    	 foreach my $exon (split/,/,$coord){
    		my ($s,$e)=split(/\.\./,$exon);
    		push @cds,($s..$e)
    	}
    	if ($strand eq "-"){
    		$strand=$N;
    		@cds=reverse(@cds);
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;# hash des strand pour coco
    	my $count=0;
    	for (my $i=0;$i<@cds;$i+=3){
    		 $count++;
    		$aa2geno{$id}{$count}=$cds[$i];# hash des genomes pour coco
     
    	}
     
     
     
    }
     
     
    open (DESC3, "aster_cds");
    while(<DESC3>){
    	next if /^\#/;
    	chomp;
     
    	 my ($id,$strand,$coord)=(split/\t/)[1,3,-1];
    	 my @cds=();
    	 foreach my $exon (split/,/,$coord){
    		my ($s,$e)=split(/\.\./,$exon);
    		push @cds,($s..$e)
    	}
    	if ($strand eq "-"){
    		$strand=$N;
    		@cds=reverse(@cds);
    	}
    	else{
    		$strand=$P;
    	}
    	 $hash{$id}=$strand;# hash des strand pour aster
    	my $count=0;
    	for (my $i=0;$i<@cds;$i+=3){
    		 $count++;
    		$aa2geno{$id}{$count}=$cds[$i];# hash des genomes pour aster
     
    	}
     
     
     
    }
     
     
    open my $fh, '<', 'gene.txt' or die;
     
     
    while (<$fh>){
    	chomp;
    	 my ($A,$C,$a1,$a2,$c1,$c2,$B,$D,$b1,$b2,$d1,$d2)=split(/\t/);#split pour avoir les donnees
    	 my $cocco1;
    	 my $cocco2;
    	 my $orth1;
    	 my $orth2;
     
    	#print $D,"\t",$d1,"\t",$d2,"\n" ;
    	my ($geneA,$asterC,$geneB,$asterD) = map { /(\d+)$/ } (split/\t/)[0,1,6,7] ;#split par rapport aux chiffres pour pouvoir faire la comparaison
     
    	#print "$A: start $gene{$A}->{start}, end $gene{$A}->{end}\n" ;
    	my $SScocco = $hash{$A}*$hash{$B};
    	my $SSaster = $hash{$C}*$hash{$D};#construction des strand
     
    	#debut des filtrages 
    	if ($SScocco>0 && ($SScocco==$SSaster)){
    		if ($hash{$A}==1 && $hash{$B}==1 ){
    			 $cocco1=$a2;
    			 $cocco2=$b1;
    			 $orth1=$c2;
    			 $orth2=$d1;
     
     
    		}
    		if  ($hash{$A}==-1 && $hash{$B}==-1 ){
    			 $cocco1=$a1;
    			 $cocco2=$b2;
    			 $orth1=$c1;
    			 $orth2=$d2;
     
    		}
    	}
    	elsif($SScocco<1 && ($SScocco==$SSaster)){
    	 my $min=min($asterC,$asterD);
     
    	 if ($hash{$A}==($min){ #!!!!!!!!!!cest ici que je bloque
    		if ($hash{$A}==-1 && $hash{$B}==1){
    			 $cocco1=$a1;
    			 $cocco2=$b1;
    			 $orth1=$c1;
    			 $orth2=$d1;
    		}
    		if ($hash{$A}==1 && $hash{$B}==-1){
    			 $cocco1=$a2;
    			 $cocco2=$b2;
    			 $orth1=$c2;
    			 $orth2=$d2;
    		}
    	     }
    	}
     
    	#print join("\t",$A,$B,abs($aa2geno{$B}{$cocco2}-$aa2geno{$A}{$cocco1}+1),$C,$D,abs($aa2geno{$D}{$orthococco2}-$aa2geno{$C}{$$orthcocco}+1))."\n";
     
    }

  13. #33
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Si tu as besoin des ID_chiffres et des chiffres seuls, tu peux créer 2 tableaux

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Comment ca?

    Je mets dans deux tableaux distincts.

    merci

  15. #35
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour, jai un souci
    je dois a partir d'un fichier reciprocal , aller chercher les genes qui se suivent:
    par couple:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
     
    C169v2-04488	Aster-02037	
    C169v2-04486	Aster-01953	
    C169v2-04487	Aster-01955	
    C169v2-04480	Aster-01952	
    C169v2-04481	Aster-02044	
    C169v2-03069	Aster-05875	
    C169v2-03068	Aster-01970	
    C169v2-03061	Aster-09631	
    C169v2-03060	Aster-05848	
    C169v2-03067	Aster-05871	
    C169v2-03066	Aster-05821	
    C169v2-03065	Aster-05822	
    C169v2-03064	Aster-02229	
    C169v2-03285	Aster-04817	
    C169v2-03283	Aster-09580	
    C169v2-03282	Aster-04854	
    C169v2-03281	Aster-08098	
    C169v2-03280	Aster-00683	
    C169v2-03289	Aster-04366	
    C169v2-03288	Aster-04853	
    C169v2-07315	Aster-08200	
    C169v2-07314	Aster-02529	
    C169v2-07615	Aster-01715	
    C169v2-02221	Aster-07576	
    C169v2-02882	Aster-09328	
    C169v2-02883	Aster-09329	
    C169v2-02880	Aster-09326	
    C169v2-02881	Aster-09327	
    C169v2-02886	Aster-05256	
    C169v2-01756	Aster-01973	
    C169v2-01755	Aster-09492	
    C169v2-01753	Aster-04906	
    C169v2-01752	Aster-08130	
    C169v2-07312	Aster-09080	
    C169v2-01759	Aster-08117	
    C169v2-01758	Aster-09060	
    C169v2-09503	Aster-04029	
    C169v2-03931	Aster-00704	
    C169v2-03930	Aster-06862	
    C169v2-03933	Aster-04202	
    C169v2-09505	Aster-00556	
    C169v2-03938	Aster-04180	
    C169v2-02082	Aster-01121	
    C169v2-02083	Aster-03253	
    C169v2-02080	Aster-01115	
    C169v2-02081	Aster-01032	
    C169v2-02086	Aster-03186	
    C169v2-02087	Aster-00563	
    C169v2-02085	Aster-02895	
    C169v2-02088	Aster-02889	
    C169v2-02089	Aster-00369	
    C169v2-01573	Aster-05168	
    C169v2-01571	Aster-02523	
    C169v2-01570	Aster-02904	
    C169v2-06257	Aster-09605	
    C169v2-01576	Aster-02511	
    C169v2-01575	Aster-02265	
    C169v2-01574	Aster-01376	
    C169v2-01412	Aster-00987	
    C169v2-01416	Aster-01281	
    C169v2-01417	Aster-06735	
    C169v2-06378	Aster-02992	
    C169v1-03826	Aster-02347	
    C169v1-03827	Aster-02365	
    C169v2-05656	Aster-07458	
    C169v2-05125	Aster-06767	
    C169v1-06473	Aster-06093	
    C169v2-00485	Aster-05380	
    C169v2-00489	Aster-06856	
    C169v2-05123	Aster-04652	
    C169v2-01289	Aster-08842	
    C169v2-01288	Aster-08846	
    C169v2-01286	Aster-08847	
    C169v2-01281	Aster-04936	
    C169v2-01280	Aster-08613	
    C169v2-01283	Aster-06061	
    C169v2-00628	Aster-01420	
    C169v2-00629	Aster-01423	
    C169v2-00158	Aster-02088	
    C169v2-00159	Aster-04703	
    C169v2-00156	Aster-03172	
    C169v2-00157	Aster-03173	
    C169v2-00154	Aster-03767	
    C169v2-00627	Aster-00756	
    C169v2-00150	Aster-03128	
    C169v2-08369	Aster-02026	
    C169v2-08363	Aster-02541	
    C169v2-08362	Aster-07030	
    C169v2-08365	Aster-03910	
    C169v2-08364	Aster-05668	
    C169v2-08366	Aster-09560	
    C169v2-05054	Aster-06213	
    C169v2-05055	Aster-06214	
    C169v2-05056	Aster-06212	
    C169v2-05057	Aster-06211	
    C169v2-05500	Aster-07358	
    C169v2-05053	Aster-09546	
    C169v2-05058	Aster-08524	
    C169v2-05508	Aster-07335	
    C169v1-00599	Aster-03067	
    C169v2-04677	Aster-07022	
    C169v2-04676	Aster-08741	
    C169v2-04675	Aster-08752	
    C169v2-04902	Aster-08211	
    C169v2-04905	Aster-08907	
    C169v2-04672	Aster-08743	
    C169v2-04671	Aster-06891	
    C169v2-09289	Aster-01570	
    C169v2-04679	Aster-07009	
    C169v2-04678	Aster-07023	
    C169v2-07513	Aster-06950	
    C169v2-04013	Aster-04250	
    C169v2-04011	Aster-08505	
    C169v2-04010	Aster-04261	
    C169v2-04017	Aster-04288	
    C169v2-04016	Aster-04290	
    C169v2-04014	Aster-04289	
    C169v2-04018	Aster-07649	
    C169v2-07288	Aster-07921	
    C169v2-07283	Aster-00641	
    C169v2-07282	Aster-04026	
    C169v2-07280	Aster-07923	
    C169v2-07284	Aster-00642	
    C169v2-07510	Aster-00685	
    C169v2-06653	Aster-07377	
    C169v2-06888	Aster-02084	
    C169v2-06889	Aster-03279	
    C169v2-06886	Aster-03282	
    C169v2-06732	Aster-03327	
    C169v2-06885	Aster-03281	
    C169v2-06736	Aster-07131	
    C169v2-03549	Aster-09185	
    C169v2-03544	Aster-02499	
    C169v2-03545	Aster-02352	
    C169v2-03546	Aster-07303	
    C169v2-03547	Aster-02290	
    C169v2-03542	Aster-07215	
    C169v2-03543	Aster-07542	
    C169v2-02418	Aster-06163	
    C169v2-06651	Aster-08474	
    C169v2-07428	Aster-08207	
    C169v2-02411	Aster-00852	
    C169v2-02410	Aster-06629	
    C169v2-07425	Aster-08210	
    C169v2-02412	Aster-00710	
    C169v2-02415	Aster-07304	
    C169v2-02417	Aster-01245	
    C169v2-07420	Aster-04770	
    C169v2-06080	Aster-00115	
    C169v2-06081	Aster-00114	
    C169v2-07712	Aster-01883	
    C169v2-06088	Aster-00184	
    C169v2-06089	Aster-00185	
    C169v1-03349	Aster-04850	
    C169v2-06271	Aster-03554	
    C169v1-03346	Aster-04815	
    C169v1-06867	Aster-02751	
    C169v2-06273	Aster-00299	
    C169v1-07111	Aster-08122	
    C169v2-07717	Aster-08397	
    C169v2-01148	Aster-04996	
    C169v2-01149	Aster-09242	
    C169v2-01142	Aster-09243	
    C169v2-01140	Aster-09244	
    C169v2-01147	Aster-04997	
    C169v2-01144	Aster-05365	
    C169v2-01145	Aster-03632	
    C169v2-07716	Aster-08068	
    C169v2-00361	Aster-03081	
    C169v2-00360	Aster-03085	
    C169v2-00363	Aster-03078	
    C169v2-00362	Aster-03075	
    C169v2-00365	Aster-01092	
    C169v2-00367	Aster-01094	
    C169v2-00366	Aster-01093	
    C169v2-07458	Aster-04764	
    C169v2-07459	Aster-04765	
    C169v2-09366	Aster-03745	
    C169v2-09367	Aster-03744	
    C169v2-04244	Aster-06713	
    C169v2-04245	Aster-06694	
    C169v2-04242	Aster-04496	
    C169v2-04241	Aster-06678	
    C169v2-09369	Aster-03748	
    C169v2-07457	Aster-04868	
    C169v2-07611	Aster-00523	
    C169v2-07613	Aster-06734	
    C169v1-03170	Aster-05846	
    C169v2-07455	Aster-00525	
    C169v2-02884	Aster-05165	
    C169v2-05268	Aster-03960	
    C169v2-05266	Aster-09522	
    C169v2-05265	Aster-06055	
    C169v2-05264	Aster-06056	
    C169v2-05262	Aster-09524	
    C169v2-05261	Aster-04022	
    C169v2-08428	Aster-00569	
    C169v2-08424	Aster-00078	
    C169v2-07439	Aster-06708	
    C169v2-03041	Aster-00834	
    C169v2-03040	Aster-05834	
    C169v2-03043	Aster-09157	
    C169v2-03734	Aster-09359	
    C169v2-03045	Aster-05843	
    C169v2-03732	Aster-00816	
    C169v2-03730	Aster-02334	
    C169v2-03049	Aster-05851	
    C169v2-03738	Aster-02849	
    C169v2-02406	Aster-04060	
    C169v2-04296	Aster-06670	
    C169v2-07435	Aster-06709	
    C169v2-07436	Aster-07477	
    C169v2-05836	Aster-03784	
    C169v2-02400	Aster-01976	
    C169v2-02401	Aster-08794	
    C169v2-05832	Aster-03724	
    C169v2-05341	Aster-04015	
    C169v2-05342	Aster-03188	
    C169v2-09506	Aster-00435	
    C169v1-04203	Aster-06649	
    C169v2-05343	Aster-03961	
    C169v2-09504	Aster-07370	
    C169v2-07633	Aster-02509	
    C169v2-07630	Aster-01837	
    C169v2-07631	Aster-01874	
    C169v2-07634	Aster-01875	
    C169v2-07639	Aster-05763	
    C169v2-03953	Aster-04218	
    C169v2-03951	Aster-01410	
    C169v2-03955	Aster-04199	
    C169v2-03954	Aster-04239	
    C169v2-03959	Aster-04228	
    C169v2-06011	Aster-00116	
    C169v1-03801	Aster-02505	
    C169v2-01775	Aster-01257	
    C169v2-01777	Aster-03220	
    C169v2-01776	Aster-06066	
    C169v2-01770	Aster-01259	
    C169v2-01773	Aster-05489	
    C169v2-02608	Aster-00719	
    C169v2-02609	Aster-00720	
    C169v2-02604	Aster-01533	
    C169v2-02605	Aster-00871	
    C169v2-02606	Aster-00732	
    C169v2-02601	Aster-09123	
    C169v2-02603	Aster-07762	
    C169v2-06279	Aster-03546	
    C169v2-06278	Aster-03590	
    C169v2-01809	Aster-08035	
    C169v2-01808	Aster-04783	
    C169v2-01807	Aster-04457	
    C169v2-01550	Aster-06010	
    C169v2-01553	Aster-06012	
    C169v2-01804	Aster-08469	
    C169v2-06275	Aster-03550	
    C169v2-06274	Aster-03547	
    C169v2-06276	Aster-00681	
    C169v2-06253	Aster-06913	
    C169v2-00608	Aster-00379	
    C169v2-06252	Aster-00272	
    C169v2-00602	Aster-06268	
    C169v2-00603	Aster-09121	
    C169v2-00600	Aster-04364	
    C169v2-00601	Aster-06299	
    C169v2-00607	Aster-04348	
    C169v2-00604	Aster-06241	
    C169v2-00605	Aster-06242	
    C169v2-08387	Aster-01773	
    C169v2-06250	Aster-03132	
    C169v2-08383	Aster-07763	
    C169v2-08382	Aster-03796	
    C169v2-08389	Aster-05241	
    C169v2-05073	Aster-00672	
    C169v2-05070	Aster-05912	
    C169v2-06012	Aster-00117	
    C169v2-05077	Aster-05947	
    C169v2-05074	Aster-06720	
    C169v2-05078	Aster-05946	
    C169v2-06254	Aster-00268	
    C169v2-09275	Aster-07413	
    C169v2-07432	Aster-08195	
    C169v2-09276	Aster-00425	
    C169v2-06258	Aster-00301	
    C169v2-05389	Aster-03830	
    C169v2-05380	Aster-05487	
    C169v2-05383	Aster-03776	
    C169v2-05385	Aster-03932	
    C169v2-05386	Aster-01748	
    C169v2-05387	Aster-04658	
    C169v2-04659	Aster-06489	
    C169v2-04658	Aster-03984	
    C169v2-04655	Aster-05450	
    C169v2-04657	Aster-02205	
    C169v2-04656	Aster-02203	
    C169v2-04650	Aster-01958	
    C169v2-04653	Aster-02029	
    C169v2-04652	Aster-00607	
    C169v2-04382	Aster-00264	
    C169v2-04381	Aster-04444	
    C169v2-04380	Aster-00310	
    C169v2-04387	Aster-03314	
    C169v2-04384	Aster-04965	
    C169v2-04389	Aster-08057	
    C169v2-04388	Aster-08040	
    C169v2-05929	Aster-05740	
    C169v2-05924	Aster-04164	
    C169v2-05925	Aster-04161	
    C169v2-05926	Aster-04163	
    C169v2-04039	Aster-04270	
    C169v2-04031	Aster-04241	
    C169v2-04030	Aster-04240	
    C169v2-04033	Aster-09287	
    C169v2-04032	Aster-01767	
    C169v2-04035	Aster-04272	
    C169v2-03389	Aster-02492	
    C169v2-03386	Aster-08961	
    C169v2-03384	Aster-08004	
    C169v2-03382	Aster-05175	
    C169v2-02389	Aster-01762	
    C169v2-02388	Aster-08991	
    C169v2-02381	Aster-05640	
    C169v2-02382	Aster-04101	
    C169v2-02385	Aster-04269	
    C169v2-02384	Aster-04092	
    C169v2-02387	Aster-01620	
    C169v2-02386	Aster-01572	
    C169v2-06864	Aster-09453	
    C169v2-06865	Aster-03329	
    C169v2-06866	Aster-03351	
    C169v2-06867	Aster-03350	
    C169v2-06712	Aster-08899	
    C169v2-06713	Aster-03406	
    C169v2-06711	Aster-03407	
    C169v2-06868	Aster-02304	
    C169v2-06869	Aster-03348	
    C169v2-06719	Aster-03309	
    C169v2-03568	Aster-07826	
    C169v2-03569	Aster-04380	
    C169v2-03563	Aster-02796	
    C169v2-03560	Aster-02366	
    C169v2-03566	Aster-07198	
    C169v2-03564	Aster-07201	
    C169v2-03565	Aster-07197	
    C169v2-02165	Aster-09554	
    C169v2-02161	Aster-01216	
    C169v2-02160	Aster-00094	
    C169v2-07403	Aster-06710	
    C169v2-02162	Aster-04031	
    C169v2-07409	Aster-04760	
    C169v2-02168	Aster-03917	
    C169v1-03321	Aster-00978	
    C169v2-01122	Aster-04979	
    C169v2-01123	Aster-04985	
    C169v2-01124	Aster-02579	
    C169v2-01125	Aster-05650	
    C169v2-01126	Aster-09028	
    C169v2-01128	Aster-06596	
    C169v2-01129	Aster-04962	
    C169v2-00838	Aster-07983	
    C169v2-00834	Aster-02443	
    C169v2-00836	Aster-07985	
    C169v2-00831	Aster-07974	
    C169v1-00675	Aster-06729	
    C169v2-06334	Aster-02453	
    C169v1-02819	Aster-00861	
    C169v2-00376	Aster-01127	
    C169v2-08449	Aster-04870	
    C169v2-00377	Aster-01131	
    C169v2-08444	Aster-07743	
    C169v2-08445	Aster-00128	
    C169v2-08446	Aster-07794	
    C169v2-08442	Aster-07128	
    C169v2-08443	Aster-00111	
    C169v2-00801	Aster-06149	
    C169v2-01928	Aster-01224	
    C169v2-05245	Aster-01477	
    C169v2-05247	Aster-08826	
    C169v2-05246	Aster-01478	
    C169v2-05241	Aster-01481	
    C169v2-05711	Aster-06350	
    C169v2-05248	Aster-08816	
    C169v2-08038	Aster-02825	
    C169v2-03715	Aster-02805	
    C169v2-03714	Aster-00664	
    C169v2-03717	Aster-09368	
    C169v2-03716	Aster-02867	
    C169v2-03711	Aster-02869	
    C169v2-03710	Aster-02870	
    C169v2-03713	Aster-02866	
    C169v2-03712	Aster-02868	
    C169v2-00624	Aster-06810	
    C169v2-07266	Aster-05955	
    C169v2-00625	Aster-06811	
    C169v2-07261	Aster-07429	
    C169v2-00155	Aster-02928	
    C169v2-07262	Aster-00048	
    C169v2-08866	Aster-01020	
    C169v2-00622	Aster-06807	
    C169v2-08864	Aster-01052	
    C169v2-08865	Aster-01060	
    C169v2-08862	Aster-04861	
    C169v2-08863	Aster-01061	
    C169v2-08860	Aster-09222	
    C169v2-08737	Aster-04798	
    C169v2-01037	Aster-01473	
    C169v2-07658	Aster-01794	
    C169v2-07659	Aster-01013	
    C169v2-01035	Aster-06554	
    C169v2-07517	Aster-06915	
    C169v2-02036	Aster-08962	
    C169v2-04134	Aster-04592	
    C169v2-03979	Aster-04411	
    C169v2-02742	Aster-00632	
    C169v2-09542	Aster-02135	
    C169v2-05507	Aster-07361	
    C169v2-02745	Aster-08965	
    C169v2-03972	Aster-05352	
    C169v2-03974	Aster-04191	
    C169v2-02032	Aster-00983	
    C169v2-05407	Aster-07325	
    C169v2-05505	Aster-07351	
    C169v2-02747	Aster-04185	
    C169v2-05950	Aster-05665	
    C169v2-05501	Aster-07352	
    C169v2-05954	Aster-00122	
    C169v2-05400	Aster-09155	
    C169v2-02598	Aster-04134	
    C169v2-02595	Aster-06623	
    C169v2-02596	Aster-02914	
    C169v2-01719	Aster-06733	
    C169v2-01718	Aster-08152	
    C169v2-01711	Aster-06037	
    C169v2-01715	Aster-08205	
    C169v2-01714	Aster-02560	
    C169v2-00444	Aster-05312	
    C169v2-00445	Aster-05313	
    C169v2-00446	Aster-06835	
    C169v2-00447	Aster-06836	
    C169v2-00442	Aster-04989	
    C169v2-00992	Aster-07501	
    C169v2-00990	Aster-05971	
    C169v2-00448	Aster-02602	
    C169v2-00449	Aster-06833	
    C169v2-00994	Aster-07502	
    C169v2-00995	Aster-07503	
    C169v2-02628	Aster-00557	
    C169v2-02629	Aster-04122	
    C169v2-08632	Aster-06661	
    C169v2-08630	Aster-06690	
    C169v2-02622	Aster-00784	
    C169v2-02623	Aster-04160	
    C169v2-02620	Aster-09071	
    C169v2-02626	Aster-04109	
    C169v2-02627	Aster-00722	
    C169v2-02625	Aster-04158	
    C169v2-01825	Aster-06608	
    C169v2-01824	Aster-05969	
    C169v2-01827	Aster-01126	
    C169v2-01826	Aster-02957	
    C169v2-01821	Aster-00236	
    C169v2-01820	Aster-05142	
    C169v2-01823	Aster-08305	
    C169v2-01829	Aster-01187	
    C169v2-01828	Aster-09466	
    C169v2-06299	Aster-03604	
    C169v2-06298	Aster-03592	
    C169v2-00661	Aster-06849	
    C169v2-00190	Aster-03053	
    C169v2-00191	Aster-09284	
    C169v2-00665	Aster-06841	
    C169v2-00194	Aster-03056	
    C169v2-00195	Aster-03055	
    C169v2-00199	Aster-03049	
    C169v2-05018	Aster-04700	
    C169v2-05019	Aster-04699	
    C169v2-05011	Aster-04706	
    C169v2-05013	Aster-02228	
    C169v2-05014	Aster-04712	
    C169v2-05015	Aster-04704	
    C169v1-03688	Aster-02390	
    C169v2-09358	Aster-08385	
    C169v2-09351	Aster-03711	
    C169v2-04639	Aster-01959	
    C169v2-04633	Aster-05641	
    C169v2-04632	Aster-02013	
    C169v2-04631	Aster-02051	
    C169v2-04630	Aster-02012	
    C169v2-04636	Aster-01962	
    C169v2-04635	Aster-01993	
    C169v2-04634	Aster-01994	
    C169v2-05908	Aster-05231	
    C169v2-05909	Aster-05228	
    C169v2-05901	Aster-02566	
    C169v2-05907	Aster-05229	
    C169v2-05904	Aster-05783	
    C169v2-05905	Aster-07703	
    C169v2-06909	Aster-09149	
    C169v2-06908	Aster-00619	
    C169v2-06907	Aster-01249	
    C169v2-06905	Aster-01251	
    C169v2-06904	Aster-03368	
    C169v2-06903	Aster-07890	
    C169v2-06901	Aster-03371	
    C169v2-03364	Aster-01400	
    C169v2-03366	Aster-02494	
    C169v2-03367	Aster-02308	
    C169v2-03360	Aster-01204	
    C169v2-03361	Aster-01207	
    C169v2-08192	Aster-06993	
    C169v2-08193	Aster-05490	
    C169v2-08190	Aster-09000	
    C169v2-08191	Aster-08999	
    C169v2-03368	Aster-02314	
    C169v2-08194	Aster-06597	
    C169v2-08195	Aster-05493	
    C169v2-02365	Aster-04053	
    C169v2-02363	Aster-04072	
    C169v2-02361	Aster-04152	
    C169v2-02360	Aster-04440	
    C169v2-02369	Aster-04103	
    C169v2-06843	Aster-03439	
    C169v2-06841	Aster-02077	
    C169v2-06846	Aster-09499	
    C169v2-06844	Aster-03435	
    C169v2-06845	Aster-09468	
    C169v2-06848	Aster-08132	
    C169v2-06849	Aster-09502	
    C169v2-03500	Aster-02524	
    C169v2-03503	Aster-08963	
    C169v2-03504	Aster-02326	
    C169v2-03505	Aster-02321	
    C169v2-03506	Aster-07385	
    C169v2-03507	Aster-02325	
    C169v2-03508	Aster-07118	
    C169v2-08998	Aster-01577	
    C169v2-08999	Aster-01637	
    C169v2-02102	Aster-06427	
    C169v2-02101	Aster-07076	
    C169v2-07460	Aster-04653	
    C169v2-07467	Aster-00497	
    C169v2-07469	Aster-01365	
    C169v2-07468	Aster-04751	
    C169v2-06599	Aster-08484	
    C169v2-05652	Aster-06414	
    C169v2-06593	Aster-09292	
    C169v2-06596	Aster-01062	
    C169v2-08170	Aster-05496	
    C169v2-09487	Aster-09690	
    C169v2-09485	Aster-06744	
    C169v2-06338	Aster-00258	
    C169v2-01108	Aster-04976	
    C169v2-06335	Aster-03033	
    C169v2-06337	Aster-00163	
    C169v2-06330	Aster-07782	
    C169v2-06331	Aster-00203	
    C169v2-06332	Aster-07405	
    C169v2-01101	Aster-07102	
    C169v2-02316	Aster-04076	
    C169v2-00859	Aster-02150	
    C169v2-02317	Aster-04086	
    C169v2-00857	Aster-02236	
    C169v2-02314	Aster-04074	
    C169v2-00855	Aster-07986	
    C169v2-02312	Aster-01732	
    C169v2-02313	Aster-04869	
    C169v2-07880	Aster-04223	
    C169v2-07883	Aster-06468	
    C169v2-02310	Aster-04058	
    C169v2-07887	Aster-09043	
    C169v2-07886	Aster-06442	
    C169v2-07889	Aster-09041	
    C169v2-07888	Aster-07822
    par exemple C169v2-03066 Aster-05821
    C169v2-03065 Aster-05822

    ceci est bon

    voci mon code:
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    #!/usr/local/bin/perl
     
     
    my %hash = ();
    my %hash2 = ();
     
     
     
    open my $fh, '<', 'RBH.txt' or die;
     
    # liste des positions du gène C
    my @C_array;
     
    # liste des positions du gène Aster
    my @Aster_array;
     
    while ( my $l = <$fh>){
     
     
    	if ($l =~ m/C169v2-(\d+)\tAster-(\d+)/){
    		push (@C_array, $1);
    		push (@Aster_array, $2);
     
     
     
    	}
    }
     
     
     
     
    for (my $i =0; $i<$#C_array; $i++){
     
    	# on prend les gènes C deux par deux (j'ai gardé ta nomination A et B))
     
    	my $A = $C_array[$i];
     
    	my $B = $C_array[$i+1];
     
    	my $C = $Aster_array[$i];
     
    	my $D = $Aster_array[$i+1];
     
    while ( my $l = <$fh>){
    	chomp;
    	 my ($cv,$ast)=split(/\t/,$l);	
    	# on vérifie que la différence
    	# soit au plus de 1
     }
    	if ((abs ($A - $B) == 1) &&(abs($C-$D)==1)){
     		if ($A>$B){
    			print "C169v2-".$B."\t"."Aster-".$D."\t". "C169v2-".$A."\t"."Aster-".$C."\n";
     
     
    		}
    		else{
    			print "C169v2-".$A."\t"."Aster-".$C."\t". "C169v2-".$B."\t"."Aster-".$D."\n";
     
    		}
        }
     
    }
    Je voulais mettre d'entree en piece jointe mais ca ne marche pas, le souci cest que je pense que mon code est bon mais il y a quelqun qui a touver plus que moi en sortie donc je pense qu'il ya une erreur??

    Merci

  16. #36
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par shadow19c Voir le message

    Je voulais mettre d'entree en piece jointe mais ca ne marche pas, le souci cest que je pense que mon code est bon mais il y a quelqun qui a touver plus que moi en sortie donc je pense qu'il ya une erreur??

    Merci

    Que veux-tu dire par 'une pièce jointe' ? QQun a trouvé plus que toi...d'association C169v-Aster?

  17. #37
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Points : 58
    Points
    58
    Par défaut
    Bonjour,
    oui il trouve plus de couples, en fait je pense qu'il faut mettre dans un hash ensuite verfier un par un si les couples CV-*** ASter-*** CV-*** Aster-*** se suivent.
    Car de cette maniere (ancienne version), on se base directement de la mise en page du fichier.
    Car je m'apercois, qu'il oubli des couples car il sont eloignes dans le fichier.
    exemple:
    si j'ai CV-125 Aster-002
    CV-124 Aster-001
    CV-148Aster-412
    CV-123 Aster-000

    Il oubli le CV-123 Aster-000
    CV-124 Aster-001





    merci

    PS: J'ai mis une partie du fichier car il est trop lourd.

Discussions similaires

  1. [bwlabel] Calculer taille de labels
    Par airballman dans le forum Images
    Réponses: 2
    Dernier message: 31/03/2010, 15h27
  2. Calculer taille fichier depuis un worfklow
    Par Jc75011 dans le forum Informatica
    Réponses: 2
    Dernier message: 02/11/2009, 10h34
  3. petit script, calculer taille fichier
    Par Kuchiki Byakuya dans le forum Linux
    Réponses: 14
    Dernier message: 15/10/2009, 18h55
  4. Calculer taille d'un string
    Par cotrikkle dans le forum C#
    Réponses: 2
    Dernier message: 31/05/2007, 14h44
  5. calculer taille d'ecran portable
    Par samspitz dans le forum ASP
    Réponses: 4
    Dernier message: 13/10/2006, 17h19

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