Mercurial > repos > mgarnier > pangenome_cog_analysis
comparison pangenomeCogAnalysis_V1.pl @ 6:cf9da93e4145 draft
Uploaded
author | mgarnier |
---|---|
date | Fri, 02 Jul 2021 19:25:25 +0000 |
parents | 3d565ddc7b95 |
children | 9132bdc6ce8b |
comparison
equal
deleted
inserted
replaced
5:3d565ddc7b95 | 6:cf9da93e4145 |
---|---|
2 | 2 |
3 use strict; | 3 use strict; |
4 use warnings; | 4 use warnings; |
5 | 5 |
6 my $num_args = $#ARGV + 1; | 6 my $num_args = $#ARGV + 1; |
7 if ($num_args != 10) { | 7 if ($num_args != 9) { |
8 print "Il n'y a pas le bon nombre d'arguments !\n"; | 8 print "Il n'y a pas le bon nombre d'arguments !\n"; |
9 exit; | 9 exit; |
10 } | 10 } |
11 | 11 |
12 # INPUT_ | 12 # INPUT_ |
13 my $matrix_file = $ARGV[0]; # fichier tabulé : une liste d'orthogroupes qui se retrouvent ou non dans les différentes souches | 13 my $matrix_file = $ARGV[0]; # fichier tabulé : une liste d'orthogroupes qui se retrouvent ou non dans les différentes souches |
14 my $species_file = $ARGV[1]; # association de chaque souche à son espèce (fichier tabulé également) | 14 my $species_file = $ARGV[1]; # association de chaque souche à son espèce (fichier tabulé également) |
15 my $annotation = $ARGV[2]; # collection de fichiers tabulés qui contiennent pour chaque gène la ou les catégories de COG associée(s) | 15 my $annotation = $ARGV[2]; # collection de fichiers tabulés qui contiennent pour chaque gène la ou les catégories de COG associée(s) |
16 my $order = $ARGV[3]; # cette entrée correspond simplement au nom des souches qui sont rentrées dans le même ordre que les fichiers d'annotation : cela permet de savoir pour un fichier COG à quelle souche et donc plus tard à quelle espèce il correspond | 16 my $order = $ARGV[3]; # cette entrée correspond simplement au nom des souches qui sont rentrées dans le même ordre que les fichiers d'annotation : cela permet de savoir pour un fichier COG à quelle souche et donc plus tard à quelle espèce il correspond |
17 my $annotation_GFF = $ARGV[4]; # fichiers avec les GFF | 17 my $annotation_GFF = $ARGV[4]; # fichiers avec les GFF |
18 my $order_GFF = $ARGV[5]; | 18 # my $order_GFF = $ARGV[5]; |
19 | 19 |
20 # OUTPUT_ | 20 # OUTPUT_ |
21 my $output = $ARGV[6]; # liste des espèces avec leurs orthogroupes (présence-absence) | 21 my $output = $ARGV[5]; # liste des espèces avec leurs orthogroupes (présence-absence) |
22 my $output2 = $ARGV[7]; # fichier des moyennes | 22 my $output2 = $ARGV[6]; # fichier des moyennes |
23 my $output3 = $ARGV[8]; # fichier de la liste des valeurs pour chaque catégorie de COG et pour chaque espèce | 23 my $output3 = $ARGV[7]; # fichier de la liste des valeurs pour chaque catégorie de COG et pour chaque espèce |
24 my $output4 = $ARGV[9]; # fichier avec les catégories de COG pour core-génome / génome accessoire / gènes spé | 24 my $output4 = $ARGV[8]; # fichier avec les catégories de COG pour core-génome / génome accessoire / gènes spé |
25 | 25 |
26 | 26 |
27 # print "ok\n"; | 27 # print "ok\n"; |
28 # exit; | 28 # exit; |
29 | 29 |
470 #////////////////////////////////////////////////////////////////////////////////////////////////// | 470 #////////////////////////////////////////////////////////////////////////////////////////////////// |
471 | 471 |
472 ############################################### GFF ############################################### | 472 ############################################### GFF ############################################### |
473 | 473 |
474 | 474 |
475 my @order_gff = split(',', $order_GFF); # liste de l'ordre des souches | 475 # my @order_gff = split(',', $order_GFF); # liste de l'ordre des souches |
476 my ($g,$o); | 476 my ($g,$o); |
477 | 477 |
478 my %hgff_order = (); #HASH -> key: un fichier GFF ; val: un nom de souche (ces 2 données sont entrées en input = $annotation_GFF et $order_GFF) | 478 my %hgff_order = (); #HASH -> key: un fichier GFF ; val: un nom de souche (ces 2 données sont entrées en input = $annotation_GFF et $order_GFF) |
479 my %Gene_position = (); | 479 my %Gene_position = (); |
480 my %Cat_genes = (); | 480 my %Cat_genes = (); |
481 | 481 |
482 my %hash_of_genes = (); | 482 my %hash_of_genes = (); |
483 | 483 |
484 # ++++++++++++ parcours de 2 listes en même temps ++++++++++++ # | 484 |
485 foreach $g (@list_gff){ | 485 foreach $g (@list_gff){ |
486 # print "$g\n"; | 486 # print "$g\n"; |
487 $hgff_order{$g} = $order_gff[$o++]; # on fait correspondre pour chaque fichier GFF, un nom de souche | 487 # $hgff_order{$g} = $order_gff[$o++]; # on fait correspondre pour chaque fichier GFF, un nom de souche |
488 open (G, $g); | 488 open (G, $g); |
489 while (<G>) { | 489 while (<G>) { |
490 my @table_gff = split (/\t/, $_); | 490 my @table_gff = split (/\t/, $_); |
491 my $chr = $table_gff[0]; | 491 my $chr = $table_gff[0]; |
492 my $start = $table_gff[3]; | 492 my $start = $table_gff[3]; |