4.2 Conversion of mzIdentML file to mzTab using High Quality Identifications - PRIDE-Archive/ms-data-core-api GitHub Wiki

A new exporter was implemented to filter the high-quality identifications (Peptides/Proteins) and export them to mzTab, exporting use the following set of rules:

  • If there is not protein detection protocol in mzIdentML (e. g. no ambiguity groups provided) or there is not threshold define in the protein detection protocol:

    • The filtering can not be done at protein level directly. In this case is needed to look into the spectrum identification protocol.
    • If there is no threshold available at spectrum identification protocol
    • The spectra is filtered using rank information. Only spectrum with rank one pass the filter
  • If there is a threshold available at spectrum identification protocol

    • The spectra is filtered using using the provided threshold
    • Only the proteins whose spectra remain after the filtering will be kept.
  • If there is protein detection protocol in mzIdentML the proteins and protein groups will be filtered according to threshold first.

    • After that the filtering by threshold at peptide level will be applied, because in the worst case scenario it will remove only proteins without spectra evidence that pass the filter.
    • Before NoPeptideFilter was used to avoid inconsistencies with the protein filter, however was observed that some spectra evidences that did not pass the threshold were included because the threshold was provided but was incorrectly annotated in the file as NoThresholdAvailable. This option minimized the inclusion of spectra under the threshold.
  • If there is no threshold information at protein or peptide level available

    • The spectra is filtered using rank information. Only spectrum with rank one pass the filter
    • Only the proteins whose spectra remain after the filtering will be kept.

MzIdentMLControllerImpl mzIdentMLController =  new MzIdentMLControllerImpl(inputFile);
AbstractMzTabConverter mzTabconverter = new HQMzIdentMLMzTabConverter(mzIdentMLController);
MZTabFile mzTabFile = mzTabconverter.getMZTabFile();
MZTabFileConverter checker = new MZTabFileConverter();