OpenMS  2.7.0
Todo List
Member BayesianProteinInferenceAlgorithm::BayesianProteinInferenceAlgorithm (unsigned int debug_lvl=0)
is there a better way to pass the debug level from TOPPBase?
Member BayesianProteinInferenceAlgorithm::checkConvertAndFilterPepHits_
extend to allow filtering only for the current run
Member ConsensusIDAlgorithm::apply (std::vector< PeptideIdentification > &ids, const std::map< String, String > &se_info, Size number_of_runs=0)
we could pass the score_types that we want to carry over in the map as well (right now it always takes main)
Class ConsensusMapMergerAlgorithm

This could be merged in the future with the general IDMergerAlgorithm since it shares a lot. IDMergerAlgorithm needs additional methods to have multiple runs as output. It also needs to store an extended mapping internally to distribute the PeptideIDs to the right output run according to origin and label. And should have non-copying/moving overloads for inserting PeptideIDs since we probably do not want to distribute the PeptideIDs to the features again. In general detaching IDs from features would be of great help here.

Untested for TMT/iTraq data where you usually have one Identification run per File but in one File you might have multiple conditions multiplexed, that you might want to split for inference. Problem: There is only one PeptideIdentification object per Feature that is representative for all "sub maps" (in this case the labels/reporter ions). -> A lookup is necessary if the reporter ion had non-zero intensity and if so, the peptide ID needs to be duplicated for every new (condition-based) IdentificationRun it is supposed to be used in, according to the mapping.

Member ConsensusMapMergerAlgorithm::mergeProteinIDRuns (ConsensusMap &cmap, const std::map< unsigned, unsigned > &mapIdx_to_new_protIDRun) const
Do we need to consider the old IDRun identifier in addition to the sub map index
Class ConsensusXMLFile
Take care that unique ids are assigned properly by TOPP tools before calling ConsensusXMLFile::store(). There will be a message on OPENMS_LOG_INFO but we will make no attempt to fix the problem in this class. (all developers)
Member EnzymaticDigestion::digestUnmodified (const StringView &sequence, std::vector< std::pair< Size, Size >> &output, Size min_length=1, Size max_length=0) const
could be set of pairs.
Class FeatureFinderAlgorithmPicked

Fix output in parallel mode, change assignment of charges to threads, add parallel TOPP test (Marc)

Implement user-specified seed lists support (Marc)

Member FeatureFinderIdentificationAlgorithm::addPeptideToMap_ (PeptideIdentification &peptide, PeptideMap &peptide_map, bool external=false) const
find better solution
Class FeatureXMLFile
Take care that unique ids are assigned properly by TOPP tools before calling FeatureXMLFile::store(). There will be a message on OPENMS_LOG_INFO but we will make no attempt to fix the problem in this class. (all developers)
Module FileIO

Implement reading of pepXML and protXML (Andreas)

Allow reading of zipped XML files (David, Hiwi)

Class GaussTraceFitter
More docu
Member IDBoostGraph::buildGraph_ (ProteinIdentification &proteins, std::vector< PeptideIdentification > &idedSpectra, Size use_top_psms, bool best_psms_annotated=false)
we could include building the graph in important "main" functions like inferPosteriors to make the methods safer, but it is also nice to be able to reuse the graph
Member IDBoostGraph::buildGraphWithRunInfo_ (ProteinIdentification &proteins, ConsensusMap &cmap, Size use_top_psms, bool use_unassigned_ids, const ExperimentalDesign &ed)
we could include building the graph in important "main" functions like inferPosteriors to make the methods safer, but it is also nice to be able to reuse the graph
Member IDBoostGraph::resolveGraphPeptideCentric (bool removeAssociationsInData=true)
untested Removes all edges from a peptide (and its PSMs) to its parent protein groups (and its proteins) except for the best protein group.
Class Identification
docu (Andreas)
Class IdentificationHit
docu (Andreas)
Class IDMergerAlgorithm
allow filtering for peptide sequence to supersede the IDMerger tool. Make it keep the best PSMs though.
Member IDScoreGetterSetter::getPeptideScoresFromMap_ (ScoreToTgtDecLabelPairs &scores_labels, const ConsensusMap &cmap, bool include_unassigned_peptides)
allow FeatureMap?
Class InclusionExclusionList
allow modifications (fixed?)
Class InspectOutfile
Handle Modifications (Andreas)
Class IsotopeMarker
implement a real isotope marking here with isotopedistributions and fitting (Andreas)
Class LabeledPairFinder

Implement support for labeled MRM experiments, Q1 m/z value and charges. (Andreas)

Implement support for more than one mass delta, e.g. from missed cleavages and so on (Andreas)

Page MascotAdapter
This adapter is using antiquated internal methods and needs to be updated! E.g. use MascotGenericFile.h instead of MascotInfile.h....
Member MessagePasserFactory< Label >::chgLLhoods
could be calculated from IDPEP if we do per charge state fitting) or empirically estimated from the input PSMs
Class MzMLHandler
replace hardcoded cv stuff with more flexible handling via obo r/w.
Member MzMLSpectrumDecoder::decodeBinaryDataChrom_ (std::vector< BinaryData > &data)
Duplicated code from MzMLHandler, need to clean up see MzMLHandler::fillData_()
Member MzMLSpectrumDecoder::decodeBinaryDataSpectrum_ (std::vector< BinaryData > &data)
Duplicated code from MzMLHandler, need to clean up see MzMLHandler::fillData_()
Member PeptideProteinResolution::resolve (ProteinIdentification &protein, std::vector< PeptideIdentification > &peptides, bool resolve_ties, bool targets_first)
warning: all peptides are used (not filtered for matching protein ID run yet).
Member PeptideProteinResolution::resolveGraph (ProteinIdentification &protein, std::vector< PeptideIdentification > &peptides)
warning: all peptides are used (not filtered for matching protein ID run yet).
Class Plot1DCanvas
Use spectrum StringDataArray with name 'label' for peak annotations (Hiwi, Johannes)
Class PlotWidget
Add support to store the displayed data as SVG image (HiWi)
Class PosteriorErrorProbabilityModel

test performance and make fitGumbelGauss available via parameters.

allow charge state based fitting

allow semi-supervised by using decoy annotations

allow non-parametric via kernel density estimation

Class ProductModel< D >
This class provides new member functions, which makes Factory<BaseModel<2> >::create("ProductModel2D") pretty much useless! (Clemens)
Class ProteinIdentification
Add MetaInfoInterface to modifications => update IdXMLFile and ProteinIdentificationVisualizer (Andreas)
Page ProteinInference
possibly integrate parsimony approach from OpenMS::PSProteinInference class The command line parameters of this tool are:
ProteinInference -- Protein inference based on an aggregation of the scores of the identified peptides.
Full documentation: http://www.openms.de/doxygen/release/2.7.0/html/TOPP_ProteinInference.html
Version: 2.7.0 Sep 13 2021, 20:58:47, Revision: 9110e58
To cite OpenMS:
  Rost HL, Sachsenberg T, Aiche S, Bielow C et al.. OpenMS: a flexible open-source software platform for mass spectrometry data analysis. Nat Meth. 2016; 13, 9: 741-748. doi:10.1038/nmeth.3959.

Usage:
  ProteinInference <options>

Options (mandatory options marked with '*'):
  -in <file>*                                               Input file(s) (valid formats: 'idXML')
  -out <file>*                                              Output file (valid formats: 'idXML')
  -merge_runs <choice>                                      If your idXML contains multiple runs, merge them 
                                                            beforehand? (default: 'no' valid: 'no', 'all')
  -annotate_indist_groups <choice>                          If you want to annotate indistinguishable protein
                                                            groups, either for reporting or for group based
                                                            quant. later. Only works with a single ID run in
                                                            the file. (default: 'true' valid: 'true', 'false'
                                                            )
                                                            

Merging:
  -Merging:annotate_origin <choice>                         If true, adds a map_index MetaValue to the Peptid
                                                            eIDs to annotate the IDRun they came from. (defau
                                                            lt: 'true' valid: 'true', 'false')
  -Merging:allow_disagreeing_settings                       Force merging of disagreeing runs. Use at your 
                                                            own risk.

Algorithm:
  -Algorithm:min_peptides_per_protein <number>              Minimal number of peptides needed for a protein 
                                                            identification. If set to zero, unmatched protein
                                                            s get a score of -Infinity. If bigger than zero,
                                                            proteins with less peptides are filtered and evid
                                                            ences removed from the PSMs. PSMs that do not
                                                            reference any proteins anymore are removed but
                                                            the spectrum info is kept. (default: '1' min:
                                                            '0')
  -Algorithm:score_aggregation_method <choice>              How to aggregate scores of peptides matching to 
                                                            the same protein? (default: 'maximum' valid: 'max
                                                            imum', 'product', 'sum')
  -Algorithm:treat_charge_variants_separately <text>        If this is set, different charge variants of the 
                                                            same peptide sequence count as individual evidenc
                                                            es. (default: 'true')
  -Algorithm:treat_modification_variants_separately <text>  If this is set, different modification variants 
                                                            of the same peptide sequence count as individual
                                                            evidences. (default: 'true')
  -Algorithm:use_shared_peptides <text>                     If this is set, shared peptides are used as evide
                                                            nces. (default: 'true')
  -Algorithm:skip_count_annotation <text>                   If this is true, peptide counts won't be annotate
                                                            d at the proteins. (default: 'false')

                                                            
Common TOPP options:
  -ini <file>                                               Use the given TOPP INI file
  -threads <n>                                              Sets the number of threads allowed to be used by 
                                                            the TOPP tool (default: '1')
  -write_ini <file>                                         Writes the default configuration file
  --help                                                    Shows options
  --helphelp                                                Shows all options (including advanced)

INI file documentation of this tool:
Legend:
required parameter
advanced parameter
+ProteinInferenceProtein inference based on an aggregation of the scores of the identified peptides.
version2.7.0 Version of the tool that generated this parameters file.
++1Instance '1' section for 'ProteinInference'
in[] input file(s)input file*.idXML
out output fileoutput file*.idXML
merge_runsno If your idXML contains multiple runs, merge them beforehand?no,all
annotate_indist_groupstrue If you want to annotate indistinguishable protein groups, either for reporting or for group based quant. later. Only works with a single ID run in the file.true,false
log Name of log file (created only when specified)
debug0 Sets the debug level
threads1 Sets the number of threads allowed to be used by the TOPP tool
no_progressfalse Disables progress logging to command linetrue,false
forcefalse Overrides tool-specific checkstrue,false
testfalse Enables the test mode (needed for internal use only)true,false
+++Merging
annotate_origintrue If true, adds a map_index MetaValue to the PeptideIDs to annotate the IDRun they came from.true,false
allow_disagreeing_settingsfalse Force merging of disagreeing runs. Use at your own risk.true,false
+++Algorithm
min_peptides_per_protein1 Minimal number of peptides needed for a protein identification. If set to zero, unmatched proteins get a score of -Infinity. If bigger than zero, proteins with less peptides are filtered and evidences removed from the PSMs. PSMs that do not reference any proteins anymore are removed but the spectrum info is kept.0:∞
score_aggregation_methodmaximum How to aggregate scores of peptides matching to the same protein?maximum,product,sum
treat_charge_variants_separatelytrue If this is set, different charge variants of the same peptide sequence count as individual evidences.
treat_modification_variants_separatelytrue If this is set, different modification variants of the same peptide sequence count as individual evidences.
use_shared_peptidestrue If this is set, shared peptides are used as evidences.
skip_count_annotationfalse If this is true, peptide counts won't be annotated at the proteins.
Class ProtXMLFile

Document which metavalues of Protein/PeptideHit are filled when reading ProtXML (Chris)

Writing of protXML is currently not supported

Class QTCluster
This implementation may benefit from two separate implementations (one considering IDs/annotations one without). The current implementation most likely hinders speed/memory of both by trying to do both in one. The ID-based implementation could additionally benefit from ID scores and make use of ConsensusID functions.
Page RTPredict
This needs serious clean up! Combining certain input and output options will result in strange behaviour, especially when using text output/input.
Class SequestOutfile

Handle Modifications (Andreas)

Complete rewrite of the parser (and those of InsPecT and PepNovo), the code is bullshit... (Andreas)

Module setScoresFunctions
remove?
Class SpectrumIdentification
docu (Andreas)
Class TOPPBase
: replace writeLog_, writeDebug_ with a logger concept we'd need something like -VLevels [LOGGERS] to specify which loggers shall print something the '-log' flag should clone all output to the log-file (maybe with custom [LOGGERS]), which can either be specified directly or is equal to '-out' (if present) with a ".log" suffix maybe a new LOGGER type (TOPP), which is only usable on TOPP level?
Class TraceFitter
docu needs update
Class TwoDOptimization
Works only with defined types due to pointers to the data in the optimization namespace! Change that or remove templates (Alexandra)