wiki:CreatingAnnotion

Version 1 (modified by dbrentw, 4 years ago) (diff)

--

The GRITS plugin "org.grits.toolbox.importer.ms.annotation.glycan.simiansearch" executes a tool title GELATO, which annotates MS spectra with candidate glycans from a specified database. The GELATO plugin is "org.grits.toolbox.ms.annotation". This plugin creates an archive that is readable by the GRITS GUI component (plugins "org.grits.toolbox.entry.ms.annotation" and "org.grits.toolbox.entry.ms.annotation.glycan"). While GELATO's algorithms perform the matching of peaks in MS spectra to glycans, the archive that is created is an instance of the GRITS MS object model (plugin "org.grits.toolbox.ms.om"). In order to extend GRITS to other forms of MS data, it will be helpful to understand the requirements for creation of an archive file that can be opened in GRITS. This document is meant to serve that purpose.

Minimal steps to create a GRITS MS Glycan Annotation archive.

Step one: populating the data structures with MS data. The default data structure for GELATO is a HashMap<Integer, Scan> where the Integer is the scan number and the Scan object is an instance of org.grits.toolbox.ms.om.data.Scan. GRITS supports a variety of MS types: Direct Infusion (DI), Total Ion Mapping (TIM), LC-MS/MS, and MS Profile. For DI, TIM, and LC-MS/MS, it is assumed that you will have at least 1 MS1 scan and 1 MS/MS scan. For MS Profile, you will only need an MS1 scan.

Assuming a Direct Infusion experiment, the minimum data for GELATO is:

1) MS1 scan (example code)

   Scan ms1scan = new Scan();
   ms1scan.setScanNo(1);
   ms1scan.setMsLevel(1);
   List<Peak> peakList = new ArrayList<>();
   Peak precursorPeak = new Peak();
   precursorPeak.setMz(528.2);
   precursorPeak.setIntensity(10000.0);
   precursorPeak.setIsPrecursor(true);
   precursorPeak.setId(1);
   precursorPeak.setPrecursorMz(528.2);
   peakList.add(precursorPeak);
   ms1scan.setPeaklist(peakList);

2) MS2 scan (example code)

   Scan ms2scan = new Scan();
   ms2scan.setScanNo(2);
   ms2scan.setMsLevel(2);
   ms2scan.setPrecursor(precursorPeak);
   peakList = new ArrayList<>();
   Peak fragPeak = new Peak(); // not sure if even needed
   fragPeak.setMz(940.2);
   fragPeak.setIntensity(5000.0);
   fragPeak.setIsPrecursor(false);
   fragPeak.setId(1);
   peakList.add(fragPeak);
   ms2scan.setPeaklist(peakList);
   ms2scan.setParentScan(1);