Skip to content

Commit f977baa

Browse files
committed
Fix typos and add getters for chromatogram dictionaries
1 parent 239d526 commit f977baa

File tree

5 files changed

+59
-26
lines changed

5 files changed

+59
-26
lines changed

ThermoRawFileParser.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@
199199
<Compile Include="Query\ProxiSpectrumReader.cs" />
200200
<Compile Include="RawFileParserException.cs" />
201201
<Compile Include="RawFileParser.cs" />
202+
<Compile Include="Util\CVHelpers.cs" />
202203
<Compile Include="Util\LimitedSizeDictionary.cs" />
203204
<Compile Include="Util\MZArray.cs" />
204205
<Compile Include="Util\NativeMethods.cs" />

ThermoRawFileParserTest/OntologyMappingTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ public class OntologyMappingTests
1212
public void TestGetInstrumentModel()
1313
{
1414
// exact match
15-
var match = OntologyMapping.getInstrumentModel("LTQ Orbitrap");
15+
var match = OntologyMapping.GetInstrumentModel("LTQ Orbitrap");
1616
Assert.AreEqual("MS:1000449", match.accession);
1717
// partial match, should return the longest partial match
18-
var partialMatch = OntologyMapping.getInstrumentModel("LTQ Orbitrap XXL");
18+
var partialMatch = OntologyMapping.GetInstrumentModel("LTQ Orbitrap XXL");
1919
Assert.AreEqual("MS:1000449", partialMatch.accession);
2020
// no match, should return the generic thermo instrument
21-
var noMatch = OntologyMapping.getInstrumentModel("non existing model");
21+
var noMatch = OntologyMapping.GetInstrumentModel("non existing model");
2222
Assert.AreEqual("MS:1000483", noMatch.accession);
2323
}
2424
}

Util/CVHelpers.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using ThermoRawFileParser.Writer.MzML;
2+
3+
namespace ThermoRawFileParser.Util
4+
{
5+
public static class CVHelpers
6+
{
7+
public static CVParamType Copy (this CVParamType old)
8+
{
9+
return new CVParamType
10+
{
11+
accession = old.accession,
12+
name = old.name,
13+
cvRef = old.cvRef,
14+
unitAccession = old.unitAccession,
15+
unitCvRef = old.unitCvRef,
16+
unitName = old.unitName,
17+
value = old.value
18+
};
19+
}
20+
}
21+
}

Writer/MzMlSpectrumWriter.cs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public override void Write(IRawDataPlus rawFile, int firstScanNumber, int lastSc
170170
value = ""
171171
});
172172
// Ion current chromatogram
173-
content.Add(OntologyMapping.chromatogramTypes["current"]);
173+
content.Add(OntologyMapping.GetChromatogramType("current"));
174174
}
175175

176176
// Other detector data
@@ -192,7 +192,7 @@ public override void Write(IRawDataPlus rawFile, int firstScanNumber, int lastSc
192192
if (_rawFile.GetInstrumentCountOfType(Device.Pda) > 0 ||
193193
_rawFile.GetInstrumentCountOfType(Device.UV) > 0)
194194
{
195-
content.Add(OntologyMapping.chromatogramTypes["absorption"]);
195+
content.Add(OntologyMapping.GetChromatogramType("absorption"));
196196
}
197197
//non-standard chromatograms pressure, flow, FID, etc
198198
foreach (var deviceType in new Device[2] { Device.Analog, Device.MSAnalog })
@@ -207,14 +207,14 @@ public override void Write(IRawDataPlus rawFile, int firstScanNumber, int lastSc
207207
{
208208
var channelName = instData.ChannelLabels[channel];
209209
if (channelName.ToLower().Contains("pressure"))
210-
content.Add(OntologyMapping.chromatogramTypes["pressure"]);
210+
content.Add(OntologyMapping.GetChromatogramType("pressure"));
211211
else if (channelName.ToLower().Contains("flow"))
212-
content.Add(OntologyMapping.chromatogramTypes["flow"]);
212+
content.Add(OntologyMapping.GetChromatogramType("flow"));
213213

214214
else if (channelName.ToLower().Contains("fid"))
215-
content.Add(OntologyMapping.chromatogramTypes["current"]);
215+
content.Add(OntologyMapping.GetChromatogramType("current"));
216216
else
217-
content.Add(OntologyMapping.chromatogramTypes["unknown"]);
217+
content.Add(OntologyMapping.GetChromatogramType("unknown"));
218218
}
219219
}
220220
}
@@ -276,7 +276,7 @@ public override void Write(IRawDataPlus rawFile, int firstScanNumber, int lastSc
276276
_writer.WriteStartElement("referenceableParamGroup");
277277
_writer.WriteAttributeString("id", "commonInstrumentParams");
278278

279-
instrumentModel = OntologyMapping.getInstrumentModel(instrumentData.Model);
279+
instrumentModel = OntologyMapping.GetInstrumentModel(instrumentData.Model);
280280
SerializeCvParam(instrumentModel);
281281

282282
SerializeCvParam(new CVParamType
@@ -980,8 +980,8 @@ private List<ChromatogramType> ConstructChromatograms(int firstScanNumber, int l
980980
for (var i = 0; i < trace.Length; i++)
981981
{
982982
// CV Data for Total Absorbance Chromatogram
983-
var chroType = OntologyMapping.chromatogramTypes["absoption"];
984-
var intensType = OntologyMapping.dataArrayTypes["absoption"];
983+
var chroType = OntologyMapping.GetChromatogramType("absorption");
984+
var intensType = OntologyMapping.GetDataArrayType("absorption");
985985
intensType.value = instData.Units.ToString();
986986

987987
var chromatogram = TraceToChromatogram(trace[i],
@@ -1011,8 +1011,8 @@ private List<ChromatogramType> ConstructChromatograms(int firstScanNumber, int l
10111011
for (var i = 0; i < trace.Length; i++)
10121012
{
10131013
// CV Data for Absorbance Chromatogram
1014-
var chroType = OntologyMapping.chromatogramTypes["absorbtion"];
1015-
var intensType = OntologyMapping.dataArrayTypes["absoption"];
1014+
var chroType = OntologyMapping.GetChromatogramType("absorption");
1015+
var intensType = OntologyMapping.GetDataArrayType("absorption");
10161016
intensType.value = instData.Units.ToString();
10171017

10181018
var chromatogram = TraceToChromatogram(trace[i],
@@ -1049,24 +1049,24 @@ private List<ChromatogramType> ConstructChromatograms(int firstScanNumber, int l
10491049
for (var i = 0; i < trace.Length; i++)
10501050
{
10511051
//Default data type
1052-
var chroType = OntologyMapping.chromatogramTypes["unknown"];
1053-
var intensType = OntologyMapping.dataArrayTypes["unknown"];
1052+
var chroType = OntologyMapping.GetChromatogramType("unknown");
1053+
var intensType = OntologyMapping.GetDataArrayType("unknown");
10541054

10551055
if (channelName.ToLower().Contains("pressure"))
10561056
{
1057-
chroType = OntologyMapping.chromatogramTypes["pressure"];
1058-
intensType = OntologyMapping.dataArrayTypes["pressure"];
1057+
chroType = OntologyMapping.GetChromatogramType("pressure");
1058+
intensType = OntologyMapping.GetDataArrayType("pressure");
10591059
}
10601060
else if (channelName.ToLower().Contains("flow"))
10611061
{
1062-
chroType = OntologyMapping.chromatogramTypes["flow"];
1063-
intensType = OntologyMapping.dataArrayTypes["flow"];
1062+
chroType = OntologyMapping.GetChromatogramType("flow");
1063+
intensType = OntologyMapping.GetDataArrayType("flow");
10641064
}
10651065
else if (channelName.ToLower().Contains("fid"))
10661066
{
10671067
//FID is ion current type
1068-
chroType = OntologyMapping.chromatogramTypes["current"];
1069-
intensType = OntologyMapping.dataArrayTypes["intensity"];
1068+
chroType = OntologyMapping.GetChromatogramType("current");
1069+
intensType = OntologyMapping.GetDataArrayType("intensity");
10701070
}
10711071

10721072
var chromatogram = TraceToChromatogram(trace[i],
@@ -1122,7 +1122,7 @@ private ChromatogramType TraceToChromatogram(ChromatogramSignal trace, string ch
11221122
.binary.Length / 3)).ToString(CultureInfo.InvariantCulture);
11231123
var timesBinaryDataCvParams = new List<CVParamType>
11241124
{
1125-
OntologyMapping.dataArrayTypes["time"],
1125+
OntologyMapping.GetDataArrayType("time"),
11261126
new CVParamType
11271127
{
11281128
accession = "MS:1000523", name = "64-bit float", cvRef = "MS", value = ""

Writer/OntologyMapping.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using ThermoFisher.CommonCore.Data;
44
using ThermoFisher.CommonCore.Data.FilterEnums;
55
using ThermoRawFileParser.Writer.MzML;
6+
using ThermoRawFileParser.Util;
67

78
namespace ThermoRawFileParser.Writer
89
{
@@ -685,7 +686,7 @@ public static class OntologyMapping
685686
/// </summary>
686687
/// <param name="instrumentName">the instrument name</param>
687688
/// <returns>the instrument CV param</returns>
688-
public static CVParamType getInstrumentModel(string instrumentName)
689+
public static CVParamType GetInstrumentModel(string instrumentName)
689690
{
690691
CVParamType instrumentModel;
691692
instrumentName = instrumentName.ToUpper();
@@ -852,7 +853,7 @@ public static List<CVParamType> GetDetectors(string instrumentAccession)
852853
return detectors;
853854
}
854855

855-
public static readonly Dictionary<string, CVParamType> chromatogramTypes =
856+
private static readonly Dictionary<string, CVParamType> chromatogramTypes =
856857
new Dictionary<string, CVParamType>
857858
{
858859
{
@@ -946,7 +947,12 @@ public static List<CVParamType> GetDetectors(string instrumentAccession)
946947
},
947948
};
948949

949-
public static readonly Dictionary<string, CVParamType> dataArrayTypes =
950+
public static CVParamType GetChromatogramType(string key)
951+
{
952+
return CVHelpers.Copy(chromatogramTypes[key]);
953+
}
954+
955+
private static readonly Dictionary<string, CVParamType> dataArrayTypes =
950956
new Dictionary<string, CVParamType>
951957
{
952958
{
@@ -1044,5 +1050,10 @@ public static List<CVParamType> GetDetectors(string instrumentAccession)
10441050
}
10451051
}
10461052
};
1053+
1054+
public static CVParamType GetDataArrayType(string key)
1055+
{
1056+
return CVHelpers.Copy(dataArrayTypes[key]);
1057+
}
10471058
}
10481059
}

0 commit comments

Comments
 (0)