Skip to content

Commit

Permalink
Added PNNL negative mode subset example, added hardcoded checks for n…
Browse files Browse the repository at this point in the history
…ame, sum formula and precursor mass.
  • Loading branch information
nilshoffmann committed Nov 1, 2023
1 parent 1172474 commit 342ae66
Show file tree
Hide file tree
Showing 3 changed files with 153 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public String getGreeting() {

public static void main(String[] args) {
try {
new MsLibraryReader().read(new File("/home/nilshoffmann/Projects/github.com/nilshoffmann/biohack23_p15/library_spectra_validation/tests/examples/test_case_correct.mgf"));
new MsLibraryReader().read(new File("/home/nilshoffmann/Projects/github.com/nilshoffmann/biohack23_p15/lipid_validation/mslibrary-lipid-validator/app/src/main/resources/PNNL-LIPIDS-NEGATIVE-small.mgf"));
} catch (IOException ex) {
Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedFormatException ex) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,48 @@
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import org.lifstools.jgoslin.domain.ElementTable;
import org.lifstools.jgoslin.domain.LipidAdduct;
import org.lifstools.jgoslin.domain.LipidParsingException;
import org.lifstools.jgoslin.parser.LipidParser;
import org.lifstools.jgoslin.parser.SumFormulaParser;

/**
*
* @author nilshoffmann
*/
public class MsLibraryReader {

private final LipidParser lipidParser = new LipidParser();
private final SumFormulaParser sfp = new SumFormulaParser();

public void read(File mgfFile) throws IOException, UnsupportedFormatException {
AutoLibraryParser alp = new AutoLibraryParser(10, (spectralLibraryEntryList, alreadyProcessed) -> {
spectralLibraryEntryList.forEach((t) -> {
String name = t.getField(DBEntryField.NAME).orElse("NA");
String name = t.getField(DBEntryField.NAME).map((dbentryname) -> dbentryname.toString()).orElse("NA");
System.out.println("Processing entry: " + name);
try {
lipidParser.parse(name);
System.out.println("Checking if lipid name is parseable!");
LipidAdduct lipidAdduct = lipidParser.parse(name);
System.out.println(lipidAdduct.toString());
String providedSumFormula = t.getField(DBEntryField.FORMULA).map((formula) -> formula.toString()).orElse("");
ElementTable et = sfp.parse(providedSumFormula, sfp.newEventHandler());
String calculatedSumFormula = lipidAdduct.getSumFormula();
System.out.println("Sum Formulas: DB entry: " + et.getSumFormula() + " calculated: " + calculatedSumFormula);
System.out.println("Sum Formulas are equal: " + calculatedSumFormula.equals(et.getSumFormula()));
Object pepmass = t.getField(DBEntryField.MOLWEIGHT).orElse(Double.valueOf(0));
System.out.println("Molweight: " + pepmass.toString());
Object mw = t.getField(DBEntryField.PRECURSOR_MZ).orElse(Double.valueOf(0));
System.out.println("Precursor MZ: " + mw.toString());
double mwd = ((Double)mw).doubleValue();
double calculatedMass = et.getMass().doubleValue();
System.out.println("Calculated Precursor MZ: "+calculatedMass);
System.out.println("Mass difference: "+(mwd-calculatedMass));
double diffMass = Math.abs(mwd-calculatedMass);
boolean massOk = diffMass<1.0E-3;
System.out.println("Mass difference < 1.0E-3? "+massOk);
} catch (LipidParsingException e) {
System.out.println("");
System.out.println("Goslin says no!");
}
});
});
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
BEGIN IONS
PEPMASS=450.262
CHARGE=1
MSLEVEL=2
SOURCE_INSTRUMENT=LC-ESI-CID; Lumos
FILENAME=/home/mingxun/Data/data/Metabolomics/Libraries/PNNL/Lipids/LibrariesCreation/PNNL_LipidSpectra_Neg.mgf
SEQ=*..*
IONMODE=Negative
ORGANISM=PNNL-LIPIDS-NEGATIVE
NAME=PE(16:1/0:0) [M-H]1-
PI=Thomas Metz
FORMULA=C21H41N1O7P1
DATACOLLECTOR=Thomas Metz
SMILES=N/A
INCHI=N/A
INCHIAUX=N/A
PUBMED=N/A
SUBMITUSER=mwang87
LIBRARYQUALITY=1
SPECTRUMID=CCMSLIB00010059112
SCANS=1
88.32769 245.804764
93.972839 232.013443
95.618507 268.045868
100.635094 307.082031
105.552155 291.909698
123.586555 369.775604
140.011139 1016.653503
147.90979 356.798553
151.629898 416.599426
158.973969 371.781433
196.037247 2644.280029
205.488373 501.591583
214.048126 15959.319336
253.216827 668097.875
261.997437 462.053406
307.020447 728.224487
409.645721 690.217773
END IONS


BEGIN IONS
PEPMASS=450.262
CHARGE=1
MSLEVEL=2
SOURCE_INSTRUMENT=LC-ESI-HCD; Lumos
FILENAME=/home/mingxun/Data/data/Metabolomics/Libraries/PNNL/Lipids/LibrariesCreation/PNNL_LipidSpectra_Neg.mgf
SEQ=*..*
IONMODE=Negative
ORGANISM=PNNL-LIPIDS-NEGATIVE
NAME=PE(16:1/0:0) [M-H]1-
PI=Thomas Metz
FORMULA=C21H41N1O7P1
DATACOLLECTOR=Thomas Metz
SMILES=N/A
INCHI=N/A
INCHIAUX=N/A
PUBMED=N/A
SUBMITUSER=mwang87
LIBRARYQUALITY=1
SPECTRUMID=CCMSLIB00010059114
SCANS=2
100.93396 282.544464
113.877197 307.384216
140.011642 8027.749023
152.9953 2096.166748
178.184937 1374.054077
196.03775 9324.954102
214.048828 15460.44043
235.208908 752.753296
253.217422 967534.6875
254.221176 771.921692
262.387482 654.0802
271.458923 780.599854
294.089935 762.228088
322.021149 839.201355
END IONS


BEGIN IONS
PEPMASS=476.278
CHARGE=1
MSLEVEL=2
SOURCE_INSTRUMENT=LC-ESI-CID; Lumos
FILENAME=/home/mingxun/Data/data/Metabolomics/Libraries/PNNL/Lipids/LibrariesCreation/PNNL_LipidSpectra_Neg.mgf
SEQ=*..*
IONMODE=Negative
ORGANISM=PNNL-LIPIDS-NEGATIVE
NAME=PE(18:2/0:0) [M-H]1-
PI=Thomas Metz
FORMULA=C23H43N1O7P1
DATACOLLECTOR=Thomas Metz
SMILES=N/A
INCHI=N/A
INCHIAUX=N/A
PUBMED=N/A
SUBMITUSER=mwang87
LIBRARYQUALITY=1
SPECTRUMID=CCMSLIB00010059115
SCANS=3
99.012329 302.66864
137.016525 441.67511
140.011261 1204.163208
150.551758 430.2565
152.995499 834.349426
178.209702 1269.476562
196.037888 3227.924316
214.048141 29480.539062
214.071869 1270.914429
247.366653 793.174438
278.830505 852.584534
279.232513 1467222.375
280.235352 951.054077
280.567749 942.396912
285.79657 797.994751
306.568115 913.472595
394.96698 1693.546265
432.089874 782.323792
432.187653 1374.477661
448.449188 640.251648
455.015808 711.718628
458.298615 1311.985596
486.666687 717.959473
END IONS


0 comments on commit 342ae66

Please sign in to comment.