============================================================================== === TO DO ================================================================== ============================================================================== Suport -sigdig flag Write README, instructions, etc. Create SilkGui Allow "energy" conversion to be done at user-specified temperature? Add NDimTable.writeNDT() -- a *sparse* binary format Let -wrap be specified per dimension Make climbHills return a List of peaks This is a bit hard, because you probably want the peak heights too. Which are gone when you overwrite them with peak labels. Maybe classifyByHills() shouldn't alter the table after all? ============================================================================== === CHANGE LOG ============================================================= ============================================================================== ### 0.96 ### dak - Cleaned up code in util.RotamerSampler & added minor features; e.g. now can output commented peak coords before samples derived from that peak - could help with clustering the sample points later - Added -hillassign mode: assign each discrete input data sample to nearest peak; sort & tally by peak - Change to hillassign mode: now finds closest hill grid point to each data sample *then* gets hill ID, rather than interpolating hill ID from neighbor hill grid points - Fixed bug where -hills thought all hill IDs were ~equal b/c program was erroneously using density values in place of integer peak labels ... - Changed a < to a <= in SilkCmdLine.doOutput(..) for -hillmodes output - Fixed a hillmodes/hillassign bug involving the fictional "hill 0" ### 0.95 ### dak - Tweaks to RotamerSampler... - Added util.MonteCarlo class to sample dihedrals from Silk -energy output ### 0.94 ### dak - Added -hillmodes option to output modal peak coordinates and values - Sampling by util.RotamerSampler now starts at, not around, the min/max bounds - util.RotamerSampler now accepts a modal peaks file and -degrees flag for local sampling ### 0.93 ### - added the "-counts" postprocessing option -- useful for Bayesian stats? - clarified meaning of default output in the .help file - added simple Bayesian mode (so far untested) - did some simple tests of Bayesian mode; behaves as expected. - added -color flag; updated help documentation. - added @title to kinemage output ### 0.92 ### - added "color" field to DataSample - tried devising k-means algorithm for optimal sampling, but no luck yet ### 0.91 ### - added more progress msgs to SilkEngine - fixed NullPointer bug in hill-climbing code - fixed modulo bug in chiropraxis.rotarama.NDFloatTable driftwood.isosurface.CrystalVertexSource silk.SilkEngine This second bug in Silk only affected the pre-wrapping of data points. Since NDimTable wraps again, the only effect SHOULD be on kinemage plots of points. - added SilkOptions.aniso for anisotropic scaling of input data When used, it could potentially break the sparse table (it did once due to a bug). When not used (ie, == 1), it really shouldn't cause problems. - documented the new -aniso and -crop switches - implemented -crop for limiting data ranges ### 0.90 ### - split NDimTable into abstract base class plus _Dense and _Sparse variants in preparation for trying the 7-D RNA backbone rotamers problem. - pre-existing bug in wrapbin() -- this made previous results slightly wrong? - finished out most functions in sparse (except i/o); we now allow rehashing - made hill climbing separate from the other post-ops; it should always be last - allowed NDimTable_Dense to read text files with "x y z 0.0" lines dropped - moved writeText() to NDimTable itself - tested text read and write for dense and sparse to ensure same results on all - removed writeNDFT() from the public API - altered hill climbing code so it could go into NDimTable; tested subclasses - timing comparison for "make rota4": DENSE user 4m05.483s SPARSE user 4m42.074s Dense is slightly faster, but sparse can handle higher-dimensional data and requires less memory. I think I'll make sparse the default for now. - finally wrote help page for SilkCmdLine ### 0.84 ### - created KarplusTableToNDFT - added documentation for Vince in the form of an OmniGraffle flowchart - added "energy" postop for converting energies from probabilities ### 0.83 ### - fixed bug in NDFT reading that zeroed out realcount for no reason. - added ability to read back in the text data files that are written out. - tested text read/write: output is identical to input - created the silk.util package for task-specific helper programs - created util.RotamerSampling for Homme's rotamer sampling task ### 0.82 ### - accounted for merger of driftwood.string into driftwood.util ### 0.81 ### - made TabDataLoader ignore lines starting with hash (#) - fixed bug in SilkEngine where halfwidth and weight parameters to tallyGaussian and tallyCosine were reversed. - same bug in SilkEngine.processDensityDependent - started KinfilePlotter - added wrapData() to SilkEngine - made SilkEngine actually obey the -scale switch - bundled with Top500-Angles package ### 0.80 ### - created most classes - started reworking NDFloatTable ==> NDimTable - added recursiveCount to NDimTable - wrote SilkOptions - wrote DataSample - wrote TabDataLoader - wrote SilkCmdLine - wrote SilkEngine