Mercurial > repos > galaxyp > openms_openmsinfo
comparison readme.md @ 0:5da903bcd4f1 draft default tip
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/openms commit 5c080b1e2b99f1c88f4557e9fec8c45c9d23b906
author | galaxyp |
---|---|
date | Fri, 14 Jun 2024 21:41:52 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:5da903bcd4f1 |
---|---|
1 Galaxy wrapper for OpenMS | |
2 ========================= | |
3 | |
4 OpenMS is an open-source software C++ library for LC/MS data management and analyses. | |
5 It offers an infrastructure for the rapid development of mass spectrometry related software. | |
6 OpenMS is free software available under the three clause BSD license and runs under Windows, MacOSX and Linux. | |
7 | |
8 More informations are available at: | |
9 | |
10 * https://github.com/OpenMS/OpenMS | |
11 * https://www.openms.de/ | |
12 | |
13 The wrappers for these tools and most of their tests are automatically | |
14 generated using the `./aux/generate.sh` script. The generation of the tools is | |
15 based on the CTDConverter (https://github.com/WorkflowConversion/CTDConverter) | |
16 which can be fine tuned via the `hardcoded_params.json` file. This file allows | |
17 to blacklist and hardcode parameters and to modify or set arbitrary | |
18 CTD/XML attributes. | |
19 | |
20 Note that, due to its size, the test data is excluded from this repository. In | |
21 order to generate the test data on call `test-data.sh`. | |
22 | |
23 Manual updates should only be done to | |
24 | |
25 - and the manually contributed tests in `macros_test.xml` (The goal is that all | |
26 tools that do not have an automatically generated test are covered here) | |
27 - the `hardcoded_params.json` files | |
28 | |
29 Wrapper versions are managed in `bump.json`. For tools listed in the file | |
30 the wrapper version will be set accordingly and otherwise `0` is used. | |
31 For a major update of the tool version the bump file should be reset (to `{}`). | |
32 | |
33 In a few cases patches may be acceptable. | |
34 | |
35 Installation | |
36 ============ | |
37 | |
38 The Galaxy OpenMS tools can be installed from the toolshed. While most tools | |
39 will work out of the box some need attention since requirements can not be | |
40 fulfilled via Conda: | |
41 | |
42 Not yet in Conda are: | |
43 | |
44 - SpectraST (http://tools.proteomecenter.org/wiki/index.php?title=SpectraST) | |
45 - MaRaCluster (https://github.com/statisticalbiotechnology/maracluster) | |
46 | |
47 Binaries for these tools can easily be obtained via: | |
48 | |
49 ``` | |
50 VERSION=.... | |
51 git git clone -b release/$VERSION.0 https://github.com/OpenMS/OpenMS.git OpenMS$VERSION.0-git | |
52 git submodule init OpenMS$VERSION.0-git | |
53 git submodule update OpenMS$VERSION.0-git | |
54 ``` | |
55 | |
56 They are located in `OpenMS$VERSION-git/THIRDPARTY/`. | |
57 | |
58 Not in Conda due to licencing restrictions: | |
59 | |
60 - Mascot http://www.matrixscience.com/ | |
61 - MSFragger https://github.com/Nesvilab/MSFragger | |
62 - Novor http://www.rapidnovor.org/novor | |
63 | |
64 There are multiple ways to enable the Galaxy tools to use these binaries. | |
65 | |
66 - Just copy them to the `bin` path within Galaxy's conda environment | |
67 - Put them in any other path that that is included in PATH | |
68 - Edit the corresponding tools: In the command line part search for the parameters `-executable`, `-maracluster_executable`, or `-mascot_directory` and edit them appropriately. | |
69 | |
70 Working | |
71 ======= | |
72 | |
73 The tools work by: | |
74 | |
75 Preprocessing: | |
76 | |
77 - For input data set parameters the links to the actual location of the data | |
78 sets are created, the link names are `element_identifier`.`EXT`, where `EXT` | |
79 is an extension that is known by OpenMS | |
80 - In order to avoid name collisions for the created links each is placed in a | |
81 unique directory: `PARAM_NAME/DATASET_ID`, where `PARAM_NAME` is the name | |
82 of the parameter and `DATASET_ID` is the id of the Galaxy dataset | |
83 - the same happens for output parameters that are in 1:1 correspondence with | |
84 an input parameter | |
85 | |
86 | |
87 Main: | |
88 | |
89 - The galaxy wrapper create two json config files: one containing the | |
90 parameters and the values chosen by the user and the other the values of | |
91 hardcoded parameters. | |
92 - With `OpenMSTool -write_ctd ./` a CTD (names OpenMSTool.ctd) file is | |
93 generated that contains the default values. | |
94 - A call to `fill_ctd.py` fills in the values from the json config files into | |
95 the CTD file | |
96 - The actual tool is called `OpenMSTool -ini OpenMSTool.ctd` and also all input | |
97 and output parameters are given on the command line. | |
98 | |
99 Postprocessing: | |
100 | |
101 - output data sets are moved to the final locations | |
102 | |
103 Note: The reason for handling data sets on the command line (and not specifying | |
104 them in the CTD file) is mainly that all files in Galaxy have the extension | |
105 `.dat` and OpenMS tools require an appropriate extension. But this may change | |
106 in the future. | |
107 | |
108 Generating OpenMS wrappers | |
109 ========================== | |
110 | |
111 1. remove old test data: `rm -rf $(ls -d test-data/* | egrep -v "random|\.loc")` | |
112 2. `./generate.sh` | |
113 | |
114 Whats happening: | |
115 | |
116 1. The binaries of the OpenMS package can generate a CTD file that describes | |
117 the parameters. These CTD files are converted to xml Galaxy tool descriptions | |
118 using the `CTDConverter`. | |
119 | |
120 2. The CI testing framework of OpenMS contains command lines and test data | |
121 (https://github.com/OpenMS/OpenMS/tree/develop/src/tests/topp). These tests | |
122 are described in two CMake files. | |
123 | |
124 - From these CMake files Galaxy tests are auto generated and stored in `macros_autotest.xml` | |
125 - The command lines are stored in `prepare_test_data.sh` for regeneration of test data | |
126 | |
127 More details can be found in the comments of the shell script. | |
128 | |
129 Open problems | |
130 ============= | |
131 | |
132 Licence (MIT) | |
133 ============= | |
134 | |
135 Permission is hereby granted, free of charge, to any person obtaining a copy | |
136 of this software and associated documentation files (the "Software"), to deal | |
137 in the Software without restriction, including without limitation the rights | |
138 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
139 copies of the Software, and to permit persons to whom the Software is | |
140 furnished to do so, subject to the following conditions: | |
141 | |
142 The above copyright notice and this permission notice shall be included in | |
143 all copies or substantial portions of the Software. | |
144 | |
145 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
146 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
147 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
148 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
149 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
150 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
151 THE SOFTWARE. | |
152 |