polyXmass, the massists' program
Copyright 2000-2002 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 program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, 
    Boston, MA 02111-1307 USA


This program is a framework for doing mass spectrometric data
analysis/prediction on a variety of polymers.

The program allows to finely define (model) polymer types. It does
this by providing a framework into which the user may put formalize an
easy paradigm : a polymer is a "chain" of monomers. This chain is
capped at its left and right extremities (left end cap and right end
cap), so that the polymer is in its "finished state".

Once the user has defined the chemistry of a given polymer type, the
program becomes aware of this new polymer definition and will
understand any sequence that complies with this definition. The
program will thus be able to predict/simulate mass spectrometric data
for any polymer sequence chemistry that complies with a polymer
definition that its is aware of. The polyXmass program allows:

- text and/or graphical polymer sequence editing
  - graphical sequence editing is performed using a "drawing area" that 
    will hold "icons" corresponding to the monomers constituting the
    polymer sequence. 
    The sequence editor behaves nonetheless like a normal text
    editor, but with an infinite customization ability.
  - the icons used above can be changed at will by the user, which provides
    a HUGE amount of freedom for the user willing to finely configure 
    the polyXmass framework for the polymer editing activity.

- polymer sequence chemistry at different levels:
  - at the polymer level (left/right end permanent chemical modifications)
  - at the single monomer level (intrinsic chemical modification)
  - polymer cleavage:
    - the cleavage specificity is governed by rules that are specified
      within the polymer type specification frame.
  - polymer fragmentation:
    - the fragmentation of any polymer is achieved according to rules
      that are defined by the user in the polymer definition.

- polymer mass calculations at different levels:
  - each time the polymer sequence is modified, the masses for the
    whole polymer are recomputed seamlessly. This is fully automatic and
    does not require intervention from the user.
  - each time the user selects a portion of the polymer sequence in the
    editor, the masses for the given "oligomer" are recomputed seamlessly.
    This is fully automatic and does not require intervention from 
    the user.
  - when a polymer sequence is cleaved, the masses for each oligomer 
    resulting from the cleavage are automatically computed.
  - when a polymer sequence is fragmented, the masses of each fragomer
    resulting from the fragmentation are automatically computed.

- mass searching facilities:
  - directly into the polymer sequence or into an array of preexisting
    data, like when the user cleaves a protein and then searches a mass
    into the resulting oligomers.

- no limitation on the "coding capabilities" of the application. Indeed,
  the following rules are enforced during the polymer type definition :
  - each monomer MUST have a code unambiguously associated with it in 
    order to be able to edit the sequence through the use of the keyboard.
  - a monomer code can be of whatever length (by default, a maximum
    of three letters might be accepted, which allows for a reasonable
    25*25*25 = 15 625 combinations).
  - the first letter of a code MUST be UPPERCASE, while all the others
    MUST be LOWERCASE.
  - A, As, Ax, Asp, Asn are all valid and considered different codes.
  - a, ab, aB, ABc, aBc are unvalid codes.

When polyXmass will be at version 0.05, it will save polymer chemistry
results.
