annotate src/mz_8_peakpicking_dw.sci @ 2:7e757edfa3b0 draft default tip

Deleted selected files
author jcb-mpl
date Thu, 12 May 2022 12:15:57 +0000
parents c0a2e5e78725
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
1 function [peaks_list,peaks_detail,no_eic]=mz_8_peakpicking_dw(x_tr_mz3_trouves,list_mz,plage_tr,plage_min_tr,dw_max,signal_min,option_plot)
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
2
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
3 // x_tr_mz3_trouves: un div (n x p)
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
4 // list_mz: les n° des m/z à traiter; valeurs entre 1 et p
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
5 // plage tr: une valeur; par defaut: +/- 0,2 minutes
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
6 // plage_min_tr: une valeur; par defaut: 0,05
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
7 // dw_max: une valeur entre 0 et 2; par défaut: 0.5
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
8 // signal_min: une valeur; par défaut: 100000
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
9 // option_plot: 1=figures; 0= non (par défaut)
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
10
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
11 if argn(2)<7 then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
12 option_plot=0;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
13 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
14
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
15 if argn(2)<6 then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
16 signal_min=100000;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
17 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
18
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
19 if argn(2)<5 then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
20 dw_max=0.5;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
21 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
22
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
23 if argn(2)<4 then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
24 plage_min_tr=0.05;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
25 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
26
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
27 if argn(2)<3 then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
28 plage_tr=0.2;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
29 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
30
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
31
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
32 no_eic=[];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
33
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
34 n_mz=size(x_tr_mz3_trouves.d,2);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
35 list_mz_possible=[1:n_mz]';
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
36 list_mz=list_mz_possible(list_mz); // pour accepter le $
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
37
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
38 n=max(size(list_mz));
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
39
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
40 peaks_list.d=[];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
41 peaks_list.i=[];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
42 peaks_list.v=['TRmin';'TRmax';'TRmedian';'m/z';'signal'];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
43
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
44 peaks_detail=list();
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
45 index_peaks_detail=1;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
46
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
47 // transformation de plage_tr (des valeurs de temps) en n_tr (un nbre de TR)
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
48 ntemp=100; // pour ne pas commencer au début
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
49 n_tr=0;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
50 val_tr=0;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
51
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
52 while val_tr<=plage_tr;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
53 n_tr=n_tr+1;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
54 val_tr=strtod(x_tr_mz3_trouves.i(ntemp+n_tr))-strtod(x_tr_mz3_trouves.i(ntemp));
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
55 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
56
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
57 nbr_total_tr=size(x_tr_mz3_trouves.i,1);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
58
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
59 for i=1:n;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
60 xi=x_tr_mz3_trouves(:,list_mz(i));
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
61
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
62 signal_max=max(xi.d) // 1 seule colonne
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
63
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
64 index_selected=0*strtod((xi.i)); // un vecteur de 0 de même taille que xi.i
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
65
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
66 while signal_max > signal_min;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
67 // identification de la plage du pic
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
68 index=find(xi.d==signal_max & index_selected==0);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
69 index_min=max(1,index-n_tr);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
70 index_max=min(nbr_total_tr,index+n_tr);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
71 //ajustement du min pour ne pas retomber sur une zone deja selectionnee
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
72 index_selected_min=index_selected(index_min);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
73 while index_selected_min>0;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
74 index_min=index_min+1;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
75 index_selected_min=index_selected(index_min);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
76 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
77 //ajustement du max pour ne pas retomber sur une zone deja selectionnee
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
78 index_selected_max=index_selected(index_max);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
79 while index_selected_max>0;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
80 index_max=index_max-1;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
81 index_selected_max=index_selected(index_max);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
82 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
83
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
84 // options de tri: DW et plage_min_tr
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
85 xi_sel=xi(index_min:index_max,:);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
86
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
87 if (strtod(xi.i(index_max))-strtod(xi.i(index_min)))> plage_min_tr then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
88
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
89 dw=mz_6bis_durbin_watson(detrending(xi_sel')'); // car si ldb élevée et régulière: DW= faible
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
90
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
91 if dw<dw_max then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
92
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
93 // calcul du signal de la plage
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
94 vect_tr=[index_min:index_max]
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
95 signal=sum(xi.d(vect_tr));
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
96
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
97 // enregistrement du resultat
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
98 if peaks_list.d==[] then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
99 peaks_list.d=[strtod(xi.i(index_min)) strtod(xi.i(index_max)) strtod(xi.i(index)) strtod(xi.v) signal];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
100 peaks_list.i=i;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
101 else
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
102 peaks_list.d=[peaks_list.d; [strtod(xi.i(index_min)) strtod(xi.i(index_max)) strtod(xi.i(index)) strtod(xi.v) signal]];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
103 peaks_list.i=[peaks_list.i;i];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
104 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
105
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
106 peaks_detail(index_peaks_detail)=xi([index_min:index_max],:);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
107 index_peaks_detail=index_peaks_detail+1;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
108
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
109 // edition de figure (selon option)
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
110 if option_plot==1 then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
111 figure;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
112 curves(xi([index_min:index_max],:));
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
113 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
114
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
115 // rajout des n° d'EICs de x_tr_mz3_trouves ou x_tr_mz4
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
116 if no_eic==[] then
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
117 no_eic=i;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
118 else
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
119 no_eic=[no_eic;i];
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
120 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
121 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
122
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
123 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
124 // neutralisation de la plage precedente
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
125 index_selected(index_min:index_max)=1; // on supprime
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
126 xi.d(index_min:index_max)=0;
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
127
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
128 signal_max=max(xi.d);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
129 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
130
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
131 end
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
132
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
133
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
134 // préparation des sorties
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
135 peaks_list=div(peaks_list);
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
136
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
137
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
138
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
139
c0a2e5e78725 Uploaded
jcb-mpl
parents:
diff changeset
140 endfunction