annotate src/mz_6_rescan_mz2.sci @ 0:245b2c2b3d75 draft

Uploaded
author jcb-mpl
date Tue, 27 Apr 2021 14:13:47 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
1 function x_tr_mz2=mz_6_rescan_mz2(x_tr_mz,thresh)
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
2
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
3 // 12juin19: cette fonction marche très bien!!
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
4 // mais on essaie de l'améliorer avec mz_6_rescan3
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
5
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
6 // cette fonction réalise des boucles sur la matrice EIC, en regroupant les EIC qui se rapprochent
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
7 // stop quand sur 3 boucles successives on n'a pas regroupé plus de 5 EICs chaque fois
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
8 // stop aussi quand on ne regroupe aucune EIC dans une boucle
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
9
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
10 // thresh: des valeurs testées, pour chercher la valeur optimale
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
11 // ex: thresh=0.001
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
12
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
13 // normalement, cette fonction tourne rapidement, ~5 minutes 30jan20
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
14
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
15 if argn(2)<3 then
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
16 coeff_thresh=1;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
17 end;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
18
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
19 flag=0;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
20
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
21 // verif qu'on a bien un div
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
22 if size(x_tr_mz.d,1)~=size(x_tr_mz.i,1) | size(x_tr_mz.d,2)~=size(x_tr_mz.v,1) then
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
23 error('not a div, mz_6_rescan_mz2')
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
24 end;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
25
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
26
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
27 n_tr=size(x_tr_mz.i,1);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
28
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
29 // verif. que les m/z de x_tr_mz sont ordonnes
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
30 x_tr_mz_v=strtod(x_tr_mz.v);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
31 diff_i=x_tr_mz_v(2:$)-x_tr_mz_v(1:$-1); // verif. que les m/z sont en ordre croissant
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
32 index=find(diff_i<0);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
33 if max(size(index))>0 then // pas ordonné -> il faut le faire
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
34 [nul,tri0]=gsort(x_tr_mz_v,'g','i');
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
35 x_tr_mz=x_tr_mz(:,tri0);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
36 x_tr_mz_v=x_tr_mz_v(tri0);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
37 end;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
38
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
39
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
40 while flag<2; // enleve inferieur 31jan20
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
41
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
42
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
43 clear x_tr_mz2;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
44
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
45 flag=2*flag;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
46
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
47 x_tr_mz_v=strtod(x_tr_mz.v);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
48 x_sum=sum(x_tr_mz.d,'r')';
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
49 n1=max(size(x_tr_mz.d,2));
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
50
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
51 //disp('index2')
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
52
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
53 for i=2:n1;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
54 if x_tr_mz_v(i)-x_tr_mz_v(i-1)<thresh then // avant le 27mai 17h30: <=1.01
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
55 x_tr_mz_v(i-1)=x_tr_mz_v(i-1:i)'*x_sum(i-1:i) / (x_sum(i-1:i)'*ones(2,1)); // on repositionne la 1° valeur de m/z
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
56 x_tr_mz_v(i)=0; // et on annule la 2° valeur de m/z
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
57 x_tr_mz.d(:,i-1)=x_tr_mz.d(:,i-1)+x_tr_mz.d(:,i); // somme des signaux
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
58 end;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
59 end;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
60
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
61 x_tr_mz.v=string(x_tr_mz_v); // on remet les nlles valeurs de m/z dans x_tr_mz
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
62
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
63
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
64 //disp('index3')
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
65
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
66 // tri
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
67 tri=find(x_tr_mz_v~=0);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
68
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
69 // ligne suivante gardée: car elle ne prend que qq secondes avec x_tr_mz=3000x140000 30jan20
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
70 x_tr_mz2=x_tr_mz(:,tri);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
71
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
72
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
73 //disp('index4')
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
74
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
75
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
76 // verification des dimensions div
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
77 if size(x_tr_mz2.d,1)~=size(x_tr_mz2.i,1) | size(x_tr_mz2.d,2)~=size(x_tr_mz2.v,1) then
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
78 disp('error in dimensions, mz_6_rescan_mz2')
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
79 end;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
80
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
81 //disp('index5')
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
82
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
83
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
84 n2=size(x_tr_mz2.d,2);
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
85
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
86 x_tr_mz=x_tr_mz2;
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
87
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
88 if flag <= 2 then // la boucle peut continuer
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
89 if abs(n1-n2)<=5 then
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
90 if n1==n2 then
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
91 flag=2; // stop immédiat -> sortie de la fonction
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
92 else
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
93 flag=1; // pour bloquer à la boucle suivante
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
94 end
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
95 end
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
96 end
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
97
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
98 end
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
99
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
100
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
101
245b2c2b3d75 Uploaded
jcb-mpl
parents:
diff changeset
102 endfunction