-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path20210711-msAlignScript.txt
99 lines (72 loc) · 3.05 KB
/
20210711-msAlignScript.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Dim Chrom, Spec, RT,deconSpec, bUseSNAP, Filename, RTtempEnd, objMasses, objMassList, currentSpectrum
'*****************************************************************************************
'*****************************************************************************************
bUseSNAP = True
Const RTStart = 1
Const RTEnd = 95
Const LowMass = 5000 'Mass Range for peak picking (SNAP)
Const HighMass = 60000 'Mass Range for peak picking (SNAP)
Const WindowSize = 1 'Window size for spectrum averages (min)
Const Extension = ".csv"
Const Header = "RT / min,MW,Intensity"
'*****************************************************************************************
'*****************************************************************************************
Filename = GetExportFileName(Extension)
Delete_File (FileName)
Set objMasses = CreateObject("Scripting.FileSystemObject")
Set objMassList = objMasses.OpenTextFile(FileName, 8, True)
objMassList.WriteLine(Analysis.Name)
objMassList.WriteLine(Header)
Call ResetPeakfinder()
Analysis.compounds.clear
For RT = RTStart To RTEnd Step WindowSize
RTtempEnd = RT+WindowSize
Analysis.ClearChromatogramRangeSelections
Analysis.AddChromatogramRangeSelection RT, RTtempEnd
Analysis.Chromatograms(1).AverageMassSpectrum False, True
currentSpectrum = Analysis.Spectra.Count
Set spec = Analysis.Spectra(currentSpectrum)
spec.deconvolute
Set deconSpec = spec.childspectra(1)
Call SetMethodParametersPeakfinder()
deconSpec.masslistfind LowMass,HighMass
Call ResetPeakfinder()
Call WriteToCSV(deconSpec, RT, RTtempEnd)
Next
Analysis.Save
Form.Close
Sub SetMethodParametersPeakfinder()
Dim oPeakFinderParameters
Set oPeakFinderParameters = Analysis.Method.MassListParameters()
If bUseSNAP = True Then
oPeakFinderParameters.DetectionAlgorithm = 2 ' 3 means Sum; 2 means SNAP; 0 means APEX
Else
oPeakFinderParameters.DetectionAlgorithm = 3 ' 3 means Sum; 2 means SNAP; 0 means APEX
End If
End Sub
Sub ResetPeakfinder
Dim oPeakFinderParameters
Set oPeakFinderParameters = Analysis.Method.MassListParameters()
oPeakFinderParameters.DetectionAlgorithm = 3 ' 3 means Sum; 2 means SNAP; 0 means APEX
End Sub
Function WriteToCSV(spectrum, RT, RTtempEnd)
Dim Peaks, Peak, delim
delim = ","
Set Peaks = spectrum.MSPeakList
For Each Peak In Peaks
'WScript.Echo(Peak.m_over_z)
objMassList.WriteLine(RT & "-" & RTtempEnd & delim & Peak.m_over_z & delim & Peak.Intensity)
Next
End Function
Function GetExportFileName(sExtension)
Dim aFileNames
aFileNames = split(Analysis.Name,".d",-1,1)
GetExportFileName = Analysis.Path & "\" & aFileNames(0) & sExtension
End Function
Sub Delete_File (FileName)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(FileName) Then
fso.DeleteFile(FileName)
End If
End Sub