annotate ACF/lib/IonFiltration.pm @ 34:db4ec690261b draft default tip

Uploaded
author melpetera
date Wed, 16 Oct 2019 05:28:56 -0400
parents 79cb9da39875
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
1 #!usr/bin/perl
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
2 package IonFiltration;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
3
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
4 ### Perl modules
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
5 use strict;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
6 use warnings;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
7
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
8
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
9
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
10
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
11
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
12
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
13 ########################################################################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
14 ### Création of a hash containing all adduits and fragments possible ###
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
15 ########################################################################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
16
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
17
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
18 sub MassCollecting{
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
19
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
20 my $mass_file = $_[0];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
21 my %hmass;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
22
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
23 open (F1, $mass_file);
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
24
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
25 while(my $line = <F1>){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
26 chomp $line;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
27 my @tline = split(/[\t;]/, $line);
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
28 if(defined($hmass{$tline[2]})){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
29 print "The mass difference already exists : $tline[2] !\n";
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
30 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
31 $hmass{$tline[1]}{$tline[2]}=$tline[0];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
32 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
33
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
34 close F1;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
35 return %hmass;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
36
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
37 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
38
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
39
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
40
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
41
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
42
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
43
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
44
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
45 ########################################################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
46 ### Creation of a sif table + correlation filtration ###
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
47 ########################################################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
48
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
49
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
50 sub sifTableCreation{
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
51
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
52 my $file = $_[0];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
53 my $output_sif = $_[1];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
54 # my $opt = $_[2];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
55 # my $rt_threshold = $_[3];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
56 # my $mass_threshold = $_[4];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
57 my $correl_threshold = $_[5];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
58 # my $dataMatrix = $_[6];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
59 # my $output_tabular = $_[7];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
60 my $combined_DMVM = $_[8];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
61 # my $repres_opt = $_[9];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
62 # my $intensity_threshold = $_[10];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
63 # my $intensity_pourc = $_[11];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
64 # my $refhmass = $_[12];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
65
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
66
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
67
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
68
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
69 my %hheader_file;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
70 my %hduplicate;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
71
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
72 my %hcorrelgroup;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
73 my $groupct=1;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
74
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
75
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
76 my $linenb3=0;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
77 my %hheader_line;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
78 my %hrtmz;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
79
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
80 open (F5, $combined_DMVM);
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
81 while(my $line = <F5>){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
82 chomp $line;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
83 my @tline = split(/\t/, $line);
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
84
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
85 if($linenb3 == 0){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
86 for(my $i=0; $i<scalar(@tline);$i++){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
87 my $a = $tline[$i];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
88 $hheader_line{$a}=$i;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
89 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
90 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
91 else{
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
92 if(defined($hheader_line{mzmed})){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
93 my $b = $tline[$hheader_line{mzmed}];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
94 $hrtmz{$tline[0]}{mz}=$b;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
95 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
96 else{
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
97 my $b = $tline[$hheader_line{mz}];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
98 $hrtmz{$tline[0]}{mz}=$b;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
99 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
100 if(defined($hheader_line{rtmed})){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
101 my $d = $tline[$hheader_line{rtmed}];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
102 $hrtmz{$tline[0]}{rt}=$d;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
103 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
104 else{
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
105 my $d = $tline[$hheader_line{rt}];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
106 $hrtmz{$tline[0]}{rt}=$d;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
107 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
108 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
109
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
110 $linenb3 ++;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
111 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
112 close F5;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
113
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
114
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
115 my $linenb=0;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
116
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
117 open (F1, $file) or die "Impossible to open $file\n";
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
118 open(F2, ">$output_sif") or die "Impossible to open $output_sif\n";
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
119
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
120
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
121 while(my $line = <F1>){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
122 chomp $line;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
123 my @tline = split(/\t/, $line);
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
124
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
125 ###############################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
126 ### Création of a sif table ###
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
127 ###############################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
128
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
129 if($linenb == 0){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
130 for(my $i=0; $i<scalar(@tline);$i++){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
131 my $a = $tline[$i];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
132 $hheader_file{$i}=$a;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
133 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
134 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
135 else{
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
136 for(my $i=1; $i<scalar(@tline);$i++){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
137 my $a=$tline[0];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
138 my $b=$hheader_file{$i};
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
139 my $coef=$tline[$i];
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
140
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
141 if($a eq $b){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
142 # print "This is a correlation between A ($a) and A ($b) !\n"
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
143 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
144 else{
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
145
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
146 #########################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
147 ### Remove duplicates ###
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
148 #########################
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
149
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
150 my $y = $a."/".$b;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
151 my $z = $b."/".$a;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
152
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
153 if((!(defined($hduplicate{$y}))) && (!(defined($hduplicate{$z})))){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
154
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
155 $hduplicate{$y}=1;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
156 # my $abcoef=abs($coef); # Only when you want to consider negative correlations
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
157
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
158 # if($abcoef > $correl_threshold){ # Only when you want to consider negative correlations
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
159 if($coef > $correl_threshold){
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
160
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
161 print F2 "$a\t$coef\t$b\n";
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
162
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
163 my $count=0;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
164
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
165 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
166 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
167 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
168 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
169 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
170 $linenb ++;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
171 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
172 close F1;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
173 close F2;
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
174 return ($output_sif, %hrtmz);
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
175 }
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
176
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
177
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
178
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
179
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
180
79cb9da39875 Uploaded
melpetera
parents:
diff changeset
181 1;