Merged bugfix from serial_patches branch
[PsN.git] / README.txt
bloba52b5959ff87268f3062d22489d253f91c259301
1 This version of PsN is tested with perl-5.8.8
2 Depending on your distribution you may have to install the following
3 perl packages:
5 Math::Random
6 Storable::Store
8 All available from CPAN ( www.cpan.org )
10   Changelog
11 ----------------------------------------------
13 Changes from 2.2.2-beta4 to 2.2.2
15 Features
17  - CWRES can now be calculated automatically if you have R and Xpose
18    installed. Remember to add a definition of IPRED in your NONMEM model.
20  - This version handles non-PsN standard (or absent) suffixes for
21    model files better than earlier versions.
23 Bug Fixes
25  - MSFO files are now copied back to the same directory of the model
26    file.
28  - MSFI files are now automatically copied to the PsN NONMEM run
29    directories.
31  - Output files from runs where the $MSFI record was used were not
32    parsed correctly. This is now fixed.
34  - Output files from runs where no $OMEGA _or_ $SIGMA were defined
35    were not parsed correctly.
37  - The header and the results from problematic runs, i.e. failed
38    covariance step, warnings etc, were not handled correctly when the
39    raw_results files were compiled. This is now fixed.
41  - In 2.2.1, we added a check for a '1' to find the end of the omega
42    and sigma estimate areas. this was a mistake since problems with
43    more than 13 omegas or sigmas get a '1'-line inserted before the
44    14:th estimate (for some reason). This is now removed.
46 Changes from 2.2.2-beta3 to 2.2.2-beta4
48 Features
50  - No new features
52 Bug Fixes
54  - Adaptive number of threads is now working in the new asynchronuous
55    job handling
57  - The CWRES computation had some fixes
59  - $INFN is now printed before $MODEL
61  - $OMEGA is now printed befor $PK
63  - PRIOR is now handled in the output module. It is still a bit
64    problematic to parse PRIOR output files correctly. Use with
65    causion.
67  - The initial estimates of large omega and sigma matrices is now
68    better handled
70  - The order of parsing events in the output module is now working
71    better.
73  - The handling of retries (or the results of retries) is now working
74    as it should.
76 Changes from 2.2.2-beta2 to 2.2.2-beta3
78 Features
80  - CWRES: Conditional weighted residuals. The necessary verbatim code
81    for the computation of CWRES are now automatically added if the
82    option -compute_cwres is used.
84  - PRIOR: The use of priors in NONMEM VI is now supported in the
85    computer intensive methods
87  - The behavior of the parallel execution has been revised, moving
88    from a synchronuous to an asynchronuous solution. Previously, the
89    memory foot-print of a parallel execution of say 100 NONMEM jobs
90    was huge (counted in several GB) and did not scale well. Now, it
91    will very seldom exceed 100 MB and more or less keep that size,
92    regardless of the number of parallel jobs.
94 Bug Fixes
96  - PsN couldn't parse IGNORE=(ITEM=VALUE) options in $DATA. This is
97    (again) fixed. It was previously corrected in the development
98    branch of PsN but never transferred to the stable branch.
100  - Fixed SAME block correlation computation.
102 Changes from 2.2.2-beta1 to 2.2.2-beta2
104 Features
106  - The parsing of the NONMEM output files has been revised and a
107    strict check is now performed after each section has been parsed. A
108    parsing error is raised if any non-compliant structures are
109    found. By doing this we get a better idea of which runs that really
110    finishes and which runs that are pre-maturely terminated
111    (e.g. through a operating system error). Remember that this is a
112    beta release and that there could still be valid text structures
113    that are not yet recognised correctly by PsN.
115  - Support for United Devices grip MP has been added and is available using 
116    "-run_on_ud" command line option.
118 Bug Fixes
120  - the options directory and backwards_dir can now be specified in the
121    scm configuration file
123  - It is now possible to skip the definition of either continuous and
124    categorical covariates in the scm configuration file
126  - The exponential relation is now added correctly in the
127    scm. Previously it was incorrectly added as (for weight on volume)
128       TVV = THETA(1)*(1+EXP(THETA(2)*(WGT-median(WGT))))
129    Now it is added as
130       TVV = THETA(1)*EXP(THETA(2)*(WGT-median(WGT)))
132  - The output parse now computes correlations for omegas and sigmas correctly
133    when you have SAME blocks.
135 Changes from 2.2.1 to 2.2.2-beta1
137 Features
139  - The number of significant digits per parameter after a terminated
140    minimization are now parsed.
142 Bug Fixes
144  - The sample size option of the bootstrap did not work correctly with
145    stratified resampling. This is now fixed.
148 Changes from 2.2.0 to 2.2.1
150 Features
152  - Added support for the Intel Fortran compiler (mostly for those
153    using the new Intel Macs).
155  - We have added two new model fit quality terms: 'terminated' and
156    'really_bad' to the previous 'normal' and 'picky'.
158    picky      - Minimization and covariance steps successful, no 
159                 parameters near boundaries and no warnings from the
160                 covariance step.
162    normal     - Minimization successful
164    terminated - Estimates of the objective function value and the
165                 number of significant digits are available.
167    really_bad - An estimate of the OFV is available (but usually not
168                 much more...).
170    Given that more than one run from a run has been performed (with
171    different initial estimates but otherwise identical) the following
172    selection procedure is done:
174    The lowest OFV of all tries is collected. Then, all runs within
175    5 units of the lowest OFV is tried according to
177    1. Of the runs passing the picky criteria, choose the run with the
178       highest number of significant digits.
180    2. If no run has passed the criteria above: of the runs passing the
181       normal criteria, choose the one with the highest number of
182       sginificant digits.
184    3. If no run has passed the criteria above: of the runs passing the
185       terminated criteria, choose the one with the highest number of
186       sginificant digits.
188    4. If still no run has passed the criteria above: of all runs that
189       at least have an estimate of the OFV, choose the run with the
190       lowest OFV.
192    5. As a last resort, choose the first run.
194    Comments: This is of course a very pragmatic approach but it is
195    needed to make the automatic procedures of the PsN tools to
196    work. We cannot force the user to manually scrutinise the results
197    of every single run of for example a bootstrap. The user has the
198    opportunity to do so if he or she wishes. If you do not feel
199    comfortable with this selection procedure or if you have comments
200    on how to improve it, please contact me (Lars Lindbom) at
201    lars.lindbom (at) farmbio.uu.se.
203 Bugfixes
205  - Data files with spaces around commas used for columns separation
206    could be problematic to parse. This is now fixed.
208  - There was a serious error in the seed handling in version
209    2.2.0. Under the following circumstances, the seed number was
210    ignored and a default seed number used: If the output file from the
211    original run was not present in the same directory as the original
212    model file when a PsN tool was started. This affected all PsN
213    tools, except the execute tool. This is now fixed.
215  - Up to 20 omegas can now be parsed in the output file. This is still
216    a limitation and it will be addressed in later releases.
218  - On fast distributed systems with a shared file system, the massive
219    parallelisation of the PsN tools could cause synchronization
220    problems (files could sometimes not be found, read or written). The
221    root of this problem is somewhat outside of the scope of PsN but we
222    have tried to find a workaround for this for the LSF grid system.
224 Changes from 2.1.10 to 2.2.0 ( released for PsN course )
226 Features
228  - PsN Output module use a proper Matrix library for handling some of
229    the matrices of the outputfile.
231  - The bootstrap can now be resumed with a lower number of
232    samples. Meaning that if you are in a hurry and want to stop the
233    bootstrap and get results after 1000 out of 2000 runs, you can. At
234    a later time you can then resume the 2000 runs.
236  - Nonmem warnings are now printed if "--verbose" is givven.
238  - Automatic incrementation of directory names are a bit smarter (no
239    more "directory modelfit_dirX is in the way" messages).
241  - Clean is much more stringent and intelligent and now manages to
242    remove entire tool directories if desired.
244  - option list printed from "-h|-?" only shows utility specific options.
246  - Default values configurable on a per utility basis.
248  - Online documentation improved
249    
250  - Parallel run of NONMEM is not aborted as before if a outputfile is
251    not correctly parsed. It is just ignored, as if it had not
252    minimized successfully. (actually it is the output parser that
253    doesn't die, but the effect is the same)
255  - Parallel run is a bit nicer to the system when compiling many
256    NONMEMS. By adding a configurable delay between starts.
258  - Matlab and R scripts for various plots from cdd and bootstrap
259    results are distributed with PsN.
261  - Vast improvments in results presentations from all tools.
263  - Improvements in rerun algoritm with new "min_retries" option.
265  - Output from running utilties are much nicer.
267  - new "-quick_summary" prints minimization message and ofv value for
268    each finished run. As does "-verbose" option which also prints
269    "R:X" for each retrie (X is the retrie number).
271  - new "-summary" options prints diagnostics about the tool run when
272    it is finished. For "execute" the "-summary" option will have the
273    same function as the "sumo" utiltiy as well as some diagnostics.
275  - PsN now recognizes that control files may require fortran files and
276    copies them to the run directory. No need to add fotran files to
277    the --extra_files option any more.
279  - Added --extra_output which allows you to copy more than the output 
280    file from the run directory.
282 Bugs
284  - PsN couldn't parse IGNORE=(ITEM=VALUE) options in $DATA. Fixed :)
286  - If star notation was used in the scm config file section [inits],
287    [upper_bounds] or [lower_bounds] there was a risk of defining
288    relations that was not specified in [test_relations]. Which in turn
289    would cause a lot of diffrent errors. Fixed :)
291  - Using low_cutoff and hi_cutoff in data::sd resulted in PsN trying to use
292    the new compact data strings as the old arrays. fixed.
294  - Removed unecessary regular expression in output file parser.
296  - Not really a bug. But i tried to add "FIX" as a record option to a theta
297    records. Then when "store_init" was called on the "FIX" option PsN crashed
298    because the option was not a "theta_option". So i added a check for
299    "store_init" abilties... if FIX would become a record option in the future.
301  - Member accessor "datafile" replaced with "datafiles" in model. Affected
302    only the bootstrap which have been updated.
304  - An assumptions about outputfiles crashed sumo occationally. Some more
305    rigorous contentchecking has been added and fixed the problem.
307 Internal changes
308  - Cleanup of dubious utility options.
309  - Option help sorted alphabetically.
310  - "flush", "target" removed from model.
311  - "remove_temp_files" removed from modelfit.
312  - Changed the Makefile considerably, much simpler now.
313  - added "column_to_array" function in data module.
315 Changes from 2.1.9 to 2.1.10
317 Features
318 - The 'picky' option of all utilities now triggers on 
319         COVARIANCE STEP ABORTED         and
320         PROGRAM TERMINATED BY OBJ
322 Changes from 2.1.8 to 2.1.9
324 Features
325  - Nordugrid support reintroduced (but will probably not be developed further)
326  - Sumo now supports multiple problems and subproblems.
327  - Sumo has new option "precision" which control the number of digits
328    to present estimates with.
329  - An extra 'short' logfile is output from the scm with the most important
330    information.
332 Bugs
333  - Bootstrap option "stratify_on" doesn't work with columns defined in 
334    extra data files given with "extra_data" option. Not Fixed.
335  - Resumes of scm's with extra_data_files is now possible. Still some 
336    problems with scm's where search_direction=both.
337  - LSF options was not communicated properly between tools and subtools
338    so submission of bootstraps, llp, cdd and scm did not work. Fixed.
339  - Default values for LSF can now be configured in psn.conf.
340  - Print order of modelfiles places $MIX before $PRED. Fixed.
341  - extra_files option was broken. Fixed.
343 Internal Changes
344  - Tool will always fork subtools, this will save memory in the scm (and
345    other recursive tools).
346  - Common options need only be specified once. In one of three categories:
347    model_options, tool_options, script_options.
348  - models can now be created with "reference" objects. This solved the
349    scm resume problem.
350  - Added function to model that cleans extra data code.
352 Changes from 2.1.7 to 2.1.8
354 Features
355  - Rudimentary support for execution on Platform LSF grid systems is now
356    included. The following extra attributes are available to all tools
357    for controlling the execution:
359        run_on_lsf       - Use LSF
360        lsf_queue        - Use this queue on the grid
361        lsf_options      - General options for the grid queuing system.
362        lsf_project_name - Optional. May be used by the grid system
363                           administrator to register control project
364                           cpu usage.
365        lsf_job_name     - Optional. May be used by a grid system
366                           administrator to control multiple runs on a
367                           grid system.
369  - All tools now have a raw_results file holding the diagnotics and
370    parameter estimates for each NONMEM run.
371  - All tools now handles model files containing one $PROBLEM and no
372    SUBPROBLEMS only.
373  - The Bootstrap and CDD routines now create separate files holding
374    information about which individuals that were included/excluded
375    in/from each created data set.
376  - The Bootstrap results file now has warnings section to better
377    display which runs that were used for result calculations and which
378    were not
379  - PsN now tries to read psn.conf from the users home directory. (Will
380    require some extra documentation).
381  - Optimized modelfit thread operation by removing Storable::Store.
382  - The clean options has four levels of operation.
384         0 - No cleaning at all.
385         1 - Clean more, but make sure resumes work (this is default).
386         2 - Clean more, but make sure summarize work.
387         3 - Clean everything, keeping only results and logs.
389  - Some attributes and accessors of the PsN-Core class 'output' have
390    had their names changed to make it more clear what their purposes
391    are:
392         termination           is now called     minimization_successful
393         termination_message   is now called     minimization_message
394         covstep_termination   is now called     covariance_step_successful
396    these attributes are new:
398         covariance_step_warnings (boolean; 0 or 1)
399         estimate_near_boundary (boolean; 0 or 1)
401    The attribute which was previously called termination could have the
402    values 0, 0.5 and 1 for 'minimization terminates', 'minimization
403    successful but warnings or errors were printed from the covariance
404    step' and finally 'minimization successful'. The new attribute
405    'minimization_successful' can only take the values 0 and 1 and the
406    new attribute covariance_step_warnings now takes the value 1 when
407    covariance step warnings were found. Checks are also perfomed to
408    test whether the estimates are close to any boundary.
409  - Html documents is now generated from command line help text.
410    which ensures that they are consistent and up to date.
411  - Personal configuration file now available under Unix like OS:s
413 Bugs
414  - Options specific to modelfiles were ignored in some Utilties.
415  - Gradients now output in windows. Just like with nmfe.
416  - Bootstrap now consumes considerably less memory.
417  - Removed unused/obsolete "resume" function from modelfit.
418  - Sorted method entries in modelfit diagram.
419  - Fixed bugs in parsing of OFV and eigenvalues.
421 Changes from 2.1.6 to 2.1.7
423 Bugs
424  - "clean" and "compress" options now work under Windows.
425  - SCM now handles crashed runs appropriately.
426  - The ofv_forward, ofv_backward, p_forward and p_backward options of
427    scm now works as they should.
429 Features
430  - SCM improvements. The final model is now available in the
431    first-level scm directory of each step.
432  - The Utilties -help option is improved. You can now give a list of
433    options to -help for specific documentation of those options, like
434    so:
435    
436    $ scm -help do_not_drop
438  - Minor changes in how the [nm_version] section in psn.conf i
439    handled. Look in the psn.conf file that is distributed with PsN for
440    more information.
441  - SDE modelfiles are now supported. (see the -sde_records option)
442  - The update_inits method of the model class now accepts an output
443    file name as input.
444  - Some attributes and accessors of the PsN-Core class 'output' have
445    had their names changed to make it more clear what their purposes
446    are:
447         finalgrad          is now called     final_gradient
448         parampath          is now called     parameter_path
449         gradientpath       is now called     gradient_path
450         covterm            is now called     covstep_termination 
451  - The Utilties now saves the command line that started it in a file
452    "command.txt" under the corresponding directory.
453  - Added a "silent" option to the Utilties that quenches all output.
454  - "nice" option added to utilties that allows you to set priority in
455    unix.
456  - Rudimentary support for NorduGrid reinstated.
457  - Installer script rewritten. It now supports Perl installations in
458    nonstandard directories. Discrepancies between *nix and MSWin32 is
459    smaller.
461 Internal changes
462  - The code that is autogenerated with "dia2code" is optimized a
463    bit and saves a hash "__valid_parameters" in each object, which
464    allows the constructors to be used as a generic (shallow) copy.
466 Misc
467  - continuous spelled correctly throughout SCM.
470 Changes from 2.1.5 to 2.1.6
472 Bugs
473  - Stratify_on bug in bootstrap method fixed.
474  - Data files in directories different from model file are now
475    possible.
476  - Path name handling reimplemented. Relative paths are now handled
477    better.
478  - Models that generate table files would make PsN complain about
479    missing files.
480  - Its now possible to specify multiple output names as a
481    comma-separated list to execute.
482  - The scm can now go backwards.
483  - Handling of table files now responds to the
484    "ignore_missing_output_files" flag.
485  - nmtran error messages was lost in Windows 2K. Execution of nmtran
486    is more plattform independent now.  It uses a temporary file, but
487    it is never bigger than the nmtran messages.
488  - Fixed a bug that limited choice of compiler under unix.
489  - Typo in scm utility fixed. (included_relations in backwards step).
491 Features
492  - Added support for "$NONPARAMETRIC" record in model files.
493  - A few improved error messages related to parsing of model files.
494  - The SCM config file now features sections for parameter bounds and
495    user-defined code
497 Internal changes
498  - psn.conf settings are now available as global variables. psn.conf
499    is only parsed once.