Thomas hamelryck wrote:
>> Hi,
>> I'm trying to write a C++ object that can read in a pdb file and represent
> a protein internally. The object should also be capable of performing
> simple manipulations of the structure like deleting a residue or flipping a
> peptide bond.
>> My question is :
>> Are there any books or references dealing with the efficient representation
> of a protein in a program? Useful suggestions or programming tips are welcome
> too.
>
I am involved in a project to create a C++ class library for molecular
modelling and bioinformatics (see http://www.cryst.bbk.ac.uk/classlib/
).
We are concentrating our efforts on algorithms such sequence alignment,
least squares fitting, FFT etc.. For this project we have been
developing
Molecule, Atom, CovalentBond classes. These are not ready to be
released
yet but we have some experience in what you are wanting to do.
I would say
the single most important tip is to try and keep the physical
dependencies
between your classes to a minimum. For example, if an Atom class
contains
a list of pointers to Bond objects and a Bond class contains two
pointers
to Atom objects then class Atom is physically dependent on class Bond
and vice versa. This is an example of a cyclic dependency as is
particularly
to be avoided. The more physical dependencies, the more a simple change
in
one part of a class library is likely to cause problems in other parts.
We
solve the Atom, Bond problem by creating Graph of Atoms within the
Molecule class to hold the connectivity information. In this way Atom
can
freed from their dependence on Bond. This also makes sense on a
biological
level: an atom can exist independently of any bonds but a bond must
involve two atoms.
Physical dependencies are, of cause, a general OOP design issue. I
read
about these problems and how to solve them in C++ report (see
http://www.sigs.com ). I would also say that you are likely to spend
most
of your time writing code to parse pdb files and create objects from the
data extracted. You might be better off using someone elses classes.
Unfortunately ours will not be ready for sometime yet. However, we will
be
releasing a set math classes in the next few weeks. These will do
least
squares fit, matrix inverse, FFT etc.
Please tell me more about what you want do, as we might be able to
help.
Cheers, Will
____________________________________________________________
Will Pitt Tel: 44-171-6316851
Crystallography Department, Fax: 44-171-6316803
Birkbeck College, w.pitt at mail.cryst.bbk.ac.uk
Malet Street, http://www.cryst.bbk.ac.uk/~ubcg08l/
London
WC1E 7HX
U.K.