Mercurial > repos > jcb-mpl > eics_first_extraction
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 |
