Skip to content

Retreats Spring2014 OpenMS2.0

Stephan Aiche edited this page Apr 29, 2014 · 13 revisions

Protocol of the OpenMS 2.0 discussion

monday afternoon session

  • while originally planned we will not be able to do the OpenMS 2.0 implementation in a single attempt (e.g., individual branch that is later on merged)
  • we want to collect a list of features for OpenMS 2.0 during the retreat that can afterwards be implemented one by one
    • issues in the github tracker
  • a crucial part will be benchmarking of the changes (do we improve anything beyond design, or does it get worse)
  • what should we measure (cpu time, memory consumption)
  • automatic vs. manually
  • we will define a benchmark suite for specific algorithms and data structures that can be run easily
  • We start to go through the individual KERNEL classes
    • AreaIterator = we will check it's usage but most likely remove it
  • Peak (basically breaks the discussion on individual classes)
  • we discuss if we should switch from class Peak to pairs of std::vector<double> representing m/z and intensity [everybody agrees]
  class ISpectrum 
  {
    std::vector<double> mz_;
    std::vector<double> int_;

    // + associative container for meta-data arrays (e.g., float-binary-data)
    map<MetaDataID, MetaDataArray> meta_;
  }
  • additional data should be hold in SpectrumSettings objects and not directly in the spectrum
  • Which meta information are essential and hence should be added directly to the spectrum (everybody will name his favourites)
    • check the mzMl standard what is mandatory for a spectrum
  • What should we use as ID for our spectrum and how can we make sure that is correctly mapped to the mzML and stays correct?

thursday morning session

  • intensive discussion on spectrum interface, whiteboard state Whiteboard state in spectrum discussion
  • intensive discussion on msexperiment interface
class ISpectraAccess 
{
public:
  int getNrSpectra() const;
  getMetaSpectrum(int i) const;
  const ISpectrum& getSpectrum(int i) const;
  const ExpMeta& getExperimentMeta() const;
  // iterators for spectra
  SpectrumIterator spectrumBegin();
  SpectrumIterator spectrumEnd();
};

class IChromatogramAccess 
{
public:
  int getNrChromatograms() const;
  getMetaSpectrum(int i) const;
  const IChromatogram& getChromatogram(int i) const;
  const ExpMeta& getExperimentMeta() const;
  // iterators for chromatograms
  ChromatogramIterator chromatogramBegin();
  ChromatogramIterator chromatogramEnd();
};
  • MSExperiment will be renamed to MSRun, whiteboard state Whiteboard state in MSRun discussion
  • discussion on how to proceed with features/consensusfeatures
    • should we use the mzQuantML data model
      • too much information
    • how can we model relations between entities (e.g., RDF triple store)
    • how can we model relations between the individual experiments (or channels)
  • we will remove consensusfeature
    • MassTrace
    • Feature
    • MRMFeature
    • Map whiteboard state Whiteboard state in Map discussion
  • MetaInformation discussion

wednesday morning session

  • agreed on further modularisation of OpenMS
  • support utils with more classes as an incubator for OpenMS/TOPP
  • prepare small libOpenMSChemistry as a container for lightweight future developments whiteboard state Whiteboard state in modularisation discussion
Clone this wiki locally