mailUpdate of the data model redesign document.


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on March 04, 2007 - 09:27:
Hi,

I have now reread all of the posts relating to the data model redesign
and have updated the planning document.  I have cut and paste the
current version to the end of this email.  If you notice any omissions
or errors, please say.

Thanks,

Edward


P.S. Here is the entire text of the planning document:

######################################################
# The relax data model redesign -- planning document #
######################################################


# The proposal. ###############

The proposal was split into multiple posts to relax-devel.  The posts are:

* The parent message 'Redesign of the relax data model:  A HOWTO for
breaking relax'.
Located at https://mail.gna.org/public/relax-devel/2006-10/msg00053.html
(Message-id: <1160550133.9523.54.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>).

* Section 1 'Redesign of the relax data model:  1.  Why change?'.
Located at https://mail.gna.org/public/relax-devel/2006-10/msg00054.html
(Message-id: <1160551172.9523.60.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>).

* Section 2 'Subject: Redesign of the relax data model:  2.  A new run 
concept'.
Located at https://mail.gna.org/public/relax-devel/2006-10/msg00056.html
(Message-id: <1160555137.9523.70.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>).

* Section 3 'Redesign of the relax data model:  3.  Molecules,
residues, and spins'.
Located at https://mail.gna.org/public/relax-devel/2006-10/msg00057.html
(Message-id: <1160557041.9523.74.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>).

* Section 4 'Redesign of the relax data model:  4.  Conclusion'.
Located at https://mail.gna.org/public/relax-devel/2006-10/msg00058.html
(Message-id: <1160557876.9523.79.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>).



# Preparation.
##############

1 [Done].  Firstly release relax version 1.3.0 prior to any changes
(to allow a functional version which handles RNA better, has the
tensor PDB representation code, etc).

2.  Redesign 'self.relax.data'.

3.  Create the data pipe looping function for the 'pipes' argument
(Chris MacRaild,
https://mail.gna.org/public/relax-devel/2006-10/msg00060.html,
Message-id: <1160562239.14487.98.camel@mrspell>).  The user functions
could be implemented as functors (Chris MacRaild,
https://mail.gna.org/public/relax-devel/2007-01/msg00020.html,
Message-ID: <1168432131.7569.338.camel@mrspell>).  The design will
need to take into account the user function docstrings, relax help
system, and the relax manual docstring fetching code.

4.  Create the spin_loop function (Edward d'Auvergne,
https://mail.gna.org/public/relax-devel/2006-10/msg00057.html,
Message-id: <1160557041.9523.74.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>).
Use a generator function, using the yield statement, to return the
spin data containers which are essentially pointers to the data (Gary
Thompson, https://mail.gna.org/public/relax-devel/2007-01/msg00014.html,
Message-id: <f001463a0701071417w6bd7927cp8fdd052e698575ec@xxxxxxxxxxxxxx>).
The implementation was essentially given by Chris MacRaild at
https://mail.gna.org/public/relax-devel/2007-01/msg00036.html
(Message-ID: <1168883717.7569.511.camel@mrspell>).

5.  Implement a parser for the following molecule/residue/spin
selection syntax (Gary Thompson,
https://mail.gna.org/public/relax-devel/2007-01/msg00014.html,
Message-id: <f001463a0701071417w6bd7927cp8fdd052e698575ec@xxxxxxxxxxxxxx>):
   #<molecule number> |
<molecule_name>:<residue_selection>[,<residue_selection>...]@<atom_selection>
[,<atom_selection>]
   residue_selection=<residue_number> | <residue_range> | <residue_type>
   residue_selection=<residue_number>-<residue_number>
   atom_selection=<string_and_wildcards>
This syntax will need to be properly referenced (in addition to being
fully described) in the user function docstrings.  I.e. the reference
for Molmol syntax, the reference for UCSF syntax, etc.  We need to
find the source and name of the syntax.

6.  Convert the methods of the class 'Selection' from the file
'generic_fns/selection.py' into methods and then add the following
functions (Chris MacRaild at
https://mail.gna.org/public/relax-devel/2007-01/msg00036.html
Message-ID: <1168883717.7569.511.camel@mrspell>; Edward d'Auvergne,
https://mail.gna.org/public/relax-devel/2007-01/msg00041.html,
Message-ID: <7f080ed10701190408i8a5dee3y8ccbe1aba11bcba@xxxxxxxxxxxxxx>):
   parse_token()
   tokenise()

7.  Create the spin_command function (Chris MacRaild,
https://mail.gna.org/public/relax-devel/2007-01/msg00036.html,
Message-ID: <1168883717.7569.511.camel@mrspell>).

8.  Rename 'prompt/run.py' to 'prompt/pipe.py'.  Rename
'generic_fns/runs.py' to 'generic_fns/pipes.py'.

9.  Create the new pipe user functions (from the old run user functions):
   pipe.copy()         # Create a new pipe with the current contents
of another pipe.
   pipe.create()       # Create a new pipe.  Switch to this pipe by default.
   pipe.current()      # Print the current pipe name.
   pipe.delete()       # Delete the pipe.
   pipe.delete_all()   # Delete all pipes.  Essentially deleting
'self.relax.data'.
   pipe.hybridise()    # Fuse two pipes into the current pipe.
Overlapping data in the two pipes must be identical!
   pipe.list()         # Print the details of all pipes.
   pipe.switch()       # Switch to a different pipe.

10.  Create the 'molecule' user function class:
   molecule.add()



Related Messages


Powered by MHonArc, Updated Fri Mar 09 04:20:23 2007