comparison src/mz_4_scan_mz_raw6.sci @ 0:245b2c2b3d75 draft

Uploaded
author jcb-mpl
date Tue, 27 Apr 2021 14:13:47 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:245b2c2b3d75
1 function mzall2=mz_4_scan_mz_raw6(mzall0,diff_mz_min,signal_thresh)
2
3 // trie des valeurs de m/z
4
5 // mzall0: une matrice de 2 colonnes: (1) une liste des valeurs de m/z (2) les signaux associés
6 // diff_mz_min: un seuil en dessous duquel deux m/z proches sont regroupees; par défaut: 0,0005
7 // signal_thresh: un niveau minimum de signal total; par defaut: 30000
8
9 // mzall2: une matrice de 2 colonnes avec m/z et signaux
10
11 if argn(2)<3 then
12 signal_thresh=30000;
13 end
14
15 if argn(2)<2 then
16 diff_mz_min=0.0005;
17 end
18
19
20 // 2° regroupement
21 mzall1=mzall0;
22 mzall2=mzall0;
23
24 n=max(size(mzall1));
25
26 signal_max=max(mzall1(:,2));
27 index=0;
28 flag=0;
29
30 while (signal_max > signal_thresh) & (max(size(mzall1))>2) & flag==0 ;
31 //if index/10000==round(index/10000) then
32 // disp(index,'index=')
33 // disp(signal_max,'signal_max=')
34 //end //--------------------------------------
35
36 signal_max=max(mzall1(:,2));
37 index_max_n=find(mzall1(:,2)==signal_max); // il peut y avoir plusieurs solutions!
38 n2=max(size(index_max_n));
39 for i=1:n2;
40 index_max=index_max_n(i);
41 indexes_plage=find( (mzall1(:,1)>mzall1(index_max,1)-diff_mz_min) & (mzall1(:,1)< mzall1(index_max,1)+diff_mz_min));
42 mzall2(indexes_plage,:)=0;
43 mzall2(index_max,:)=mzall1(index_max,:);
44 mzall1(indexes_plage,:)=0;
45 end
46
47 tri=find(mzall2(:,1)~=0);
48
49 if tri==[] then
50 flag=1;
51 else
52 if index/100==round(index/100) then // nettoyage periodique pour alleger les donnees
53 mzall1=mzall1(tri,:);
54 mzall2=mzall2(tri,:);
55 end
56 end
57 index=index+1;
58 end
59
60 // suppression des valeurs nulles residuelles
61 tri=find(mzall2(:,1)~=0);
62 mzall2=mzall2(tri,:);
63
64
65
66 endfunction