Opened 14 years ago

Closed 13 years ago

Last modified 10 years ago

#534 closed (fixed)

Mascot GUI

Reported by: Fredrik Levander Owned by: olle
Milestone: Proteios SE 2.8 Keywords:
Cc:

Description

Although Mascot search results can be imported in batch (#456), it would be good to also allow batch searching in Mascot from Proteios. Functionality could be implemented as for X!Tandem and OMSSA searching. Note that the Mascot server might use user authentication.

Change History (36)

comment:1 Changed 14 years ago by olle

Status: newassigned

Ticket accepted.

comment:2 Changed 14 years ago by olle

Traceability note: The ticket referred to in the ticket description is #456 (Retrieval of Mascot XML results from Mascot server).

comment:3 Changed 14 years ago by olle

Traceability note:

  • Starting X!Tandem searches from Proteios was introduced in Ticket #362 (Run X! Tandem from Proteios).
  • Starting OMSSA searches from Proteios was introduced in Ticket #471 (Searching OMSSA from Proteios SE).

comment:4 Changed 14 years ago by olle

Design discussion:

Mascot allows three types of searches, each having a specialized search web form:

  1. Sequence Query.
  2. Peptide Mass Fingerprint.
  3. MS/MS Ions Search.

The first version of support for starting Mascot searches from Proteios will be confined to MS/MS Ions Search.

comment:5 Changed 14 years ago by olle

Design update:

  • In compliance with Ticket #566 (Plug-ins depending on external resources should have default estimated execution time set to SHORT instead of SHORTEST), a created job item for a Mascot search should have estimated execution time set to next fastest, SHORT.

comment:6 Changed 14 years ago by olle

Traceability note:

  • Ticket #575 (Bugs in classes for viewing and saving !XTandem and OMSSA parameter sets) was created to fix bugs in the !XTandem and OMSSA view and save classes, that were discovered when working on this ticket.

comment:7 Changed 14 years ago by olle

Reference note:

comment:8 Changed 14 years ago by olle

Outline of initial design for support of Mascot search in Proteios.

  • The design will be based on that used for support of X!Tandem and OMSSA searches in Proteios, see Ticket #362 (Run X! Tandem from Proteios), Ticket #363 (A GUI for selecting search parameters for X!Tandem searches), and Ticket #471 (Searching OMSSA from Proteios SE).
  • Input values will be stored in an XML file, as for X!Tandem and OMSSA input.
  • Initial support will concern MS/MS Ions Search, but in order to simplify future extension, input and storage of data for Peptide Mass Fingerprint and Sequence Query will also be supported.
  • Three different default input files will be used, mascot_default_ms_ms_ions_search.xml. mascot_default_peptide_mass_fingerprint.xml, and mascot_default_sequence_query.xml. They have the same XML tags, but differ in some tag values.
  • The Mascot properties template file mascot.properties.in and Mascot properties file mascot.properties were introduced in Ticket #456 (Retrieval of Mascot XML results from Mascot server), and the installation and update scripts therefore need not be updated.
  • The Mascot properties template file mascot.properties.in will be extended with more parameters, which must be added to an active Mascot properties file mascot.properties, for a Mascot search to be possible from Proteios.

comment:9 Changed 14 years ago by olle

Design update:

  • The Mascot GUI should obtain standard alternatives for search parameter values from the used Mascot web search site.

comment:10 Changed 14 years ago by olle

(In [3294]) Refs #534. Api/core updated with new core classes to support Mascot parameter storage in file items:

  1. New class/file core/MascotParameterSetStorage.java with

data class/file core/data/MascotParameterSetStorageData.java in api/core/ added for storing Mascot parameter data in a related parameter file item in XML file format.

  1. Classes/files core/Item.java and core/Install.java in

api/core/ updated with the new MascotParameterSetStorage item.

  1. New class/file io/MascotParameterSet.java in api/core/

with instance variables and public accessor methods for fields corresponding to variables in a Mascot input XML file.

  1. New interface/file io/MascotParameterFileUtilInterface.java

in api/core for obtaining a MascotParameterSet from a Mascot input XML file.

  1. New class/file io/MascotParameterFileUtil.java

in api/core/ with public methods for importing data from a Mascot input XML file to a MascotParameterSet, and exporting a MascotParameterSet to a Mascot input XML file.

  1. New class/file io/MascotParameterSetOptionsUtil.java

in api/core/ added. It contains public methods for obtaining string lists with standard alternatives for search parameter values from the used Mascot web search site. If an option set is currently not supported for a search mode, null is returned.

  1. New class/file props/MascotParameterFileNameReader.java

in api/core/ added to read the name of the parameter file item related to a MascotParameterSetStorage item.

  1. New class/file props/MascotParameterFileSearchTypeReader.java

in api/core/ added to read the Mascot search type of the parameter file item related to a MascotParameterSetStorage item.

  1. Ne class/file MascotPropertiesFile2.java in api/core/ added.

It loads the mascot.properties file and gives access to the settings in the latter.

comment:11 Changed 14 years ago by olle

(In [3295]) Refs #534. Added new source directory action/mascot in client/servlet/ for action classes/files related to Mascot parameter set creation and editing, as well as performing Mascot searches from Proteios.

comment:12 Changed 14 years ago by olle

(In [3296]) Refs #534. Configuration and template files for Mascot search added or updated:

  1. Mascot search properties template file

conf/mascot.properties.in in client/servlet/ updated with settings related to Mascot search. Mascot search properties file conf/mascot.properties needs to be updated with these settings.

  1. Mascot search default parameter set files

conf/mascot_default_ms_ms_ions_search.xml, conf/mascot_default_peptide_mass_fingerprint.xml, and conf/mascot_default_sequence_query.xml in client/servlet/ added. They include an extra XML tag for search type information.

  1. Outermost ant build file build.xml updated to copy

Mascot search default parameter set files conf/mascot_default_ms_ms_ions_search.xml, conf/mascot_default_peptide_mass_fingerprint.xml, and conf/mascot_default_sequence_query.xml in client/servlet/ to distribution directory www/WEB-INF/classes/.

comment:13 Changed 14 years ago by olle

(In [3297]) Refs #534. Refs #356. Refs #287. First revision of Mascot search in Proteios via locally installed search engine.

  1. Class/file gui/table/TableFactory.java in client/servlet/

updated in public method void useColumnsFromClass() by obtaining name and seacrh type of parameter file for MascotParameterSetStorage item.

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

updated with new methods related to forms for Mascot search:

  1. Public method `Form getNewMascotParameterSetStorageForm(

MascotParameterSetStorage? mascotParameterSetStorage)`.

  1. Public method `Form getSaveAsMascotParameterSetStorageForm(

MascotParameterSetStorage? mascotParameterSetStorage, MascotParameterSet? mascotParameterSet)`.

  1. Public method `Fieldset addMascotParameterSetToFieldset(

MascotParameterSet? mascotParameterSet, Fieldset fs, boolean fieldsHidden, boolean fieldsDisabled)`.

  1. Public method Form getMascotSearchUserDataInputForm(User user).
  2. Public method `Form getMascotParameterSetForm(

MascotParameterSet? mascotParameterSet, List<Option> enzymeOptionList, List<Option> missedCleavagesOptionList, List<Option> sequenceLibraryOptionList, List<Option> speciesOptionList, List<Option> fixedModsOptionList, List<Option> variableModsOptionList, List<Option> quantitationOptionList, List<Option> peptideTolUnitOptionList, List<Option> peptideIsotopeErrorOptionList, List<Option> msMsTolUnitOptionList, List<Option> peptideChargeOptionList, List<Option> dataFormatOptionList, List<Option> instrumentOptionList, List<Option> reportTopOptionList)`.

  1. Class/file gui/MainMenu.java in client/servlet/ updated by

adding new Mascot menu item to the search setup node under the View menu.

  1. New core extension class/file

action/file/UseSpectrumFileForMascotSearchExtension.java in client/servlet/ added, for creating Mascot search jobs for selected spectrum files.

  1. New action classes/files added to action/mascot/ in

client/servlet/ for creating, viewing, and editing Mascot parameter sets and starting Mascot search jobs from them:

  1. AddMascotParameterSetStorage?.java.
  2. ListMascotParameterSetStorage?.java.
  3. NewMascotParameterSetStorage?.java.
  4. SaveMascotParameterSetStorage?.java.
  5. SearchMascot?.java.
  6. SelectMascotParameterFileStep1a.java.
  7. SelectMascotParameterFileStep1b.java.
  8. SelectMascotParameterSetStorage?.java.
  9. ViewActiveMascotParameterFile?.java.
  10. ViewActiveMascotParameterSetStorage?.java.
  11. ViewMascotParameterFile?.java.
  12. ViewMascotParameterSetStorage?.java.
  1. New plugin class/file plugins/SearchMascotPlugin.java in

plugin/ for executing a Mascot search via web interface and trying to upload the output XML file into Proteios.

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

updated with new entries for various string keys.

comment:14 Changed 13 years ago by olle

(In [3298]) Refs #534. Class/file plugins/SearchMascotPlugin.java in plugin/ updated to transfer error message from Mascot server to job message when error in search settings is detected:

  1. Private method

void mascotSearchViaWebInterface(Request request, Response response, ...) updated to transfer error message from Mascot server to job message when error in search settings is detected. Instruction from Mascot server to press back button in web browser has been omitted, as it is recommended to restart the job from scratch in Proteios.

comment:15 Changed 13 years ago by olle

(In [3299]) Refs #534. Class/file action/mascot/SelectMascotParameterSetStorage.java in client/servlet/ updated by removing extension support (the Proteios extension to use for starting a Mascot search is class/file action/file/UseSpectrumFileForMascotSearchExtension.java in client/servlet/):

  1. Class definition for SelectMascotParameterSetStorage updated

by removing statement that it implements interface ContextEnabled.

  1. Public method List<Context> listContexts() removed.

comment:16 Changed 13 years ago by olle

(In [3309]) Refs #564. Refs #534. Listing of Mascot parameter set storage items updated to display the item selection check box column, making it possible to share a search parameter set to the active project:

  1. Class/file action/mascot/ListMascotParameterSetStorage.java

in client/servlet/ updated in public method void runMe() to display the item selection check box column.

  1. Class/file action/execute/ShareToProject.java in client/servlet/

updated in protected method void runMe() when sharing a Mascot parameter set storage item to to also share the related parameter file item with the same access rights.

comment:17 Changed 13 years ago by Fredrik Levander

Working fine!

comment:18 Changed 13 years ago by Fredrik Levander

Resolution: fixed
Status: assignedclosed

comment:19 Changed 13 years ago by olle

10/19/09 16:28:10 changed by gregory

(In [3454]) Refs #623. Refs #534. Mascot search now creates two jobs if selecting two files. Two methods are introduced in the FormFactory to ease the creation of hidden fields. addHiddenField(Form form,...) and addHiddenField(Table table,...).

comment:20 Changed 12 years ago by olle

(In [3973]) Refs #710. Refs #534. Mascot search updated to support selection of more than one database:

  1. Class/file gui/form/MascotStorageForm.java in client/servlet/

updated:

  1. Public constructor MascotStorageForm(MascotParameterSet mascotParameterSet, ...)

updated to use a multiple-selection box for database selection.

  1. Class/file action/mascot/SaveMascotParameterSetStorage.java in

client/servlet/ updated:

  1. Public static valid parameter VString VMASCOT_DB updated by

increasing max character length from 32 to 255 characters, as the selection is stored as a list string, with items separated with ",".

  1. Protected method void runMe() updated by obtaining a list of

database selections and storing them as a list string.

comment:21 Changed 12 years ago by olle

Correction to commit message to change set [3973] added 2010-11-10 15:41:

  • The method that was updated in class/file action/mascot/SaveMascotParameterSetStorage.java in client/servlet/ was not protected method void runMe(), but public method MascotParameterSet fetchCurrentMascotParameterSet().

comment:22 Changed 12 years ago by olle

(In [3974]) Refs #710. Refs #534. Class/file action/mascot/SaveMascotParameterSetStorage.java in client/servlet/ updated in public method MascotParameterSet fetchCurrentMascotParameterSet() by correcting comments to refer to the currently used delimiter string "," instead of ", ".

comment:23 Changed 12 years ago by olle

(In [3978]) Refs #710. Refs #534. Class/file gui/form/MascotStorageForm.java in client/servlet/ updated:

  1. Public constructor MascotStorageForm(MascotParameterSet mascotParameterSet, ...)

updated by adding a help text to the database multiple-selection box, informing that Mascot v2.3 and up supports multiple databases, else only one.

comment:24 Changed 12 years ago by olle

(In [3989]) Refs #707. Refs #287. Refs #290. First version of support for editing of Mascot parameter set storage properties:

  1. New class/file action/mascot/ViewMascotParameterSetStorageProperties.java

in client/servlet/ added. It implements interface ContextEnabled and adds a "Properties" button to the tool bar of tables listing MascotParameterSetStorage items. It is checked that exactly one item is selected, and its id is set to value of new valid parameter Vinteger VMASCOTPARAMETERSETSTORAGEID in new class ViewActiveMascotParameterSetStorageProperties, after which action is forwarded to the latter class.

  1. New class/file action/mascot/ViewActiveMascotParameterSetStorageProperties.java

in client/servlet added. It obtains the value of new valid parameter Vinteger VMASCOTPARAMETERSETSTORAGEID, and gets the corresponding MascotParameterSetStorage item, whose properties are shown using new form MascotParameterSetStoragePropertiesForm. A "Save" button is coupled to action link to new class SaveMascotParameterSetStorageProperties.

  1. New class/file gui/form/MascotParameterSetStoragePropertiesForm.java

in client/servlet/ added. It creates a form for properties of a MascotParameterSetStorage item.

  1. New class/file action/mascot/SaveMascotParameterSetStorageProperties.java

in client/servlet/ added. It obtains values from the MascotParameterSetStoragePropertiesForm form and saves them in the corresponding MascotParameterSetStorage item.

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

updated with new string keys.

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

updated with new icon assignments.

comment:25 Changed 12 years ago by olle

(In [3996]) Refs #707. Refs #534. Class/file gui/form/MascotParameterSetStoragePropertiesForm.java in client/servlet/ updated:

1.Public constructor MascotParameterSetStoragePropertiesForm() updated by change of table field set title key string to "MascotParameterSetStorageProperties?`", which is more appropriate.

comment:26 Changed 12 years ago by olle

Subversion commit message to change set [3996] added 2010-11-18 12:55:17 by olle should read:

(In [3996]) Refs #707. Refs #534. Class/file gui/form/MascotParameterSetStoragePropertiesForm.java in client/servlet/ updated:

1.Public constructor MascotParameterSetStoragePropertiesForm() updated by change of table field set title key string to "MascotParameterSetStorageProperties", which is more appropriate.

comment:27 Changed 12 years ago by olle

(In [4190]) Refs #748. Refs #635. Refs #534. Running peptide identification using Mascot updated to support disabling the functionality via the configuration file:

  1. Mascot properties template file conf/mascot.properties.in in client/servlet/ updated with new option "mascot.local.disabled", that should be set to "yes" or "no".
  1. Class/file action/file/PerformMascotSearch.java in client/servlet/ updated to implement the ExtensionDisableInterface. New public method boolean fetchExtensionDisabledFlag() retrieves the disable flag by calling the fetchExtensionDisabledFlag() method of an instance of UseSpectrumFileForMascotSearchExtension.
  1. Class/file action/file/UseSpectrumFileForMascotSearchExtension.java in client/servlet/ updated to implement the ExtensionDisableInterface. New public method boolean fetchExtensionDisabledFlag() retrieves the disable flag from the Mascot properties file. If the properties file is missing, true is returned, while if the disable option is missing, false is returned for backwards compatibility.

comment:28 Changed 12 years ago by olle

(In [4199]) Refs #757. Refs #605. Refs #534. Class/file plugins/SearchMascotPlugin.java in plugin/ updated to support abortion of an executing job by implementing interface AbortablePluginInterface.

  1. New private instance variable boolean jobAborted with public accessor method boolean isJobAborted(). Its initial value is false.
  1. New private instance variable PostMethod httpClientPostMethod with private accessor methods. Its initial value is null.
  1. New public method void abort() that sets the value of boolean instance variable jobAborted to true. This method is part of interface AbortablePluginInterface (it is actually the only method needed to implement the interface). It obtains the used Apache HttpClient PostMethod from an instance variable, and if it is not null, call its abort() method.
  1. Private method void mascotSearchViaWebInterface(Request request, Response response, ...) updated:
  2. The used Apache HttpClient PostMethod is stored as an instance variable, in case there is need to call its abort() method later.
  3. New public method boolean isJobAborted() is called at strategic places in the code to check if an abort notification has been received, and if so, throw an IOException inside a try-catch block that catches the exception. However, throwing an IOException will prevent any Mascot search output, which redirects the execution to the error-handling block.
  4. The error-handling block is updated to check if isJobAborted() returns true, in which case response.setAborted() is called, and otherwise response.setError(errorMessage, err).

comment:29 Changed 11 years ago by olle

(In [4223]) Refs #756. Refs #534. Class/file plugins/SeachMascotPlugin.java in plugin/ updated with basic progress info:

  1. Private method void mascotSearchViaWebInterface(Request request, Response response, ProgressReporter progress, ...) updated to call new private method void reportProgress(ProgressReporter progress, int percentCompleted, String progressMessage) to inform when the search is submitted, when it is executing, and when results are retrieved.
  1. New private method void reportProgress(ProgressReporter progress, int percentCompleted, String progressMessage) added. It reports progress and logs the progress info.

comment:30 Changed 11 years ago by olle

(In [4230]) Refs #763. Refs #534. Class/file action/mascot/ViewActiveMascotParameterSetStorage.java in client/servlet/ updated in format of source code; no functional changes.

comment:31 Changed 11 years ago by olle

(In [4231]) Refs #763. Refs #534. Class/file gui/form/MascotStorageForm.java in client/servlet/ updated in format of source code; no functional changes.

comment:32 Changed 11 years ago by olle

(In [4232]) Refs #763. Refs #534. Class/file action/mascot/SaveMascotParameterSetStorage.java in client/servlet/ updated in format of source code; no functional changes.

comment:33 Changed 11 years ago by olle

(In [4234]) Refs #763. Refs #534. Refs #287. Refs #290. Support of running Mascot searches from Proteios SE updated by option to import results automatically:

  1. Class/file action/mascot/SelectMascotParameterSetStorage.java in client/servlet/ updated to add new button to create search job and import results. The selected button should be identified by the value of new valid parameter VBoolean SearchMascot.VMASCOTIMPORTRESULTSFLAG being set to true.
  1. Class/file gui/form/MascotStorageForm.java in client/servlet/ updated by extendng the form with a new field set "Mascot - Additional Options not in Parameter Set", with initially a single check box "Import results", coupled to new valid parameter VBoolean SearchMascot.VMASCOTIMPORTRESULTSFLAG. The check box should as default not be checked.
  1. Class/file action/mascot/SaveMascotParameterSetStorage.java in client/servlet/ updated to retrieve the value of new valid parameter VBoolean SearchMascot.VMASCOTIMPORTRESULTSFLAG and add it as parameter to the forward action link, using the same valid parameter. This ensures that the value is transferred to the action creating the search job after the parameters have been saved.
  1. Class/file action/mascot/SearchMascot.java in client/servlet/ updated to retrieve the value of new valid parameter VBoolean SearchMascot.VMASCOTIMPORTRESULTSFLAG and transfer it as job parameter to the created search job.
  1. Class/file plugins/SearchMascotPlugin.java in plugin/ updated:
    a. Private method void execute(Request request, Response response, ProgressReporter progress) updated to retrieve value of Boolean results import flag from job parameter, and use it as argument when calling updated private method void mascotSearchViaWebInterface(..., Boolean importResultsFlag).
    b. Private method void mascotSearchViaWebInterface(...) updated with new argument Boolean importResultsFlag. If the value is true, new private method Job createImportJob(String pluginClassName, String jobName, File inputFile) is called to create an import job to import the results. Job done message updated with info regarding uploaded file and optionally created import job.
    c. Private method void mascotResultExportViaWebInterface(...) updated to File mascotResultExportViaWebInterface(...) and return the uploaded results file item obtainded from private method File uploadFileViaWebInterface(PostMethod(...).
    d. Private method void uploadFileViaWebInterface(PostMethod(...) updated to File uploadFileViaWebInterface(PostMethod(...) and return the uploaded results file item.
    e. New private method Job createImportJob(String pluginClassName, String jobName, File inputFile) added. It creates an import job to import results.
  1. English dictionary file locale/en/dictionary in client/servlet/ updated with new entries for various string keys.
  1. Default icon settings file "default" in icons/ in client/servlet/ updated with icon assignments for new string keys.

comment:34 Changed 11 years ago by olle

(In [4236]) Refs #763. Refs #534. Support of running Mascot searches from Proteios SE with import of results automatically updated to ensure that check box for importing results only appears on form for inspecting/editing search parameters, when spectrum files have been selected for searching:

  1. Class/file gui/form/MascotStorageForm.java in client/servlet/ reverted to previous state, without check box for importing results.
  1. ClasS/file action/mascot/ViewActiveMascotParameterSetStorage.java in client/servlet/ updated:
    a. Public method void runMe() updated to extend the form for inspecting/editing parameters when spectrum files have been selected for searching, in which case a new field set "Mascot - Additional Options not in Parameter Set" will be added, with initially a single check box "Import results", coupled to new valid parameter VBoolean SearchMascot.VMASCOTIMPORTRESULTSFLAG. The check box should as default not be checked.

comment:35 Changed 11 years ago by olle

(In [4237]) Refs #763. Refs #534. Support of running Mascot searches from Proteios SE with import of results automatically updated by exchanging import plug-in MascotXMLImportPlugin for SearchResultsImporter, that will import Mascot results to the Hits table (MascotXMLImportPlugin imports Mascot results as a SpectrumSearch structure):

  1. Class/file plugins/SearchMascotPlugin.java in plugin/ updated:
    a. Private method void mascotSearchViaWebInterface(...) updated to use plug-in SearchResultsImporter when calling private method Job createImportJob(String pluginClassName, String jobName, File inputFile) to create an import job to import the results.

comment:36 Changed 10 years ago by olle

(In [4365]) Refs #787. Refs #534. New Mascot search parameter file type FileType.MASCOT_PARAMETERS added.

Note: See TracTickets for help on using tickets.