1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
|
This file is part of the "GNU polyxmass" project.
The "GNU polyxmass" project is an official GNU project package (see
www.gnu.org) released ---in its entirety--- under the GNU General
Public License and was started at the Centre National de la Recherche
Scientifique (FRANCE), that granted me the formal authorization to
publish it under this Free Software License.
Copyright (C) 2000,2001,2002,2003,2004 Filippo Rusconi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this software; if not, write to the
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Boston, MA 02110-1301, USA.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
README:
GNU polyxmass-bin is the GUI (graphical user interface) package of the
GNU polyxmass mass spectrometric software suite. It comprises 3
"modules" each callable through a main program window menu's
item. These "modules" are described below.
polyxdef module
===============
is the module where the user makes/modifies polymer chemistry
definitions. Those polymer chemistry definitions are then saved to a
disk file under an xml-based format that will be understandable by
other the two other modules in the GNU polyxmass-bin package.
The polyxdef module makes it very easy to define brand new polymer
chemistry by defining a number of chemically-relevant elements:
- the monomers that the polymer sequence may be made of (through
polymerization of these into a single molecule);
- the left and right end caps that put the polymer sequence, after
polymerization has terminated, in its finished state (for example,
a protein has a left end cap "H" and a right end cap "OH");
- the chemical cleavages that can occur in the polymer sequence (chemical
means either enzymatic, like endo-proteolysis, or actually chemical,
like methanolysis or cyanogen bromide cleavage);
- the gas-phase fragmentations that the polymer sequence may undergo;
Once the polymer definition is finished, the file should be saved into
a directory where the other modules in GNU polyxmass-bin can find them.
polyxcalc module
================
is the module where the user makes simple mass calculations on a
number of chemically-relevant elements, like:
- initial masses to seed the calculation (if required, like saying "ok, lets
modify this polymer sequence that I already know weighs 12500 Da);
- atoms, by choosing from a list of atoms known to the GNU polyxmass mass
spectrometry framework;
- formulas, by writing a syntactically correct "action-formula", like
"-H20+CH3C0OH";
- monomers, if a polymer definition type was required to be loaded by the
calculator, since the monomers are polymer definition-specific;
- modifications, with the same provision as for monomers;
- polymer sequence, with the same provision as for monomers;
All these chemical elements may be combined into a single calculation, by
setting them all at once in the mass calculator graphical user interface.
Each chemical element being involved into a mass calculation must be
accompanied by a count number. This count number allows two things:
- to tell polyxcalc that the element should be included in the
mass calculation a number of times. For example, one may say "I want
to add three glycine monomers now";
- to tell polyxcalc if the element involved in the mass
calculation should be ADDED or REMOVED from the virtual molecule
being dealt with. For example, while the user said above that he
wanted three glycine monomers to be added, she could have said that
she wanted the same amount of glycine monomer (3) to be REMOVED from
the virtual molecule. To do so would have been easy, just enter "-3"
instead of "3" in the count text entry widget !
Each computation is logged to a text view widget that the user can modify to
his taste, for later inclusion in the lab-book.
The polyxcalc module is programmable in a polymer definition-specific
way. That means that each polymer definition has its own
configuration file. The configuration file is located in the polymer
definition's specific directory (see the GNU polyxmass-common package
for the whole filesystem explanation). Its format is trivial, and I
include below some lines from such a configuration file:
chempadkey=protonate%+H1%adds a proton
chempadkey=hydrate%+H2O1%adds a water molecule
chempadkey=0H-ylate%+O1H1%adds an hydroxyl group
chempadkey=acetylate%-H1+C2H3O1%adds an acetyl group
polyxedit module
================
is the module where the user performs the following tasks on a polymer
sequence:
- edit or create a polymer sequence. Editing an existing polymer
sequence simply involves opening its file from disk and start making
changes in the polymer sequence editor. Creating a polymer sequence
involves actually more steps: 1) give the GNU polyxedit program the
name of a non-existent file; 2) tell the GNU polyxedit program what
polymer definition type the polymer sequence will be (will it be a
protein or a saccharide?...)
- perform a wide number of chemically-relevant modifications on the
active polymer sequence. Such actions can be one of the following:
- changing the polymer sequence by editing it;
- annotating the polymer sequence or any monomer in the sequence,
with no limitation to the number of annotations whatsoever;
- modifying the polymer sequence by modifying either the polymer
sequence itself (on its left/right ends) or any number of monomers
in the polymer sequence;
- cleaving a polymer sequence using a specific cleavage pattern;
- gas-phase fragmenting a polymer sequence using specific
fragmentation patterns;
- arbitrary mass search operations on the polymer sequence;
- mass finding operations on the results of any chemical action that
had previously provided an array of oligomers (like cleaving or
fragmenting a polymer sequence, for example);
- determination of the composition of the polymer sequence or any
selected region of this polymer sequence. There are two different
types of compositions that GNU polyxedit can compute:
- the monomeric composition, that lists in a table the number of
each monomer encountered in the polymer sequence;
- the elemental composition that lists in a formula the number of
each atomic element encountered in the polymer sequence;
These computations are extremely configurable, as to what chemical
modification, left/right cap should be taken into account...
- each time a chemically relevant action takes place in the polymer
sequence editor, the mass calculation engine is triggered and new
masses are re-computed real-time;
- the sequence file is saved in an xml-based file format
Happy polyxmass'ing
|