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. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ README: 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 best way. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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 image quality. 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 : # protein=protein.xml%protein-pixmaps # 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. protein=protein.xml%protein long-protein=long-protein.xml%long-protein dna=dna.xml%dna rna=rna.xml%rna saccharide=saccharide.xml%saccharide ose=ose.xml%saccharide peptide=peptide.xml%protein ~~~~~~~~~~~ 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).