[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [h5md-user] [EXTERNAL] Re: topology
From: |
Pierre de Buyl |
Subject: |
Re: [h5md-user] [EXTERNAL] Re: topology |
Date: |
Fri, 9 May 2014 15:54:28 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, May 06, 2014 at 05:42:58PM +0200, Konrad Hinsen wrote:
> Hi David,
>
> > The group I work with does a fair amount of analysis on bond
> > lengths, angle distributions and dihedral angle distributions as
> > validation for force field development. So our main use case for a
> > 'topology' module would be to store the pairs, 3- and 4-tuples of
> > atoms that define the bonds, angles and dihedrals.
>
> I can see the need to store the bonds, but why angles and dihedrals?
> Once you have the bond network, you can deduce angles and dihedrals
> from them.
>
> > That said, I have use cases for wanting to store lists of
> > non-bonded pairs of atoms such as opposing carbons on a ring or
> > designated 'endpoint' atoms that can be used to represent the
> > overall orientation of a larger molecule, and in this use case a
> > specific 'bond' list would not really be appropriate.
>
> So what you really want is ordered N-tuples of atom indices, right?
This is what I understand from the above "store the pairs, 3- and 4-tuples".
> > I am totally guilty of abusing the PDB (and CAR and MDF) formats to
> > sneak in extra information. :-)
>
> Me too! As a way of repenting, I have vowed to avoid using the PDB
> format a much as possible in the future ;-)
>
> > I would definitely agree that a standard storage scheme, would be
> > useful, even if the structure of a 'topology' section varies by
> > module. That way, even if the location of the lists varies, at
> > least the same routines can be used to read/write the data when it
> > is located.
>
> Exactly.
>
> > As a possible example:
> >
> > <tuple-list>
> > +-- type: String
> > +-- dimension: Integer[]
> > \-- values: Integer[n-tuples][D]
> >
> > Where a pair list would be dimension(D) = 2, and the values in list
> > would be the particle IDs.
>
> Looks good to me!
Apart from the attributes, this is what I suggested :-)
To be clear:
time-dependent H5MD element:
<bond_list>
\-- step [variable]
\-- time [variable]
\-- value: Integer [variable][number of items stored][X]
where X is the number of indices that is needed (2 for pairs, etc.)
time-independent
<bond_list>: Integer [number of items stored][X]
The dimension is given by the shape of the dataset. I don't know what "type" is
supposed to contain.
I hope that I understood correctly what both of you meant and I have the feeling
that the needs (for storing the indices, at least) are similar to all of us.
Additional data would be module dependent.
Cheers,
Pierre