Opened 15 years ago

Closed 14 years ago

Last modified 10 years ago

#405 closed (fixed)

Support export for publication

Reported by: Jari Häkkinen Owned by: olle
Milestone: Proteios SE 2.6 Keywords:
Cc:

Description (last modified by Fredrik Levander)

It should be possible to export the filtered Hits report as PRIDE 2.1 xml (schema).

This could be either as Gel export or non-gel export, which will mean two different export formats. The export should be based on hits passing a certain combinedFDR.

Major considerations: If more than one protein with exactly the same score is observed, only one accession should be reported, and the other be reported as a CV entry 'indistinguishable protein accession', rather than reporting as two separate proteins.

For protein-level combined hits, the same protein will appear several times, but with different search engine scores. To sort this out we should first report all proteins which are primary combined, and with combined FDR<xxx. Score to report to PRIDE is then combined FDR and the individual search scores appears as PRIDE CV params.

For the combined hits, this ticket is depending on #479.

The searches are obliged to be performed with mzData. In this way, the mzData part of the PrideXML can be taken directly from the mzData file. There should be one PRIDE XML generated for each mzData file.

Some information is probably missing in the database. The user could be asked to fill in the experiment information as annotations, and then retry. the CV mapping has to be solved.

Change History (86)

comment:1 Changed 15 years ago by Gregory Vincic

Milestone: Proteios Future ReleaseProteios 2.5

Discuss it to 2.5 release

comment:2 Changed 15 years ago by Fredrik Levander

type: defectenhancement

comment:3 Changed 14 years ago by Fredrik Levander

Milestone: Proteios 2.5Proteios Future Release

comment:4 Changed 14 years ago by Fredrik Levander

Description: modified (diff)
Milestone: Proteios Future ReleaseProteios 2.5

comment:5 Changed 14 years ago by Fredrik Levander

Description: modified (diff)
Milestone: Proteios SE 2.5Proteios SE 2.6
Owner: changed from Fredrik Levander to olle

comment:6 Changed 14 years ago by olle

Status: newassigned

Ticket accepted.

comment:7 Changed 14 years ago by olle

General info: PRIDE is an acronym for "PRoteomics IDEntifications database".

comment:8 Changed 14 years ago by olle

Traceability note: The ticket referred to in the ticket description is Ticket #479 (Improvement of identification combination).

comment:9 Changed 14 years ago by olle

General info:

  • PRIDE is an acronym for "PRoteomics IDEntifications database"
  • FDR denotes "False Discovery Rate", (Number of False Discoveries / Number of Discoveries)
  • CV denotes "Controlled Vocabulary", notations defined in the used ontology

comment:10 Changed 14 years ago by olle

Discussion of development tactics:

For many projects, a near final routine can be constructed from the design specification, and the former is then submitted to a test panel of users. Found bugs will be fixed and the updated routine is included in the next software release. Regrettably, the current project of exporting database table data to a PRIDE XML file has the problem that it is not always obvious how the former should be mapped to different XML tags. An XML file can easily be produced that fulfills the requirements in the PRIDE XSD (XML Schema Definition), and therefore is a "valid" PRIDE XML file, but where the data entries are erroneous. However, the file might still look perfectly OK to a layman.

To speed up development, it is therefore imperative that users with expertise in proteomics can test the export routine in an early development stage, in order to give input on what is right and wrong, and what is missing. To give a clear indication of the experimental nature of this piece of code before release, the title for web form "PRIDE XML Export" will be exchanged for "PRIDE XML Export (CAUTION! Experimental - Do not trust results)", as a warning to those who install Proteios SE from the subversion trunk.

comment:11 Changed 14 years ago by olle

Outline of initial (experimental) design for exporting Hits data to a PRIDE XML file:

The design is inspired by the design of the "Protein Assembly" routine, as the latter also processes hits items, but the internal structure of the classes has been modified.

  • It is assumed that functions "Combined Hits Report" followed by "Protein Assembly" have been applied to the Hits table before exporting its contents to a PRIDE XML file.
  • A new button denoted "PRIDE XML Export" will be added to the Hits table tool bar.
  • Clicking the "PRIDE XML Export" button will display a form with info and entry fields for the export.
  • A job will be created for each peaklist file in the processed hit items after filtering.
  • The output XML files will be placed in the project directory of the active project.
  • The output XML files will have filenames composed of an optional prefix concatenated to the base name of the relevant peaklist file, and file extension ".pride.xml".
  • The default entry for the optional filename prefix will consist of the string "PrideExport_" concatenated to a timestamp in "YYYYMMDD_HHMM" format and a final undercore "_", e.g. on Dec 24, 2008, 23:55, the default optional filename prefix will be "PrideExport_20081224_2355_". If used for peaklist file "qtof_A2.xml", the resulting output PRIDE XML file will have name "PrideExport_20081224_2355_qtof_A2.pride.xml", while if the prefix field is blank, it will be simply "qtof_A2.pride.xml".
  • A select box for selecting a gel external id will be included.
  • An entry field for setting an upper cutoff value for the combined search FDR (False Discovery Rate) will be included.
  • The mzData part of the PRIDE XML file will be copied directly from the mzData block in the peaklist mzData file, with added extra indentation to correspond to an inner XML block in the PRIDE XML file.

comment:12 Changed 14 years ago by olle

Note on initial choice for special XML tags in the PRIDE XML file:

  • The TITLE XML block will contain information that the file was generated by Proteios SE, the full version and build numbers, and a timestamp in "YYYY-MM-DD HH:MM:SS" format indicating when the file was created. This timestamp may differ from an optional timestamp prefix in the PRIDE XML filename, as the latter specifies the time when the job session was created, while the timestamp in the TITLE XML block specifies when the job corresponding to a specific peaklist file was executed.

comment:13 Changed 14 years ago by olle

(In [2973]) Refs #405. Refs #287. First experimental revision of exporting Hits table data to PRIDE XML files:

  1. New class/file action/hit/PrideExport.java in client/servlet/

that is connected to new button "PrideExportBtn?" in the Hits table tool bar. It constructs a default output filename prefix with timestamp and then calls new FormFactory method getPrideExportForm(Project project, String filenamePrefixDefault) to obtain a form with settings for exporting Hits table data to PRIDE XML files. The "Next" button of the form forwards the action to new class CreatePrideExportJob.

  1. Class/file gui/form/FormFactory.java updated with new

public method Form getPrideExportForm(Project project, String filenamePrefixDefault) for obtaining a form with settings for exporting Hits table data to PRIDE XML files.

  1. New class/file action/hit/CreatePrideExportJob.java in

client/servlet/ that retrieves export settings from values of valid parameters and then creates one job for each peaklist file in the Hits table. The plugin related to the jobs is set to new plugin class PrideExportPlugin, and retrieved export settings are transferred to the jobs as job parameter values.

  1. New class/file plugins/PrideExportPlugin.java in plugin/

that obtains input values from job parameter values, gets Hits item data from a query of the Hits database table, and exports data to a PRIDE XML file.

  1. English dictionary file locale/en/dictionary in client/servlet/

updated with new entries for various string keys.

comment:14 Changed 14 years ago by olle

(In [2975]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated with bug fix:

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated by not adding duplicate values to score list.

comment:15 Changed 14 years ago by olle

(In [2976]) Refs #405. Refs #287. PRIDE XML version number is now reported in the TITLE XML block of the PRIDE XML file, and the PRIDE XML export form header title. The PRIDE XML version that is currently supported by Proteios SE is 2.1.

  1. Class/file plugins/PrideExportPlugin.java in plugin/ updated in

private method void writePrideXmlHeader(XMLCrudeWriterImpl xmlCrudeWriterImpl) by reporting the PRIDE XML version number.

  1. English dictionary file locale/en/dictionary in client/servlet/

updated by adding the PRIDE XML version number in the PRIDE XML export form header title.

comment:16 Changed 14 years ago by olle

(In [2977]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated to determine more protein search database types from the external id accession number:

  1. Private method

String getDatabaseFromAccessionNumber(String acc) updated to determine database types "IPI", "ENSEMBL", "RefSeq?", "NCBI", and "SwissProt/UniProt?" from the external id accession number. Information used was mainly obtained from the PRIDE web site http://www.ebi.ac.uk/pride/.

comment:17 Changed 14 years ago by olle

Update of (experimental) design for exporting Hits data to a PRIDE XML file:

  • The first version of the export routine will be for gel-based export. A gel external id is selected by the user.
  • Hit queries will be filtered to only return hits corresponding to the current gel external id and spectrum file. In addition, the combined search FDR of the hit should not be higher than the set FDR upper limit. The hits will be ordered after external id.
  • A "GelFreeIdentification" XML tag will be created for each protein hit, where the score value has not been reported before. In the following, this protein hit will be referred to as the "first score protein" hit.

Each "GelFreeIdentification" XML tag will include, in order:

  1. An "Accession" XML tag with the external id of the first score protein.
  2. A "Database" XML tag with a label indicating the protein search database type. The latter is inferred from the external id accession number.
  3. A section with information on the first score protein.
  4. For each other protein hit with identical score to the first score protein hit, a section with information on the other protein ("indistinguishable protein").
  5. For each peptide hit with identical external id to the first score protein hit, a "PeptideItem" XML tag with information on the peptide.

The details of what information will be included for proteins and peptides are deliberately vague at this stage.

comment:18 Changed 14 years ago by olle

(In [2979]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by major re-write to comply with the following design:

  1. Hit queries will be filtered to only return hits corresponding

to the current gel external id and spectrum file. The combined search FDR of the hit should not be higher than the set FDR upper limit. The hits will be ordered after external id.

  1. A "GelFreeIdentification" XML tag will be created for each

protein hit, where the score value has not been reported before (this protein hit is referred to as the "first score protein" hit).

  1. Each "GelFreeIdentification" XML tag includes:
  1. An "Accession" XML tag with the external id of the first score protein.
  1. A "Database" XML tag with a label indicating the protein search database type inferred from the external id accession number.
  1. A section with information on the first score protein.
  1. For each other protein hit with identical score to the first score

protein hit, a section with information on the other protein ("indistinguishable protein").

  1. For each peptide hit with identical external id to the first

score protein hit, a "PeptideItem" XML tag with information on the peptide.

comment:19 Changed 14 years ago by olle

(In [2980]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated to report description for first protein with specific score as protein name in a PRIDE XML userParam tag:

  1. Private method

void writePrideXmlFirstScoreProteinInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated to report description for first protein with specific score as protein name in a PRIDE XML userParam tag.

comment:20 Changed 14 years ago by olle

(In [2981]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by fix of critical bug:

  1. Public method void

doExport(File outCoreFile, ProgressReporter? progress) updated by fix of critical bug; wrong index was used in loop to retrieve list element.

comment:21 Changed 14 years ago by olle

Update of (experimental) design for exporting Hits data to a PRIDE XML file:

In the first version of the export routine, PRIDE XML cvParam data on search engine score or E-value for individual proteins or peptides will be reported according to the following rules:

  • Mascot data - Score will be reported for both proteins and peptides using cvParam with name = "Mascot score" and accession number = "PRIDE:0000069".
  • X!Tandem data - E-value will be reported for both proteins and peptides using cvParam with name = "expect" and accession number = "PRIDE:0000183".
  • OMSSA data - E-value will be reported for both proteins and peptides using cvParam with name = "OMSSA E-value" and accession number = "PRIDE:0000185".
  • PIUMS data - No value will be reported in the exported file, as no suitable PRIDE XML cvParam type is available. However, E-value will be reported for both proteins and peptides in debug output, for control purposes.

To simplify changes in reporting score/E-values in PRIDE XML cvParam tags, creation of the cvParam tag for a specific hit item will be put into a separate private method.

comment:22 Changed 14 years ago by olle

(In [2984]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated regarding report of search engine score or E-value for individual proteins or peptides as PRIDE XML cvParam tags:

  1. Private methods

void writePrideXmlFirstScoreProteinInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit), void writePrideXmlIndistinguishableProteinInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit), and void writePrideXmlPeptideInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated to call new private method String createScoreOrEValueCvParam(Hit currentHit) to create the cvParam tag for a specific hit item.

  1. New private method

String createScoreOrEValueCvParam(Hit currentHit) added. It creates a PRIDE XML cvParam for reporting score or E-value for protein or peptide. What data is reported depends on the search engine used to obtain the data, which is inferred from the score type in the hits query.

comment:23 Changed 14 years ago by olle

Update of (experimental) design for exporting Hits data to a PRIDE XML file:

Current version has the following bugs related to peptide reporting:

  • When checking whether a peptide hit has identical external id to the first score protein hit, the case that a peptide hit might have a comma-separated list of external id values is not covered, with the result that these peptides are never reported. The correct implementation is to check if any of the external id values in the list is identical to the first score protein hit, in which case data for the peptide should be reported.
  • On the other hand, currently when data is reported for a peptide, an entry is written for each external id for the peptide. Since peptides with more than one external id value were never reported in the current implementation, this had no effect, but should be changed so that for a first score protein, a single entry is reported for each peptide with an external id value equal to the first score protein hit.
  • A peptide sequence is reported as the description for the peptide hit, which is only correct for peptides without modifications. For modified peptides, the description string consists of the sequence string followed by a modification string, separated by a space. The sequence string to use should therefore be the part of the description up till the first space.

comment:24 Changed 14 years ago by olle

(In [2993]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by fixed bugs regarding reporting of peptide data:

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated in selecting what peptides should be reported for a first score protein hit. If a peptide has a comma-separated list of several external id values, it is reported if any of the external id values in the list equals the external id of the first score protein hit.

  1. Private method

void writePrideXmlPeptideInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated:

  1. For a first score protein, a single entry is now reported for each

peptide with an external id value equal to the first score protein hit, even if the peptide has a comma-separated list of several external id values.

  1. A peptide sequence string is now only the part of the description

string up till the first space, which will be correct also for modified peptides, where the description string consists of the sequence string followed by a modification string, separated by a space.

  1. In addition, a PRIDE XML Sequence tag is only written for a

peptide if a sequence string could be constructed. Previously an empty Sequence XML tag was written if no sequence could be determined.

comment:25 Changed 14 years ago by olle

(In [2995]) Refs #405. Changes made in changeset [2993] reverted, as changes to class/file plugins/SearchPIKEPlugin.java in plugin/ were erroneously committed to subversion.

comment:26 Changed 14 years ago by olle

(In [2996]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by fixed bugs regarding reporting of peptide data:

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated in selecting what peptides should be reported for a first score protein hit. If a peptide has a comma-separated list of several external id values, it is reported if any of the external id values in the list equals the external id of the first score protein hit.

  1. Private method

void writePrideXmlPeptideInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated:

  1. For a first score protein, a single entry is now reported for each

peptide with an external id value equal to the first score protein hit, even if the peptide has a comma-separated list of several external id values.

  1. A peptide sequence string is now only the part of the description

string up till the first space, which will be correct also for modified peptides, where the description string consists of the sequence string followed by a modification string, separated by a space.

  1. In addition, a PRIDE XML Sequence tag is only written for a

peptide if a sequence string could be constructed. Previously an empty Sequence XML tag was written if no sequence could be determined.

comment:27 Changed 14 years ago by olle

Update of (experimental) design for exporting Hits data to a PRIDE XML file:

  • For gel-based PRIDE XML export, indicated by a non-null gel external id string, a "TwoDimensionalIdentification" XML tag should be used for each first score protein hit, instead of a "GelFreeIdentification" XML tag.
  • Also, for gel-based PRIDE XML export, gel-related information (potential link to gel image, x- and y-coordinates for the spot), molecular weight, and pI values will be reported near the end of the "TwoDimensionalIdentification" XML tag.
  • The "Score" XML tag with combined search FDR value, will be moved to just before the gel-related information, near the end of the "TwoDimensionalIdentification" XML tag.

comment:28 Changed 14 years ago by olle

(In [3000]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated to report gel-related data for gel-based PRIDE XML export:

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated to call new private methods void writeProteinPeptideContainerStartElement( XMLCrudeWriterImpl xmlCrudeWriterImpl, String gelExternalIdStr, String localSampleIdStr) and void writeProteinPeptideContainerEndElement( XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit, String gelExternalIdStr, String localSampleIdStr) to write correct PRIDE XML tag for gel- and non-gel-based export.

  1. New private method

void writeProteinPeptideContainerStartElement( XMLCrudeWriterImpl xmlCrudeWriterImpl, String gelExternalIdStr, String localSampleIdStr) writes a "TwoDimensionalIdentification" XML start element for gel-based export, and a "GelFreeIdentification" XML start element for non-gel-based export.

  1. New private method

void writeProteinPeptideContainerEndElement( XMLCrudeWriterImpl xmlCrudeWriterImpl, String gelExternalIdStr, String localSampleIdStr) calls new private method void writeTwoDimensionalIdentificationEndPart( XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) for gel-based export, and void writeGelFreeIdentificationEndElement(XMLCrudeWriterImpl xmlCrudeWriterImpl) for non-gel-based export.

  1. New private method

void writeTwoDimensionalIdentificationEndPart( XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) writes gel-related data and a "TwoDimensionalIdentification" XML end element.

  1. New private convenience method

void writeXmlFloatTag(XMLCrudeWriterImpl xmlCrudeWriterImpl, String tagName, Float value) for an XML entry for a Float value. If the value is null, an empty string will be used as value.

comment:29 Changed 14 years ago by olle

(In [3008]) Refs #405. Added PRIDE 2.1 XML schema definition (XSD) file pride.xsd to conf/xsd/ in plugin/.

comment:30 Changed 14 years ago by olle

(In [3009]) Refs #405. Refs #290. Default icon settings file "default" in icons/ in client/servlet/ updated with entry for adding icon from icon directory www/static/img/icons/ to "PRIDE XML Export" button.

comment:31 Changed 14 years ago by olle

(In [3010]) Refs #405. Refs #287. PRIDE XML export updated for gel based export with option to append the gel external id to the optional output filename prefix:

  1. Class/file gui/form/FormFactory.java in client/servlet/ updated

in public method Form getPrideExportForm(Project project, String filenamePrefixDefault) by adding a check box in the output field set for selecting to append the gel external id to the optional output filename prefix. The check box is checked by default, and is coupled to new valid parameter VBoolean VGELEXTERNALIDPREFIX in class/file action/hit/CreatePrideExportJob.java in client/servlet/.

  1. Class/file action/hit/CreatePrideExportJob.java in

client/servlet/ updated with new valid parameter VBoolean VGELEXTERNALIDPREFIX. Its value is obtained from the form created by FormFactory? public method Form getPrideExportForm(Project project, String filenamePrefixDefault). If the flag and a gel external id has been chosen, the gel external id is appended to the originally selected filename prefix, and transferred to the created job.

  1. English dictionary file locale/en/dictionary in client/servlet/

updated with new entry for the string key for the check box.

comment:32 Changed 14 years ago by olle

(In [3011]) Refs #37. Refs #405. Class/file io/XMLValidatorErrorHandler.java in api/core/ updated to report line number when reporting a org.xml.sax.SAXParseException:

  1. Public method

void error(org.xml.sax.SAXParseException sAXParseException) updated to report line number when reporting a org.xml.sax.SAXParseException.

  1. Public method

void fatalError(org.xml.sax.SAXParseException sAXParseException) updated to report line number when reporting a org.xml.sax.SAXParseException.

  1. Public method

void warning(org.xml.sax.SAXParseException sAXParseException) updated to report line number when reporting a org.xml.sax.SAXParseException.

comment:33 Changed 14 years ago by olle

Experimental design for exporting Hits data to a PRIDE XML file will be updated to test if the created XML file is valid according to the PRIDE XML schema definition (XSD):

  • The created PRIDE XML file will be tested against the PRIDE XML schema definition (XSD).
  • If the file is valid, a note of this will be added as a debug log entry.
  • If the file is invalid, the job termination status will be reported as an error, but the created file will not be automatically removed. A note will be added as a debug log entry, and more details of the failed test will also be found in the debug log file.

comment:34 Changed 14 years ago by olle

(In [3013]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated to test if the created XML file is valid according to the PRIDE XML schema definition (XSD). Various additions/changes in created XML tags in order to create a valid PRIDE XML file:

  1. Public method

void doExport(Directory outCoreDir, String filename, ProgressReporter? progress) updated to test if the created XML file is valid according to the PRIDE XML schema definition (XSD).

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated by splitting info for first score protein into a start and an end part.

  1. Private method

ItemQuery?<Hit> createProteinHitQuery(Project theProject, File thePeakListFile, double cutoff, String gelExternalIdStr, String localSampleIdStr, boolean externalIdOrderingFlag) updated by performing FDR check earlier performed by createBasicHitQuery(...).

  1. Private method

ItemQuery?<Hit> createBasicHitQuery(Project theProject, File thePeakListFile, double cutoff, String gelExternalIdStr, String localSampleIdStr, boolean externalIdOrderingFlag) updated by removal of FDR check now performed by createProteinHitQuery(...).

  1. Private method

void writePrideXmlHeader(XMLCrudeWriterImpl xmlCrudeWriterImpl) updated by adding more info and XML tags to make the XSD happy.

  1. Private method

void writeTwoDimensionalIdentificationEndPart( XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated by removing score, gel, molecular weight, and pI info, in order to create a valid PRIDE XML file (moved to new private method writePrideXmlFirstScoreProteinEndInfo(...).

  1. New private method

void writePrideXmlFirstScoreProteinStartInfo( XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) added. It writes accession and database info.

  1. New private method

void writePrideXmlFirstScoreProteinEndInfo( XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) added. It writes score, gel, molecular weight, and pI info.

comment:35 Changed 14 years ago by olle

Discussion of problems regarding peptide modification management:

Mapping of entries for peptide modifications in different search engines to PRIDE XML cvParam tags is not trivial, for several reasons:

  • The number of managed modifications is large (100+ to 1000+).
  • The structure of the entries differ between search engines, e.g. fixed entries vs. combination of components, making a one-to-one mapping hard.
  • Modifications can be described at different level of detail.

In order to obtain a good mapping of entries, apart from information on the various controlled vocabularies used, knowledge of the chemistry behind the modifications and experimental practice is also important in some cases.

Support in the first experimental design for exporting Hits data to a PRIDE XML file will be very limited, but the intent is to improve it in the future:

  • The protein modification ontology (PSI-MOD) will be used for the peptide modifications (see http://psidev.sourceforge.net/mod/ for more information).
  • Mascot search engine will be used as test case.
  • Specifically, methionine oxidation will be used as test case.
  • Where a specific modification is applied to more than one amino acid of the same type in the peptide, e,g, oxidation of 3 methionine residues, a cvParam entry will be made for each amino acid.

comment:36 Changed 14 years ago by olle

(In [3014]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by adding first skeleton of peptide modification management:

  1. Private method

void writePrideXmlPeptideInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated by calling new private method writePeptideModificationCvParam(xmlCrudeWriterImpl, currentHit) to report optional peptide modification as PRIDE CV param.

  1. New private method

void writePeptideModificationCvParam(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) added. It reports optional peptide modification as PRIDE CV param. The modification information is taken from the part of the peptide description after the first space, and is interpreted according to what search engine was used.

  1. New private convenience method

void writeCvParam(XMLCrudeWriterImpl xmlCrudeWriterImpl, String cvParamStr) added. It writes a cvParam XML tag with the supplied string contents.

comment:37 Changed 14 years ago by olle

Update of (experimental) design for reporting peptide modifications when exporting Hits data to a PRIDE XML file:

  • In order to not lose any modification information when exporting to PRIDE XML, in addition to a possible cvParam XML tag, a userParam XML tag will be written with information on the search engine in the "name" part, and the extracted modification string in the "value" part. A modification userParam XML tag is written after any modification cvParam XML tag/tags, and can be used to check the validity of the latter.

comment:38 Changed 14 years ago by olle

(In [3021]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by reporting peptide modifications as a userParam XML tag:

  1. Private method

void writePeptideModificationCvParam(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated to report peptide modifications as a userParam XML tag with information on the search engine in the "name" part, and the extracted modification string in the "value" part. A modification userParam XML tag is written after any modification cvParam XML tag/tags.

  1. New private convenience method

void writeUserParam(XMLCrudeWriterImpl xmlCrudeWriterImpl, String userParamStr) added for writing a userParam XML tag. In its present form it is a simple wrapper that calls new private method void writeSingleTag(XMLCrudeWriterImpl xmlCrudeWriterImpl, String content) to write a single XML tag.

  1. Private convenience method

void writeCvParam(XMLCrudeWriterImpl xmlCrudeWriterImpl, String cvParamStr) updated to be a wrapper that calls new private method void writeSingleTag(XMLCrudeWriterImpl xmlCrudeWriterImpl, String content) to write a single XML tag.

  1. New private convenience method

void writeSingleTag(XMLCrudeWriterImpl xmlCrudeWriterImpl, String content) added. It writes a single XML tag with the given content string.

comment:39 Changed 14 years ago by olle

Update of (experimental) design for reporting peptide modifications when exporting Hits data to a PRIDE XML file:

  • In order to obtain information on e.g. fixed modifications, a SpectrumSearch database query should be made for the search hit, and the extracted data should be reported in cvParam and/or userParam XML tags.

comment:40 Changed 14 years ago by olle

(In [3022]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated when reporting peptide modifications, by performing a SpectrumSearch database query, in order to obtain information on e.g. fixed modifications. Previous code for peptide modification reporting has been refactored into several new methods:

  1. Private method

void writePeptideModificationCvParam(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) has its name changed to void writePeptideModificationInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) as it is now the entry method for peptide modification reporting, and both cvParam and userParam XML tags may be written. The old functionality is moved to new private method void writePeptideModificationInfoFromHitDescription(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit), which is called following a call to new private method void writePeptideModificationInfoFromSpectrumSearch(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit).

  1. New private method

void writePeptideModificationInfoFromSpectrumSearch(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) that writes PRIDE XML cvParam(s)/userParam(s) for a potential peptide modification, based on information taken from a database SpectrumSearch query for the hit.

  1. New private method

void writePeptideModificationInfoFromHitDescription(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) that writes PRIDE XML cvParam(s)/userParam(s) for a potential peptide modification, based on information taken from the hit description.

  1. New private convenience method

String addComponentString(String baseString, String stringToAdd) that appends a new string to an input base string after an optional separator string, in case the base string is not empty.

comment:41 Changed 14 years ago by olle

(In [3023]) Refs #405. Refs #287. The PRIDE XML version number displayed in the PRIDE XML export form header title is now taken from the same source as the version number written in the TITLE XML block of the PRIDE XML file. A single source is therefore now used for the PRIDE XML version number, and it need not be referenced in the dictionary files. This is an update to the changes made in changeset [2976].

  1. Class/file plugins/PrideExportPlugin.java in plugin/ updated

by changing string constant PRIDE_XML_VERSION_STR from a private environment variable to a public static variable.

  1. Class/file action/hit/PrideExport.java in client/servlet/

updated in protected method void runMe() by getting PRIDE XML version number from static variable PrideExportPlugin.PRIDE_XML_VERSION_STR.

  1. English dictionary file locale/en/dictionary in client/servlet/

updated with new string key entry and removal of references to the PRIDE XML version number in string keys.

comment:42 Changed 14 years ago by olle

Update of (experimental) design for reporting peptide modifications by performing a SpectrumSearch database query:

  • The code added in changeset [3022] only checks the first query hits and modifications, if several exists. This needs to be updated to include all items.
  • The modification types "fixed", "substitution", and "variable" are mutually exclusive, so there is no need to support a comma-separated list for this information. A modification is of type "variable" if it is neither "fixed" nor "substitution".
  • For modification types "fixed" and "variable", PRIDE cvParam XML tags can be written.
  • The modification information from a SpectrumSearch database query will be identical for all peptide items from searches for the same peak list set/spectrum file. For the moment this information will still be written for each peptide item.
  • The userParam information may be regarded as unnecessary in the future, as most information are now supplied in cvParam XML tags, which have the benefit of being machine readable, as they are coupled to a specified ontology. For the moment the modification userParam XML tags will be kept as a check, as they sometimes contain more information than the cvParam XML tags.

comment:43 Changed 14 years ago by olle

(In [3031]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated for reporting peptide modifications by performing a SpectrumSearch database query, in order to obtain information on e.g. fixed modifications:

  1. Private method

void writePeptideModificationInfoFromSpectrumSearch(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated:

  1. If several query hits or modifications exist, all items are

checked, not just the first.

  1. Code related to database information in the SpectrumSearch

query result has been removed, to be addressed in another method.

  1. The modification types "fixed", "substitution", and "variable"

are now treated as mutually exclusive. A modification is of type "variable" if it is neither "fixed" nor "substitution".

  1. For modification types "fixed" and "variable", PRIDE cvParam XML tags are written.

comment:44 Changed 14 years ago by olle

(In [3032]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated to obtain search database information from SpectrumSearch query, if possible:

  1. Private method

void writePrideXmlFirstScoreProteinStartInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated to first try to obtain search database information from SpectrumSearch query by calling new private method String fetchSearchDatabaseInfoFromSpectrumSearch(Hit currentHit). If the call does not supply any search database information, the latter is obtained from the accession number.

  1. New private method

String fetchSearchDatabaseInfoFromSpectrumSearch(Hit currentHit) added. It performs a SpectrumSearch query, in order to obtain search database information.

comment:45 Changed 14 years ago by olle

Update of (experimental) design for non-gel PRIDE XML export:

  • For non-gel export a local sample id is selected instead of a gel external id, so it is natural that the option of appending the gel external id to the export filename prefix is exchanged for appending the local sample id to the prefix. The check box legend for the extra prefix option is changed to cover both gel based and non-gel based export.

comment:46 Changed 14 years ago by olle

(In [3035]) Refs #405. Refs #287. PRIDE XML export is updated to allow a local sample id to be appended to the export filename prefix in case of non-gel based export:

  1. Class/file action/hit/CreatePrideExportJob.java in

client/servlet/ updated for appending an extra id to the filename prefix:

  1. Name of valid parameter VBoolean VGELEXTERNALIDPREFIX changed

to VBoolean VEXTRAPREFIX to reflect that the extra prefix may be either a gel external id or a local sample id.

  1. Protected method void runMe() updated to use either a gel

external id or a local sample id as optional extra prefix, depending on whether the export is gel based or non-gel based. Relevant variable names changed to not refer specifically to a gel external id.

  1. Class/file gui/form/FormFactory.java in client/servlet/ updated

in public method Form getPrideExportForm(Project project, String filenamePrefixDefault) by change of variable name for check box indicating extra id prefix, and exchanging check box label key string AppendGelExternalIdToPrefix for the more appropriate AppendExtraIdToPrefix.

  1. English dictionary file locale/en/dictionary in client/servlet/

updated by exchanging check box string key AppendGelExternalIdToPrefix for AppendExtraIdToPrefix and changing the text to cover both gel based and non-gel based PRIDE XML export.

comment:47 Changed 14 years ago by olle

Update of (experimental) design for reporting peptide modifications by performing a SpectrumSearch database query:

  • Fixed modification cvParam and userParam XML tags with information from a SpectrumSearch database query should only be written for a peptide whose sequence contains the modified amino acid.
  • Variable modification cvParam and userParam XML tags with information from a SpectrumSearch database query should only be written for a peptide whose description indicates that the peptide is modified.

comment:48 Changed 14 years ago by olle

(In [3043]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated regarding reporting peptide modifications by performing a SpectrumSearch database query. Fixed modification cvParam and userParam XML tags with information from a SpectrumSearch database query are now only written for a peptide whose sequence contains the modified amino acid. Variable modification cvParam and userParam XML tags with information from a SpectrumSearch database query are now only written for a peptide whose description indicates that the peptide is modified:

  1. Private method

void writePeptideModificationInfoFromSpectrumSearch(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated to write modification PRIDE cvParam and userParam XML tags for fixed modification if peptide contains affected amino acid, and to write modification PRIDE cvParam and userParam XML tags for variable modification if peptide description supports it. Calls new private methods String fetchPeptideSequenceFromHitDescription(Hit currentHit) and List<String> fetchPeptideModificationTargetListFromHitDescription(Hit currentHit).

  1. Private method

void writePeptideModificationInfoFromHitDescription(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated to call new private method String fetchPeptideSearchEngine(Hit currentHit) to obtain the search engine type.

  1. New private convenience method

String fetchPeptideSequenceFromHitDescription(Hit currentHit) added for obtaining the peptide sequence from the hit description.

  1. New private convenience method

List<String> fetchPeptideModificationTargetListFromHitDescription(Hit currentHit) added for obtaining a list of modification target strings (one-letter codes for modified amino acids) from the hit description. It calls new private method String fetchPeptideSearchEngine(Hit currentHit) to obtain the search engine type, and currently only supports retrieval of modification target strings from Mascot searches.

  1. New private convenience method

String fetchPeptideSearchEngine(Hit currentHit) added for obtaining the search engine type.

comment:49 Changed 14 years ago by olle

Summary of current (experimental) design for non-gel PRIDE XML export:

  • Hit queries will be filtered to only return hits corresponding to the current local sample id and spectrum file (already implemented).
  • A "GelFreeIdentification" XML tag should be used for each first score protein hit, instead of a "TwoDimensionalIdentification" XML tag, which is used for gel-based PRIDE XML export.

comment:50 Changed 14 years ago by olle

Update of (experimental) design for non-gel PRIDE XML export:

  • No filtering related to the combined search FDR of the hit will be performed. Instead a protein hit with score type "Proteios Protein" and that is primary combined will be denoted as a "first score protein" hit.
  • For a "first score protein" hit, a protein for a combined hit whose primary hit is the first score protein hit, will be denoted as an "indistinguishable protein".

comment:51 Changed 14 years ago by olle

(In [3070]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated regarding selection of "first score protein" and "indistinguishable protein" for non-gel based PRIDE XML export. Also some general additions:

  1. Private method

ItemQuery?<Hit> createProteinHitQuery(Project theProject, File thePeakListFile, double cutoff, String gelExternalIdStr, String localSampleIdStr, boolean externalIdOrderingFlag) updated for non-gel based PRIDE XML export to not filter protein hit queries for the combined search FDR, or whether the protein is primary combined.

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated for non-gel based PRIDE XML export:

  1. A protein hit with score type "Proteios Protein" and that is

primary combined will be denoted as a "first score protein" hit.

  1. For a "first score protein" hit, a protein for a combined hit

whose primary hit is the first score protein hit, will be denoted as an "indistinguishable protein".

  1. Private method

void writePrideXmlIndistinguishableProteinInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated to write a PRIDE XML userParam with the protein hit description for an indistinguishable protein. The userParam is of the same type as that written for a "first score" protein. This addition concerns both gel based and non-gel based PRIDE XML export.

  1. Private method

String fetchSearchDatabaseInfoFromSpectrumSearch(Hit currentHit) updated to return null if no search file could be obtained for the hit, instead of throwing a NullPointerException.

comment:52 Changed 14 years ago by olle

(In [3071]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by reporting accession number in cvParam for indistinguishable protein:

  1. Private method

void writePrideXmlIndistinguishableProteinInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated by reporting accession number in cvParam for indistinguishable protein.

comment:53 Changed 14 years ago by olle

Update of (experimental) design for PRIDE XML export:

  • An "additional" XML block should be added just before the end of the "Experiment" XML block, containing a PRIDE cvParam XML tag with information on the XML generation software, which will be reported as Proteios SE, with version and build number.

comment:54 Changed 14 years ago by olle

(In [3072]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated by writing an "additional" XML block just before the end of the "Experiment" XML block, containing a PRIDE cvParam XML tag with information on the XML generation software.

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated by calling new private method void writePrideXmlGeneratorInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl) to write an "additional" XML block just before the end of the "Experiment" XML block, containing a PRIDE cvParam XML tag with information on the XML generation software.

  1. New private void

writePrideXmlGeneratorInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl) added. It writea an "additional" XML block containing a PRIDE cvParam XML tag with information on the XML generation software, which is reported as Proteios SE, with version and build number.

comment:55 Changed 14 years ago by olle

Update of (experimental) design for reporting peptides for non-gel PRIDE XML export:

  • For a "first score protein" hit, only peptides with same external id as the first score protein, and that are primary combined (new added condition), will be reported as peptide items.
  • For a primary combined peptide hit, a non-primary peptide hit whose primary hit is the former, will represent result for an alternative search engine, and will be written as a search result cvParam for the original peptide hit.

comment:56 Changed 14 years ago by olle

(In [3073]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated regarding report of peptide items for non-gel based PRIDE XML export. Only primary combined peptides will be reported as separate peptide items. A non-primary peptide hit will represent result for an alternative search engine for a primary combined peptide hit, and will be written as a search result cvParam for the latter. Also removal of some debug output, in order to decrease the size of the log file:

  1. Public method

void doExport(File outCoreFile, ProgressReporter? progress) updated for non-gel export by only reporting peptide hits that are primary combined as separate peptide items. When calling updated private method void writePrideXmlPeptideInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit, ItemResultList?<Hit> peptideHitList) the peptide hit list is given as argument, indicating that the latter method should list non-primary peptide hits whose primary hit is the current peptide item hit, as an alternative search result cvParam for the latter.

  1. Private method

void writePrideXmlPeptideInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit, ItemResultList?<Hit> peptideHitList) updated with new argument ItemResultList<Hit> peptideHitList. If the latter differs from null, non-primary peptide hits whose primary hit is the current peptide item hit, will be reported as an alternative search result cvParam for the latter.

comment:57 Changed 14 years ago by Fredrik Levander

(In [3074]) Refs #405. Writing score types that are not in the Pride CV as userParams

comment:58 Changed 14 years ago by olle

Update of (experimental) design for PRIDE XML export:

  • The value of the "SearchEngine" XML tag for a first score protein hit is normally set to the score type for the hit, but when the latter equals "Proteios Protein", it should be exchanged for the more informative "Proteios SE, combination of Mascot, X!Tandem and k-score".

comment:59 Changed 14 years ago by olle

(In [3075]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated when reporting the value of the "SearchEngine" XML tag for a first score protein hit. If the score type for the hit equals "Proteios Protein", the value reported should be "Proteios SE, combination of Mascot, X!Tandem and k-score":

  1. Private method

void writePrideXmlFirstScoreProteinEndInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated when reporting the value of the "SearchEngine" XML tag for a first score protein hit. If the score type for the hit equals "Proteios Protein", the value reported should be "Proteios SE, combination of Mascot, X!Tandem and k-score".

comment:60 Changed 14 years ago by olle

Update of (experimental) design for PRIDE XML export, when reporting a value of the "SearchEngine" XML tag for a first score protein hit:

  • The value of the "SearchEngine" XML tag for a first score protein hit is normally set to the score type for the hit, but when the latter equals "Proteios Protein", it should be exchanged for a string reporting that it was produced by Proteios SE, and what search engines were combined. The latter list should be obtained by a database query, and therefore only include search engines actually used.

comment:61 Changed 14 years ago by olle

(In [3076]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated when reporting the value of the "SearchEngine" XML tag for a first score protein hit. If the score type for the hit equals "Proteios Protein", it is reported that it was produced by Proteios SE, and what search engines were combined. The latter list is obtained by a database query, and therefore only includes search engines actually used.

  1. Private method

void writePrideXmlFirstScoreProteinEndInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit) updated when reporting the value of the "SearchEngine" XML tag for a first score protein hit. If the score type for the hit equals "Proteios Protein", , it is reported that it was produced by Proteios SE, and what search engines were combined. The latter list is obtained by calling new private method List<String> fetchUsedScoreTypeList().

  1. New private method List<String> fetchUsedScoreTypeList() added.

It fetches a list of used score types by performing a database query. The list only includes one entry for each search engine, e.g. "Mascot peptide score" and "Mascot protein score" are reported as "Mascot". Unique score type "Proteios Protein" is skipped, and does not lead to an entry in the list.

comment:62 Changed 14 years ago by olle

Update of (experimental) design for PRIDE XML export:

  • When a PRIDE XML file could be generated, but is not valid according to the PRIDE XSD (XML Schema Definition), the export job should still be considered successful, but a warning message should be appended to the job success message. This decision is based on the fact that the failure to pass the XSD validation test often is related to missing input data in XML tags, that optionally could be added later. Previously a job that created a non-valid export file resulted in the job completion status being set to "ERROR", which might indicate that the file generation was unexpectedly interrupted.

comment:63 Changed 14 years ago by olle

(In [3077]) Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated to set the job completion status to "DONE" instead of "ERROR" for an export job where a PRIDE XML file could be generated, but is not valid according to the PRIDE XSD (XML Schema Definition). However, in the latter case a warning message should be appended to the job success message.

  1. New private instance variable String warningMessage with

protected accessor methods added. Its default value is null.

  1. Public method

void doExport(Directory outCoreDir, String filename, ProgressReporter? progress) updated to not throw a BaseException when validation of the generated PRIDE XML file fails, but set a warning message informing of the failure.

  1. Public method

void run(Request request, Response response, ProgressReporter? progress) updated to check if an optional warning message exists, and if so append it to the job success message.

comment:64 Changed 14 years ago by Fredrik Levander

(In [3080]) Refs #405. Added XSD for pride protocol element

comment:65 Changed 14 years ago by olle

Update of (experimental) design for PRIDE XML export:

  • The user should have the option of selecting an XML file containing a protocol XML block of a PRIDE XML file. If a protocol file is selected, the protocol XML block will be copied to the exported PRIDE XML file, otherwise a dummy protocol XML block will be used (the current case).

comment:66 Changed 14 years ago by olle

Discussion of implications for code design induced by allowing selection of a PRIDE XML protocol file:

  • The single form for setting PRIDE XML export parameter values need to be supplemented by a second form for selecting the optional PRIDE XML protocol file. Addition of a file selection form is a standard scenario, implemented by two extra classes, that sets parameters for the file selection and retrieves the selected file, respectively (the actual file selection is performed by ViewActiveDirectory.class).
  • Use of several classes in the chain between the first form and the class creating the export job, requires that parameter values from the first form has to be transferred as session attributes, forcing additional changes to be made in the old classes.
  • Copying of the protocol XML block from the PRIDE XML protocol file to the exported PRIDE XML file can be performed analogously to copying the mzData XML block. However, the current method performing the latter task was designed specifically for copying an mzData XMl block, and therefore needs to be rewritten to copy a general XML block.
  • A selected PRIDE XML protocol file needs to be validated against the PRIDE protocol XML Schema Definition (XSD) before use. XSD validation is already performed for the created PRIDE XML export file against the PRIDE XSD, but in order to avoid duplicated code, this code segment should be put into a separate method, where XML and XSD files can be chosen freely.

In summary, all components needed for optional copying of the protocol XML block from a protocol XML file exist, but the number of code changes will still be numerous.

comment:67 Changed 14 years ago by olle

(In [3082]) Refs #405. Refs #287. Refs #290. PRIDE XML export updated to allow selection of an optional PRIDE XML protocol file from which to copy the protocol XML block from:

  1. Class action/hit/PrideExport.java in client/servlet/ updated

by forwarding action to new class SelectPrideProtocolFileStep1a instead of CreatePrideExportJob. Name of "Next" button updated.

  1. New class/file action/hit/SelectPrideProtocolFileStep1a.java

in client/servlet/ added. It retrieves values from valid parameters and stores them as session attributes, after which it forwards the action to class ViewActiveDirectory for optional selection of a PRIDE protocol file.

  1. New class/file action/hit/SelectPrideProtocolFileStep1b.java

in client/servlet/ added. It retrieves the id for an optional PRIDE protocol file from a valid parameter and stores it as session attribute, after which it forwards the action to class CreatePrideExportJob.

  1. Class/file action/hit/CreatePrideExportJob.java in

client/servlet/ updated by retrieving parameter values from session parameters. Also transfer value of optional id for PRIDE protocol file to created job.

  1. Class/file plugins/PrideExportPlugin.java in plugin/ updated.
  2. Public method

void run(Request request, Response response, ProgressReporter? progress) update3d to retrieve optional PRIDE protocol XML file.

  1. Private method

void writePrideXmlHeader(XMLCrudeWriterImpl xmlCrudeWriterImpl) updated to check if a PRIDE protocol XML file is specified, and if its is valid according to the PRIDE protocol XSD, copies its protocol XML block to the created PRIDE XML file.

  1. Private convenience method

void copyMzDataXMLBlocks(XMLCrudeWriterImpl xmlCrudeWriterImpl, Integer aPeakListFileId) exchanged for more general convenience method void copySelectedXMLBlocks(XMLCrudeWriterImpl xmlCrudeWriterImpl, Integer sourceFileId, String selectedXmlTagName) for copying a specified XML block from an XML file.

  1. New private convenience methods

boolean xmlFileValidation(Integer xmlFileId, String xsdFilePathToUse, String xmlTypeName) and boolean xmlFileValidation(File xmlFile, String xsdFilePathToUse, String xmlTypeName) added, for checking if an XML file item is valid according to a specified XML Schema Definition (XSD) file.

  1. English dictionary file locale/en/dictionary in client/servlet/

updated with new entries for various string keys. Warning message regarding experimental status of PRIDE XML export removed.

  1. Default icon settings file "default" in icons/ in client/servlet/

updated with icon assignments for various string keys.

comment:68 Changed 14 years ago by olle

(In [3084]) Refs #405. Class/file gui/form/FormFactory.java in client/servlet/ updated for PRIDE XML export form by placing selections for output filename after filter selections, in order to increase similarity with other forms for the Hits table:

  1. Public method

Form getPrideExportForm(Project project, String filenamePrefixDefault) updated by placing field set for output filename after field set for filter selections.

comment:69 Changed 14 years ago by olle

(In [7]) Proteios wiki page Working With Hits Reports updated with new section "Exporting hits data to a PRIDE XML file", with link to new wiki page PRIDE 2.1 XML Export.

comment:70 Changed 14 years ago by olle

(In [2]) Proteios wiki page PRIDE 2.1 XML Export updated with new section "Overview of the Generated PRIDE XML Export File" with link to new wiki page Overview of the Generated PRIDE XML Export File.

comment:71 Changed 14 years ago by olle

(In [4]) Wiki page List of Proteios Wiki Pages updated in section "Links to Proteios Wiki Pages" by adding link to wiki page Overview of the Generated PRIDE XML Export File to the list.

comment:72 Changed 14 years ago by olle

(In [3087]) Refs #405. Class/file action/hit/PrideExport.java in client/servlet/ updated with minor changes in layout of main form for PRIDE XML export:

  1. Protected method void runMe() updated:
  2. Title bar exchanged for layout title.
  3. Display of PRIDE XML version number moved from title to instruction text.

comment:73 Changed 14 years ago by olle

(In [3]) Proteios wiki page PRIDE 2.1 XML Export updated in section "How to Export Hits Data to PRIDE XML" regarding menu items.

comment:74 Changed 14 years ago by olle

Resolution: fixed
Status: assignedclosed

Ticket closed as support for exporting hits table data to a PRIDE 2.1 XML file has been added. The ticket may be reopened for updates of the functionality, or a new ticket created.

comment:75 Changed 14 years ago by olle

(In [3307]) Refs #583. Refs #405. Class/file plugins/PrideExportPlugin.java in plugin/ updated to re-use DbControl items as much as possible:

  1. Public method

void run(Request request, Response response, ProgressReporter progress) is updated to create a new DbControl, which is given as argument when calling other methods.

  1. The following methods were updated to take a DbControl item

as first argument, and to use this instead of creating a new DbControl item:

  1. Public method void doExport(Directory outCoreDir, String filename, ...). A new DbControl item is created after commit()

has been called for the initial DbControl.

  1. Public method void doExport(File outCoreFile, ProgressReporter progress).
  2. Private method void writePrideXmlHeader(XMLCrudeWriterImpl xmlCrudeWriterImpl).
  3. Private method void writePrideXmlFirstScoreProteinStartInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit).
  4. Private method void writePrideXmlFirstScoreProteinEndInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit).
  5. Private method List<String> fetchUsedScoreTypeList().
  6. Private method void writePrideXmlPeptideInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit, ...).
  7. Private method void writePeptideModificationInfo(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit).
  8. Private method void writePeptideModificationInfoFromSpectrumSearch(XMLCrudeWriterImpl xmlCrudeWriterImpl, Hit currentHit).
  9. Private method String fetchSearchDatabaseInfoFromSpectrumSearch(Hit currentHit).
  10. Private method void copySelectedXMLBlocks(XMLCrudeWriterImpl xmlCrudeWriterImpl, ...).
  11. Private method boolean xmlFileValidation(Integer xmlFileId, String xsdFilePathToUse, ...).

comment:76 Changed 14 years ago by Fredrik Levander

(In [3308]) Refs #405. Clarified non-gel export filtering in form.

comment:77 Changed 13 years ago by Fredrik Levander

(In [3741]) Refs #694, refs #405. Setting title of PRIDE experiments to something defined by the user.

comment:78 Changed 13 years ago by Fredrik Levander

(In [3742]) Refs #694, refs #405. Database title set to something if it couldn't get parsed.

comment:79 Changed 13 years ago by Fredrik Levander

(In [3847]) Refs #701. Refs #405. Not writing gel element anymore, since PRIDE doesn't want it if it is empty.

comment:80 Changed 13 years ago by Fredrik Levander

(In [3848]) Refs #701. Refs #405. Only exporting PRIDE files for the selected sample or gel.

comment:81 Changed 12 years ago by Fredrik Levander

(In [3876]) Refs #701. Refs #405. Only exporting PRIDE files for the selected sample or gel.

comment:82 Changed 12 years ago by Fredrik Levander

(In [3877]) Refs #701. Refs #405. Corrected gel id restriction

comment:83 Changed 12 years ago by Fredrik Levander

(In [4106]) Refs #405. Corrected writing of indistinguishable protein lists to follow schema.

comment:84 Changed 12 years ago by Fredrik Levander

(In [4107]) Refs #405. Writing user param Protein name after cvParams for indistinguishable proteins.

comment:85 Changed 10 years ago by olle

(In [4472]) Refs #805. Refs #405. Support for simplifying ProteomeXchange submission by creating a ProteomeXchange Submission Summary *.px file updated in default file mappings for result and peaklist files:

File types written in italics are ProteomeXchange submission file types.

  • A result file is mapped to all files in the Hits table, that are related to the peaklist file used to create the result file. In order to find the peaklist file used to create a PRIDE XML file, the latter should have an annotation to the name of the peaklist file.
  • A peaklist file is mapped to all raw files it is associated to via a sample, where the base name of the raw file equals that of the peaklist file. This will prevent a peaklist file to be mapped to all raw files that are technical replicates of a sample, but only to the raw file used to create it.

In order to simplify the necessary database queries, the following new public static methods are added:

  1. Class/file core/Hit.java in api/core/:

    List<File> getUniqueIdentificationResultFilesForPeakListFile(Project project, File peakListFile, DbControl dc)

SQL query XML file conf/common-queries.xml in api/core/ is updated with new query with id "GET_UNIQUE_IDENTIFICATIONRESULTFILES_IN_HITS_FOR_PEAKLISTFILE_IN_PROJECT".

Update of class/file plugins/PrideExportPlugin.java in plugin/:

  1. Public method void doExport(DbControl dc, File outCoreFile, ProgressReporter progress) is updated to annotate the created PRIDE XML file with the filename of the peaklist file.

Update of class/file plugins/ProteomeXchangeExportPlugin.java in plugin/:

  1. Private method HashMap<Integer,List<Integer>> createFileIdFileMappingListHashMap(DbControl dc, HashMap<Integer,Integer> fileIdMapIndexHashMap) is updated by mapping a result file to all files in the Hits table, that are related to the peaklist file used to create the result file, and mapping a peaklist file to all raw files it is associated to via a sample, where the base name of the raw file equals the peaklist file.
  1. New private convenience method String fetchBaseFilename(File file) added. It returns the base filename of a file (filename without file extension).

comment:86 Changed 10 years ago by olle

Note: Due to an error in the SVN commit message, changeset [4472] was referenced to Ticket #406 (PKL file reader) instead of Ticket #405 (Support export for publication). The error has been corrected in the Trac comments, but remains in the SVN commit message.

Note: See TracTickets for help on using tickets.