-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
285 lines (181 loc) · 7.91 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
Review CalcQat stuff for restraints - is this actually useful ?
memuse() is non consistent and broken in places. Either remove compeltely
(my preference) or consistentify.
CAn we globaly overload the new operator to count all the calls to new ?
probaly not.
CHECK: Is the vdw parameters for HO atomtype in amber03aa wrong ???
CHECK: Is the vdw parameters for N3 atomtype in amber03aa wrong ???
CHECK charmm22.ff - examples/building/proteinhelix still throws errors !
Add make install hook to print a message about setting the PD_PARAM_PATH
====================
Unify UNITS !
Time: PicoSeconds
InvTime: PicoSeconds-1
Distance: Angstrom
Mass: AMU ?
Angle: Radians
Charge: ElectronicCharge
Energy: kcal/mol
What about a series of functions:
Units.cm( centimeter ), Units.Angstrom( angstroms )
Units.nm( .. ) which return every thing in standard
Units.kcal( kcal/mol )
Units.Joules (
or
Units.Length.cm ( centimeter )
Units.Energy.Joules( joules )
====== Python BackCalling ======
Can we subclass in python ? That would be Ueber awesum!
Monitors ?
MonteCarlo acceptance criterion ?
===== IO =======
PDB_In
PDB_In is unintuitive - it doesnt load anything ! you ahve to do
sim.load first - fix somehow
Wrappers ?
sim.load() should load (ar attempt to) EVERYHTING - and complain if it cant.
users can set filters to enable the auto-cleaning of PDBs
Warning messages should point the user to these functions
the default filter should be "everything" - but a real everything, not just
all classes, so that you can read in an arbitrary thing in a PDB provided it
is defined in the ffps.
Default class for non-classed molecules
File particle should be marked as taken when recognised. -> avoid multipl eimports.
also warn about non-imported, unrecognised stuff. Advise user.
Infile --> too PDB specific, move stuff out into the PDB_In
Tutorial on how to make a new Inputfile, e.g. PSF
--> Trajectory player through workspace ...
work in progress - a working version is now in place but rough edges remain, esp. the setting
of periodic box changes is a little dirty/unfisnished.
way to "save/load" a workspace/system
PSF based setup/saving
Review & Document File Import, teach Mike and create a PSF importer
=======================
FileIn/Import .. etc.. TopologyIn/Import
improove In vs Import etc..
Trajectory:
Trajectory/CoordinateSet loader/player through workspace ...
way to "save/load" a workspace/system consistently through PSP/MIME/XTC/TRR/TRA
====== Python =========
print/cprint issue - syncronise python/C stream flushing
stdout hooks ?
===== Workspace/System design ======
Workspace #1:
Workspace should have a private =operator
Workspace #2:
WorkspaceCreator whci just clones and makes a new workspace.
Workspace #3:
complete workspace ---> system updateing of positions
System #1:
Make solvating the system a SystemOperator.
AtomParamter/Particle Hiarchy -
split hiarchchy into
ParticleBase (= current Particle - cov arrays)
\-- Particle (adds cov arrays)
\-- AtomTypeParamter
\-- AtomParamter
Particle.epot is a similar issue
BUG: AtomPamameter parent strings are not set
Bondorder manager
change back the bondorder class to store **both** sides of the diagonal strip
**including** the 0 in the middle...
===== Error Handling/ Printing ======
Exceptions:
replace remaining "return -1" error handling with "throw()" error handling
Things still use the old error return int.
- e.g. OutputTrajecotry.
Global verbosity system
- Loki - singleton ?
- Arbitrary file handle siphening/stream siphening
- OutputLevel will have to be a member of Object - and that almost everything should derive from object
- Object/ClonableObject ??
- Printf will be member function of Object
===== Satelite Modules =======
Proposal to create the 'Audition' and 'Experimental' satelite modules. The
first to contain code that has been deemed desirable for PD to have, but is alpha-quality.
The 'experimenral' satelite module would contain algorithms which are completely unproven.
Proposal to move modules from the folder mods to the folder satelites to detinguish between
the two. Developers may add modules to /mods, but not /satelites.
Notsure:
requirements checks - a mechanism such that each component
(object) makes sure it is happy with the current setup.
-- I think, related to this, that MoleculeBase needs some
sort of "ive been modified" serial number so that clients know,
and dont have to detect that their MoleculeBase has changed.
====== Forcefield =======
SECTION
get rid of SECTION - repalce with CUSTOM PROPERTY service
====== Renamings / Cosmetics =========
Namespaces:
stuff to move into namespace
namespace Core {
System, Workspace, Primitives, etcc.
}
Renamings / Convetnions:
- Private members - many still dont obey the m_BlahBlob convention
- Rename old stuff in FFPS
======= Other things ===========
thread safety ?
MPI ? How does it fit in ?
=======
----------------- Pickers -----------------
Pick_AND Pick_NOT etc are excellent, but...
I have a function which needs a PickResidueBase and I have two deriving classes. I want to use a Pick_AND - i cant, becuase Pick_AND
is an AtomPicker NOT a ResiduePicker.
Solution - make copies of Pick_AND, NOT, OR etc for PickResidueBase called PickRes_AND etc. But then what if we then have a new base class for another subset of pickers? We would have to duplicate all of them again!!
-------------------------------------------------------------------------
--------------------< DONE >-------------------------------------------
Cleaned error reporting in ffps reader.
DONE RENAMINGS:
External:
- All forcefields should migrate to FF_Xxxxx_YYZZ
- All out output trajectories should be OutTra_XXXX (including PDB_Out and Traj_Out )
Internal:
nAtoms() !
- Old "TRA" --> Bristol Trajecotry Format (btf)
Renamings:
BondedForcefield --> FF_Bonded
CustomForcefield --> FF_Custom
Merge PickedMinimise vs Minimise
CHARMM
CHARMM reader - for import of Charmm and OPLS definitions from
the standard charmm distribution
Forcefields
Other forcefields:
AMBER older versions
CHARMM
OPLS
Gromos
TIPXX, SPC wter models
PD_LIB_PATH --> PD_PARAM_PATH
Build system - configure/autoconf/automake
Installer into python lib directory
Actually us the WorkSpace operator class as a base for everything that
takes a Workspace reference. Unify how to get to the stored pointer
(getWSpace() ) or just wspace() maybe (i prefer that)
forcefields should initialize with wspace - this will make the setup
function less important and makes things much easier when setting up
picked forcefields in particular.
ff.info() shouldnt be const - it must call setup()
although if we get rid of setup (see point above) then this problem
goes away .. :D
do that atom.xyz fix (such that molecule::atom[] points to wspace.cur in workspace)
RotatableBondlist should be a Null class by default - it takes a long time to set up,
probably lots of memory and is hardly ever used.
Integrated Maths:dvector into SWIG/Python environment
Forcefield "LIB" path environment variable
fix long-range bondorder (sparse) in the new neighborlists !
Gromacs outtra, xtc, and other formats such that g_tools can be utilised and interfaced with
fix module generation - this will important for removing half backed
crap and experimental research-specific stuff into modules!. Compiling all
these modules will involve the build system stuff (see above);
Fixed virial
Fixed physical constants
======== FUTURE =========
---- Jons BIG todo list
1) Port the ProSup structure superimposition code to PD
3) Improved sequence alignment ->
we still dont use that Blosum Matrix - not hard to implement.
Implement local squence alignment algorthms too? Multiple alignment?
Or simply importers to obtain data from externam ClustalW etc. alignment engines in FASTA format etc.
4) DSSP / STRIDE port to allow structural annotation