Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create MolecularSystem class #49

Open
khs26 opened this issue Mar 19, 2013 · 3 comments
Open

Create MolecularSystem class #49

khs26 opened this issue Mar 19, 2013 · 3 comments

Comments

@khs26
Copy link
Contributor

khs26 commented Mar 19, 2013

I am planning to create a MolecularSystem class inheriting from BaseSystem. Its purpose will be to:

  • Act as a superclass for AMBERSystem and any future CHARMM, GROMOS etc. style systems;
  • Identify topological features of molecular symmetry;
  • Allow for interconversion between AMBER, CHARMM and other potentials;
  • Implement easy I/O and visual representations.

The two important classes for this will be MolecularSystem and Atom, which are outlined below:

class MolecularSystem(BaseSystem)
    atoms
    bonds
    angles
    torsions
    topology_search()
    import_pdb()
    import_xyz()

class Atom()
    mass
    element
    charge
    lj_terms[]
    bonded_atoms[]
@ghost ghost assigned khs26 Mar 19, 2013
@ruehle
Copy link
Collaborator

ruehle commented Mar 19, 2013

Hey,

I think that should go into a separate Topology class - as it is done for the rigid bodies already. The rigid body topology needs massive cleanup, but i think keeping the topology separate is the better idea.

Then the system class is responsible for the algorithms and the Topology for the data structures. I also have a topology for crystal systems.

@js850
Copy link
Owner

js850 commented Mar 19, 2013

victor, can you be more specific? your non-existent documentation makes
it hard to use what you've done as an example.

On 19/03/13 17:00, Kyle Sutherland-Cash wrote:

I am planning to create a MolecularSystem class inheriting from
BaseSystem. Its purpose will be to:

  • Act as a superclass for AMBERSystem and any future CHARMM, GROMOS
    etc. style systems;
  • Identify topological features of molecular symmetry;
  • Allow for interconversion between AMBER, CHARMM and other potentials;
  • Implement easy I/O and visual representations.

The two important classes for this will be MolecularSystem and Atom,
which are outlined below:

|class MolecularSystem(BaseSystem)
atoms
bonds
angles
torsions
topology_search()
import_pdb()
import_xyz()

class Atom()
mass
element
charge
lj_terms[]
bonded_atoms[]
|


Reply to this email directly or view it on GitHub
#49.

@ruehle
Copy link
Collaborator

ruehle commented Mar 19, 2013

I on purpose wasn't more specific regarding my example. I think the current aatopology is not very well structured. What I wanted to say is that I think we should do more or less exactly what Kyle suggested, but in a separate topology class rather than the system class. Then we have the data structures (Molecules, Atoms, Bonds, ...) separated from the choice of algorithms (system class). I also prefer the idea to have it separated into smaller sub components.

We should sit have a chat on which parts might be similar in molecular systems, angle axis systems and crystal systems to design a more uniform interface - but by no means keep the existing one. One thing which also should go into the topology is a reference to the current boundary conditions used, e.g. cubic pbc, open system, triclinic, ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants