diff src/mz_sci2hdf5.sci @ 0:03c9a3b59377 draft

Uploaded
author jcb-mpl
date Mon, 26 Apr 2021 16:28:21 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/mz_sci2hdf5.sci	Mon Apr 26 16:28:21 2021 +0000
@@ -0,0 +1,54 @@
+function res_out=mz_sci2hdf5(res,h5name)
+    
+    // entrees: -------------------------
+    // res: une structure avec les champs .time et .mzdata 
+
+    // sorties:
+    // newname2: le nom du fichier de sortie, au format .h5
+    // avec les champs:
+    // 		ChromatogramIndex
+    //  	ChomatogramTime
+    //  	SpectrumIntensity
+    //		SpectrumMZ
+    // 		SpectrumIndex
+    
+    // preparer les donnes .dat au format .h5
+    // load(filedat_in)                        // donne res.time et res.bary
+    
+    n=length(res.time); 
+    
+    ChromatogramIndex=n; 
+    
+    ChomatogramTime=res.time;
+    
+    SpectrumIntensity=[];
+    SpectrumMZ=[];
+    SpectrumIndex=[]; 
+    
+    for i=1:n;
+        mz_i=res.mzdata(i);                 // une matrice de 2 colonnes 
+        diff_i=mz_i(2:$,1)-mz_i(1:$-1,1);
+        if i==1 then 
+            SpectrumIntensity=mz_i(:,2);
+            SpectrumMZ=[mz_i(1,1); diff_i];
+            SpectrumIndex=size(mz_i,1);
+        else
+            SpectrumIntensity=[SpectrumIntensity; mz_i(:,2)];
+            SpectrumMZ=[SpectrumMZ; mz_i(1,1); diff_i];
+            SpectrumIndex=[SpectrumIndex;SpectrumIndex($)+size(mz_i,1)];
+        end
+    end
+    
+    // on a reconstitue les champs au format h5 
+    
+    b=h5open(h5name,"w"); 
+    h5write(b,"ChromatogramIndex",ChromatogramIndex);
+    h5write(b,"ChomatogramTime",ChomatogramTime');
+    h5write(b,"SpectrumIntensity",SpectrumIntensity');
+    h5write(b,"SpectrumMZ",SpectrumMZ');
+    h5write(b,"SpectrumIndex",SpectrumIndex');
+    h5close(b)
+    
+    res_out=1;
+    
+endfunction