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 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.
GNU polyxmassdata is a platform-independent package that contains all
textual/graphical data required to run the GNU polyxmass software out of
the box. Namely, GNU polyxmassdata contains configuration files describing
polymer chemistry for a number of polymer types commonly found in nature:
protein, dna, rna, saccharides. These polymer chemistry definitions are
examples, and should be carefully reviewed by the user of the GNU polyxmass
software, in order to make sure that they fulfill their task in the
IMPORTANT NOTE: every file distributed along with the GNU
polyxmassdata package is distributed under the GNU General Public
License (see notice above). This is true even for files which do not
contain the GNU GPL notice, like the one written above.
A number of modules in the GNU polyxmass software project are based on
graphical displays of chemistry elements, like a polymer sequence is
displayed in the form of a properly arranged array of monomer images
(see www.polyxmass.org, section polyxedit to make sure you visualize
such a polymer sequence being edited). The little graphics that are
needed to display graphically a polymer sequence are contained in this
GNU polyxmassdata package. See for yourself the contents of the different
"protein", "dna", "rna", "saccharide" directories.
There are two different kinds of little graphics for the display of
the polymer sequence: each monomer referenced in the polymer chemistry
definition has one or two little graphics files:
- a '.png' file that is a simple raster graphics file. This is the most
common graphics format known, with 'jpg' and a few others (we do not
use them because there are software patents problems with them);
- a '.svg' file that is a scalar vector graphics file. This is a standard
graphics file format that's being pushed forward by the www (W3C)
consortium for use in the internet. That svg graphics file is scalable,
which means that a program understanding this format will be able to
render the graphics for any size asked by the user. This is how the
polyxedit modules in the GNU polyxmass framework can dynamically resize
the monomer icons in the polymer sequence editor without loosing
Each polymer definition may have its own set of graphics files to render
the monomer that are defined in the polymer definition file. All the
polymer definition-specific files are located in a directory that is
usually name by the name of the polymer definition, like "protein" or
"dna", for example.
The correspondence between a polymer definition type, like "protein",
for example, and the directory where the "protein"-specific files are
located is made a in very simple format file "poldefs-dictionary.dic",
that I include below for you to see how simple it is:
~~~~~~~~~~~ begin inclusion ~~~~~~~~~~~~~
# 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 Filippo Rusconi
# This is the poldefs-dictionary.dic file where the correspondences
# between a polymer definition name and its file are made. Also, the
# pixmaps directory is listed for each polymer definition. The format
# of the file is like this :
# where 1) protein is the name of the polymer definition, 2)
# protein.xml and protein-pixmaps are respectively the name of the
# polymer definition file and the pixmaps directory name. Each line
# starting with a '#' character is a comment and is ignored during
# parsing of this file. The file is case-sensitive.
~~~~~~~~~~~ end inclusion ~~~~~~~~~~~~~
What we see here is that the polymer definition type "protein" has all its
data located in the protein directory. But we also see that the "protein"
polymer definition type is defined in the "protein.xml" file. That is
a crucial piece of information indeed, because when a user opens a new
polymer sequence by reading the polymer sequence file from disk, the
program needs to know how to render the sequence, which means that it
needs to know were the graphics files are located. But in order to know
where the graphics files are located, it needs to know what it the polymer
definition type of the polymer sequence. To get to know this, the program
seeks a piece of data in the xml-formatted sequence file that indicates
what's the polymer type. In our example the polymer sequence file would
state: "this polymer sequence is a 'protein' sequence". Since the program
now knows that the polymer sequence file is a protein (and not, say, a
sugar sequence), it can render it by going to fetch the graphics files
in the "protein" directory. But it also can check that the sequence is
valid, by making sure that all the monomers are properly referenced and
described in the polymer definition type file "protein.xml".
This small introduction to the internal workings of the polyxmass software
project should make clear that the polyxmassdata package is essential
to the proper functioning of both the polyxedit graphical module and all
the other non-graphical modules (since the polymer definition files are
located in this polyxmassdata package).