Mercurial > repos > dcouvin > catchsequenceinfo
comparison catchsequence/catchsequence.pl @ 0:37d48392bf22 draft default tip
Uploaded
author | dcouvin |
---|---|
date | Tue, 21 Sep 2021 16:44:26 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:37d48392bf22 |
---|---|
1 #!/usr/bin/perl | |
2 | |
3 use strict; | |
4 use warnings; | |
5 | |
6 #INPUTS_ | |
7 # my $Result_RES = $ARGV[0]; | |
8 my $sequences = $ARGV[0]; | |
9 | |
10 #OUTPUT_ | |
11 #my $output = $ARGV[1]; | |
12 | |
13 my @list_seq = split(/,/,$sequences); | |
14 #my @list_seq = @ARGV; | |
15 | |
16 my $res = 90.00; | |
17 my $plas = 90.00; | |
18 my $vf = 80.00; | |
19 | |
20 my $percentage = "ident"; # other possibility is "cov" | |
21 my $columPerc = 10; # other possibility is 9 | |
22 | |
23 | |
24 | |
25 #Other parameters | |
26 for (my $i = 0; $i <= $#ARGV; $i++) { | |
27 if ($ARGV[$i]=~/-percent/i or $ARGV[$i]=~/-perc/i) { | |
28 $percentage = $ARGV[$i+1]; | |
29 } | |
30 elsif ($ARGV[$i]=~/-res/i) { | |
31 $res = $ARGV[$i+1]; | |
32 } | |
33 elsif ($ARGV[$i]=~/-plas/i) { | |
34 $plas = $ARGV[$i+1]; | |
35 } | |
36 elsif ($ARGV[$i]=~/-vf/i) { | |
37 $vf = $ARGV[$i+1]; | |
38 } | |
39 } | |
40 | |
41 ########################################################################################## | |
42 | |
43 if ($percentage eq "ident"){ | |
44 $columPerc = 10; | |
45 } | |
46 elsif ($percentage eq "cov"){ | |
47 $columPerc = 9; | |
48 } | |
49 | |
50 | |
51 #open (OUT, ">$output"); | |
52 print "Sequence\tResistance genes\tPlasmids\tVirulence genes\tST (MLST)\tAlleles (MLST)\n"; | |
53 | |
54 foreach my $sequence (@list_seq) { | |
55 my $Result_RES = `abricate --db resfinder $sequence > $sequence.RES.txt`; #appel système de la commande abricate avec la BDD ResFinder | |
56 my $Result_PLA = `abricate --db plasmidfinder $sequence > $sequence.PLA.txt`; #appel système de la commande abricate avec la BDD PlasmidFinder | |
57 my $Result_VIR = `abricate --db vfdb $sequence > $sequence.VIR.txt`; | |
58 my $Result_MLST = `mlst $sequence > $sequence.MLST.txt`; | |
59 | |
60 open (RES, "$sequence.RES.txt"); | |
61 print "$sequence\t"; | |
62 | |
63 while (<RES>) { | |
64 | |
65 chomp(); | |
66 if ($_ !~ m/^#/) { | |
67 my @infos = split(/\t/,$_); | |
68 my $geneRes = $infos[5]; # resistance gene name (ancienne valeur $infos[4]) | |
69 my $identity = $infos[$columPerc]; # identity % (ancienne valeur $infos[9]) | |
70 | |
71 if ($identity > $res) { | |
72 print "$geneRes;"; | |
73 } | |
74 } | |
75 | |
76 } | |
77 | |
78 close (RES); | |
79 print "\t"; | |
80 | |
81 | |
82 open (PLA, "$sequence.PLA.txt") or die "could not open $!"; | |
83 | |
84 while (<PLA>) { | |
85 chomp(); | |
86 if ($_ !~ m/^#/) { | |
87 my @infos = split(/\t/,$_); | |
88 my $plasmid = $infos[5]; # plasmid name | |
89 my $identity = $infos[$columPerc]; # identity % | |
90 | |
91 if ($identity > $plas) { | |
92 print"$plasmid;"; | |
93 } | |
94 } | |
95 | |
96 } | |
97 close (PLA); | |
98 print "\t"; | |
99 | |
100 open (VIR, "$sequence.VIR.txt") or die "could not open $!"; | |
101 | |
102 while (<VIR>) { | |
103 chomp(); | |
104 | |
105 if ($_ !~ m/^#/) { | |
106 my @infos = split(/\t/,$_); | |
107 my $geneVir = $infos[5]; # virulence gene name | |
108 my $identity = $infos[$columPerc]; # identity % | |
109 | |
110 if ($identity > $vf) { | |
111 print "$geneVir;"; | |
112 } | |
113 } | |
114 | |
115 } | |
116 close (VIR); | |
117 print "\t"; | |
118 | |
119 | |
120 open (MLST, "$sequence.MLST.txt") or die "could not open $!"; | |
121 | |
122 while (<MLST>) { | |
123 chomp(); | |
124 | |
125 my @infos = split(/\t/,$_); | |
126 my $numMLST = $infos[2]; | |
127 print "$numMLST\t"; | |
128 | |
129 for (my $i=3; $i <= $#infos; $i++){ | |
130 print "$infos[$i];"; | |
131 } | |
132 | |
133 } | |
134 close (MLST); | |
135 print "\n"; | |
136 } | |
137 | |
138 #close (OUT); | |
139 | |
140 unlink glob ('*.VIR.txt'); | |
141 unlink glob ('*.PLA.txt'); | |
142 unlink glob ('*.RES.txt'); | |
143 unlink glob ('*.MLST.txt'); | |
144 |