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];