From 860e55784e8dfde351a5440306c42986a2bca8a8 Mon Sep 17 00:00:00 2001 From: Yasset Perez-Riverol Date: Wed, 29 Aug 2018 17:47:54 +0100 Subject: [PATCH 1/3] minro changes - has bugs still --- Writer/Metadata.cs | 56 +++++++++++++++++----------------------- Writer/MetadataWriter.cs | 15 +++++------ 2 files changed, 30 insertions(+), 41 deletions(-) diff --git a/Writer/Metadata.cs b/Writer/Metadata.cs index 5432b79..67a0573 100644 --- a/Writer/Metadata.cs +++ b/Writer/Metadata.cs @@ -7,79 +7,69 @@ namespace ThermoRawFileParser.Writer public class Metadata { /** The general Path properties contains: RAW path , RAW file version **/ - private List> fileProperties = new List>(); + private List fileProperties = new List(); /** The Instruments properties contains the information of the instrument **/ - private List> instrumentProperties = new List>(); + private List instrumentProperties = new List(); /** Scan Settings **/ - private List> scanSettings = new List>(); + private List scanSettings = new List(); /** MS and MS data including number of MS and MS/MS **/ - private List> msData = new List>(); + private List msData = new List(); - private List> sampleData = new List>(); + private List sampleData = new List(); /** * Default constructor */ public Metadata(){} - public Metadata(List> fileProperties, - List> instrumentProperties, - List> msData) + public Metadata(List fileProperties, + List instrumentProperties, + List msData) { this.fileProperties = fileProperties; this.instrumentProperties = instrumentProperties; this.msData = msData; } - public List> FileProperties => fileProperties; + public List FileProperties => fileProperties; - public List> InstrumentProperties => instrumentProperties; + public List InstrumentProperties => instrumentProperties; - public List> MsData => msData; + public List MsData => msData; - public List> SampleData => sampleData; + public List SampleData => sampleData; - public List> ScanSettings => scanSettings; + public List ScanSettings => scanSettings; /** * Add a File property to the fileProperties */ - public void addFileProperty(String key, String value) + public void addFileProperty(CVTerm value) { - var dic = new Dictionary(); - dic.Add(key, value); - fileProperties.Add(dic); + fileProperties.Add(value); } - public void addInstrumentProperty(string key, CVTerm value) + public void addInstrumentProperty( CVTerm value) { - var dic = new Dictionary(); - dic.Add(key, value); - instrumentProperties.Add(dic); + instrumentProperties.Add(value); } - public void addScanSetting(string key, Object value) + public void addScanSetting(CVTerm value) { - var dic = new Dictionary(); - dic.Add(key, value); - scanSettings.Add(dic); + scanSettings.Add(value); } - public void addMSData(string key, Object value) + public void addMSData(CVTerm value) { - var dic = new Dictionary(); - dic.Add(key, value); - msData.Add(dic); + msData.Add(value); } - public void addSampleProperty(string key, string value) + public void addSampleProperty(CVTerm value) { - var dic = new Dictionary(); - dic.Add(key, value); - sampleData.Add(dic); + sampleData.Add(value); } } diff --git a/Writer/MetadataWriter.cs b/Writer/MetadataWriter.cs index 0ab947d..fb78e54 100644 --- a/Writer/MetadataWriter.cs +++ b/Writer/MetadataWriter.cs @@ -96,11 +96,10 @@ public void WriteJsonMetada(IRawDataPlus rawFile, int firstScanNumber, int lastS var metadata = new Metadata(); /** File Properties **/ - metadata.addFileProperty("path", rawFile.FileName); - metadata.addFileProperty("version", rawFile.FileHeader.Revision.ToString()); - metadata.addFileProperty("creation-date", rawFile.FileHeader.CreationDate.ToString()); - metadata.addFileProperty("number-instruments", rawFile.InstrumentCount.ToString()); - metadata.addFileProperty("description", rawFile.FileHeader.FileDescription); + metadata.addFileProperty(new CVTerm("NCIT:C47922", "NCIT", "Pathname", rawFile.FileName)); + metadata.addFileProperty(new CVTerm("NCIT:C25714", "NCIT", "Version", rawFile.FileHeader.Revision.ToString())); + metadata.addFileProperty(new CVTerm("NCIT:C69199", "NCIT", "Content Creation Date", rawFile.FileHeader.CreationDate.ToString())); + metadata.addFileProperty(new CVTerm("NCIT:C25365", "NCIT", "Description", rawFile.FileHeader.FileDescription)); /** Sample Properties **/ metadata.addSampleProperty("name", rawFile.SampleInformation.SampleName); @@ -121,9 +120,9 @@ public void WriteJsonMetada(IRawDataPlus rawFile, int firstScanNumber, int lastS metadata.addScanSetting("time-range", startTime + ":" + endTime); metadata.addScanSetting("mass-range", rawFile.RunHeaderEx.LowMass + ":" + rawFile.RunHeaderEx.HighMass); - metadata.addInstrumentProperty("model", new CVTerm("MS:1000494", "MS","Thermo Scientific instrument model", rawFile.GetInstrumentData().Model)); - metadata.addInstrumentProperty("name", new CVTerm("MS:1000496", "MS","instrument attribute", rawFile.GetInstrumentData().Name)); - metadata.addInstrumentProperty("serial", new CVTerm("MS:1000529", "MS", "instrument serial number", rawFile.GetInstrumentData().SerialNumber)); + metadata.addInstrumentProperty(new CVTerm("MS:1000494", "MS","Thermo Scientific instrument model", rawFile.GetInstrumentData().Model)); + metadata.addInstrumentProperty(new CVTerm("MS:1000496", "MS","instrument attribute", rawFile.GetInstrumentData().Name)); + metadata.addInstrumentProperty(new CVTerm("MS:1000529", "MS", "instrument serial number", rawFile.GetInstrumentData().SerialNumber)); var msTypes = new Dictionary(); double minTime = 1000000000000000; From 577d4dbf991ac7367827eb8eaaaa8ac685ce0b25 Mon Sep 17 00:00:00 2001 From: Yasset Perez-Riverol Date: Wed, 29 Aug 2018 17:51:36 +0100 Subject: [PATCH 2/3] minro changes - has bugs still --- Writer/MetadataWriter.cs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Writer/MetadataWriter.cs b/Writer/MetadataWriter.cs index fb78e54..22db06e 100644 --- a/Writer/MetadataWriter.cs +++ b/Writer/MetadataWriter.cs @@ -102,20 +102,20 @@ public void WriteJsonMetada(IRawDataPlus rawFile, int firstScanNumber, int lastS metadata.addFileProperty(new CVTerm("NCIT:C25365", "NCIT", "Description", rawFile.FileHeader.FileDescription)); /** Sample Properties **/ - metadata.addSampleProperty("name", rawFile.SampleInformation.SampleName); - metadata.addSampleProperty("id", rawFile.SampleInformation.SampleId); - metadata.addSampleProperty("type", rawFile.SampleInformation.SampleType.ToString()); - metadata.addSampleProperty("comment", rawFile.SampleInformation.Comment); - metadata.addSampleProperty("vial", rawFile.SampleInformation.Vial); - metadata.addSampleProperty("volume", rawFile.SampleInformation.SampleVolume.ToString()); - metadata.addSampleProperty("injection-volume", rawFile.SampleInformation.InjectionVolume.ToString()); - metadata.addSampleProperty("row-number", rawFile.SampleInformation.RowNumber.ToString()); - metadata.addSampleProperty("dilution-factor", rawFile.SampleInformation.DilutionFactor.ToString()); +// metadata.addSampleProperty("name", rawFile.SampleInformation.SampleName); +// metadata.addSampleProperty("id", rawFile.SampleInformation.SampleId); +// metadata.addSampleProperty("type", rawFile.SampleInformation.SampleType.ToString()); +// metadata.addSampleProperty("comment", rawFile.SampleInformation.Comment); +// metadata.addSampleProperty("vial", rawFile.SampleInformation.Vial); +// metadata.addSampleProperty("volume", rawFile.SampleInformation.SampleVolume.ToString()); +// metadata.addSampleProperty("injection-volume", rawFile.SampleInformation.InjectionVolume.ToString()); +// metadata.addSampleProperty("row-number", rawFile.SampleInformation.RowNumber.ToString()); +// metadata.addSampleProperty("dilution-factor", rawFile.SampleInformation.DilutionFactor.ToString()); - metadata.addScanSetting("start-time", new CVTerm("MS:1000016", "MS", "scan start time",startTime.ToString())); - metadata.addScanSetting("resolution", new CVTerm("MS:1000011", "MS", "mass resolution", rawFile.RunHeaderEx.MassResolution.ToString())); - metadata.addScanSetting("tolerance-unit", new CVTerm("UO:0000002", "MS", "mass unit", rawFile.GetInstrumentData().Units.ToString())); - metadata.addScanSetting("number-scans", rawFile.RunHeaderEx.SpectraCount.ToString()); + metadata.addScanSetting(new CVTerm("MS:1000016", "MS", "scan start time",startTime.ToString())); + metadata.addScanSetting(new CVTerm("MS:1000011", "MS", "mass resolution", rawFile.RunHeaderEx.MassResolution.ToString())); + metadata.addScanSetting(new CVTerm("UO:0000002", "MS", "mass unit", rawFile.GetInstrumentData().Units.ToString())); + metadata.addScanSetting(new CVTerm("PRIDE:0000478", "PRIDE","Number of scans", rawFile.RunHeaderEx.SpectraCount.ToString())); metadata.addScanSetting("scan-range", firstScanNumber + ":" + lastScanNumber); metadata.addScanSetting("time-range", startTime + ":" + endTime); metadata.addScanSetting("mass-range", rawFile.RunHeaderEx.LowMass + ":" + rawFile.RunHeaderEx.HighMass); From d12ef02eeb8f218fcc948582fa2acb480ca07e6c Mon Sep 17 00:00:00 2001 From: Yasset Perez-Riverol Date: Wed, 29 Aug 2018 23:09:16 +0100 Subject: [PATCH 3/3] minor changes --- Writer/Metadata.cs | 5 +++++ Writer/MetadataWriter.cs | 33 ++++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/Writer/Metadata.cs b/Writer/Metadata.cs index 67a0573..4bdfe7e 100644 --- a/Writer/Metadata.cs +++ b/Writer/Metadata.cs @@ -66,6 +66,11 @@ public void addMSData(CVTerm value) { msData.Add(value); } + + public void addMSData(HashSet value) + { + msData.AddRange(value); + } public void addSampleProperty(CVTerm value) { diff --git a/Writer/MetadataWriter.cs b/Writer/MetadataWriter.cs index 22db06e..b6b5635 100644 --- a/Writer/MetadataWriter.cs +++ b/Writer/MetadataWriter.cs @@ -116,9 +116,9 @@ public void WriteJsonMetada(IRawDataPlus rawFile, int firstScanNumber, int lastS metadata.addScanSetting(new CVTerm("MS:1000011", "MS", "mass resolution", rawFile.RunHeaderEx.MassResolution.ToString())); metadata.addScanSetting(new CVTerm("UO:0000002", "MS", "mass unit", rawFile.GetInstrumentData().Units.ToString())); metadata.addScanSetting(new CVTerm("PRIDE:0000478", "PRIDE","Number of scans", rawFile.RunHeaderEx.SpectraCount.ToString())); - metadata.addScanSetting("scan-range", firstScanNumber + ":" + lastScanNumber); - metadata.addScanSetting("time-range", startTime + ":" + endTime); - metadata.addScanSetting("mass-range", rawFile.RunHeaderEx.LowMass + ":" + rawFile.RunHeaderEx.HighMass); + metadata.addScanSetting(new CVTerm("PRIDE:0000479", "PRIDE", "MS scan range", firstScanNumber + ":" + lastScanNumber)); + metadata.addScanSetting(new CVTerm("PRIDE:0000484", "PRIDE", "Retention time range", startTime + ":" + endTime)); + metadata.addScanSetting(new CVTerm("PRIDE:0000485", "PRIDE", "Mz range", rawFile.RunHeaderEx.LowMass + ":" + rawFile.RunHeaderEx.HighMass)); metadata.addInstrumentProperty(new CVTerm("MS:1000494", "MS","Thermo Scientific instrument model", rawFile.GetInstrumentData().Model)); metadata.addInstrumentProperty(new CVTerm("MS:1000496", "MS","instrument attribute", rawFile.GetInstrumentData().Name)); @@ -201,17 +201,28 @@ public void WriteJsonMetada(IRawDataPlus rawFile, int firstScanNumber, int lastS minCharge = 0; } - metadata.addMSData("ms-number", msTypes); - metadata.addMSData("activation-ypes", fragmentationType); - metadata.addMSData("min-charge", minCharge); - metadata.addMSData("max-charge", maxCharge); + foreach(KeyValuePair entry in msTypes) + { + if(entry.Key.Equals(MSOrderType.Ms.ToString())) + metadata.addMSData(new CVTerm("PRIDE:0000481", "PRIDE", "Number of MS1 spectra", entry.Value.ToString())); + if(entry.Key.Equals(MSOrderType.Ms2.ToString())) + metadata.addMSData(new CVTerm("PRIDE:0000482", "PRIDE", "Number of MS2 spectra", entry.Value.ToString())); + if(entry.Key.Equals(MSOrderType.Ms3.ToString())) + metadata.addMSData(new CVTerm("PRIDE:0000483", "PRIDE", "Number of MS3 spectra", entry.Value.ToString())); + + } + + metadata.addMSData(fragmentationType); + + metadata.addMSData(new CVTerm("PRIDE:0000472", "PRIDE", "MS min charge", minCharge.ToString())); + metadata.addMSData(new CVTerm("PRIDE:0000473", "PRIDE", "MS max charge", maxCharge.ToString())); - metadata.addMSData("min-Time", minTime); - metadata.addMSData("max-Time", maxTime); + metadata.addMSData(new CVTerm("PRIDE:0000474", "PRIDE", "MS min RT", minTime.ToString())); + metadata.addMSData(new CVTerm("PRIDE:0000475", "PRIDE", "MS max RT", maxTime.ToString())); - metadata.addMSData("min-Mz", minMz); - metadata.addMSData("max-Mz", maxMz); + metadata.addMSData(new CVTerm("PRIDE:0000476", "PRIDE", "MS min MZ", minMz.ToString())); + metadata.addMSData(new CVTerm("PRIDE:0000477", "PRIDE", "MS min MZ", maxMz.ToString())); // Write the meta data to file