diff --git a/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/App.java b/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/App.java index ee2f971..eb08043 100644 --- a/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/App.java +++ b/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/App.java @@ -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) { diff --git a/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/MsLibraryReader.java b/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/MsLibraryReader.java index ca4dc24..3c7b454 100644 --- a/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/MsLibraryReader.java +++ b/lipid_validation/mslibrary-lipid-validator/app/src/main/java/org/mzmine/mslibrary/lipid/validator/MsLibraryReader.java @@ -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!"); } }); }); diff --git a/lipid_validation/mslibrary-lipid-validator/app/src/main/resources/PNNL-LIPIDS-NEGATIVE-small.mgf b/lipid_validation/mslibrary-lipid-validator/app/src/main/resources/PNNL-LIPIDS-NEGATIVE-small.mgf new file mode 100644 index 0000000..aa274a0 --- /dev/null +++ b/lipid_validation/mslibrary-lipid-validator/app/src/main/resources/PNNL-LIPIDS-NEGATIVE-small.mgf @@ -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 + +