forked from PNNL-Comp-Mass-Spec/MASIC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
clsScanInfo.cs
151 lines (125 loc) · 4.91 KB
/
clsScanInfo.cs
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
using System.Collections.Generic;
using ThermoRawFileReader;
namespace MASIC
{
/// <summary>
/// Container for scan metadata
/// </summary>
public class clsScanInfo
{
/// <summary>
/// Ranges from 1 to the number of scans in the datafile
/// </summary>
public int ScanNumber { get; set; }
/// <summary>
/// Retention (elution) Time (in minutes)
/// </summary>
public float ScanTime { get; set; }
/// <summary>
/// String description of the scan mode for the given scan; only used for Thermo .Raw files
/// </summary>
/// <remarks>Typical values are: FTMS + p NSI Full ms, ITMS + c ESI Full ms,
/// ITMS + p ESI d Z ms, ITMS + c NSI d Full ms2, ITMS + c NSI d Full ms2,
/// ITMS + c NSI d Full ms2, FTMS + c NSI d Full ms2, ITMS + c NSI d Full ms3</remarks>
public string ScanHeaderText { get; set; }
/// <summary>
/// Scan type name
/// </summary>
/// <remarks>Typical values: MS, HMS, Zoom, CID-MSn, or PQD-MSn</remarks>
public string ScanTypeName { get; set; }
/// <summary>
/// m/z of the most intense ion in this scan
/// </summary>
public double BasePeakIonMZ { get; set; }
/// <summary>
/// Intensity of the most intense ion in this scan
/// </summary>
public double BasePeakIonIntensity { get; set; }
/// <summary>
/// Intensity of all of the ions for this scan
/// </summary>
public double TotalIonIntensity { get; set; }
/// <summary>
/// Minimum intensity > 0 in this scan (using profile-mode data)
/// </summary>
public double MinimumPositiveIntensity { get; set; }
/// <summary>
/// True if the scan is a Zoom scan
/// </summary>
public bool ZoomScan { get; set; }
/// <summary>
/// True if the scan was a SIM scan
/// </summary>
public bool SIMScan { get; set; }
/// <summary>
/// MRM scan type
/// </summary>
public MRMScanTypeConstants MRMScanType { get; set; }
/// <summary>
/// For SIM scans, allows one to quickly find all of the SIM scans with the same mass range, since they'll all have the same SIMIndex
/// </summary>
public int SIMIndex { get; set; }
/// <summary>
/// Useful for SIMScans to find similar SIM scans
/// </summary>
public double LowMass { get; set; }
/// <summary>
/// Useful for SIMScans to find similar SIM scans
/// </summary>
public double HighMass { get; set; }
/// <summary>
/// True if the scan was collected in the FT cell of a Thermo instrument
/// </summary>
public bool IsFTMS { get; set; }
/// <summary>
/// Information specific to fragmentation scans
/// </summary>
public clsFragScanInfo FragScanInfo { get; }
/// <summary>
/// Information specific to MRM/SRM scans
/// </summary>
public clsMRMScanInfo MRMScanInfo { get; set; }
/// <summary>
/// Keys are ID values pointing to mExtendedHeaderNameMap (where the name is defined); values are the string or numeric values for the settings
/// </summary>
public Dictionary<int, string> ExtendedHeaderInfo { get; }
/// <summary>
/// Number of ions that remain after filtering / condensing the data loaded via GetScanData
/// The mass spectral data for this scan is tracked by a clsSpectraCache object
/// </summary>
public int IonCount { get; set; }
/// <summary>
/// Number of data points loaded via GetScanData
/// (typically we load profile mode data)
/// </summary>
public int IonCountRaw { get; set; }
/// <summary>
/// Baseline noise stats
/// </summary>
public MASICPeakFinder.clsBaselineNoiseStats BaselineNoiseStats { get; set; }
/// <summary>
/// Constructor for a MS1 scan
/// </summary>
public clsScanInfo()
: this(0)
{
}
/// <summary>
/// Constructor for a MS2 scan
/// </summary>
public clsScanInfo(double fragScanParentIonMz)
{
MRMScanType = MRMScanTypeConstants.NotMRM;
FragScanInfo = new clsFragScanInfo(fragScanParentIonMz);
MRMScanInfo = new clsMRMScanInfo();
ExtendedHeaderInfo = new Dictionary<int, string>();
}
/// <summary>
/// Show the scan number and scan type
/// </summary>
public override string ToString()
{
return "Scan " + ScanNumber + ", " + ScanTypeName;
}
}
}