added files from PsN-2_2_0_patches_serial missing in MAIN
[PsN.git] / README.txt
bloba0866100b30991b25153c2c462d92d038cb26f46
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.3 to 2.2.4
15 Features
17  - "--compute_cwres" option renamed to simply "--cwres"
19  - Simulated data suitable for creating mirror plots can be generated
20    by using a new options called --mirror_plots. The option takes a
21    value which defines the number of simulations that will be
22    geneated.
24  - A new option, --iofv, enables the computation of individual
25    objective function values. These values are printed to a table file
26    called iotab*, where * is the same number as is defined for any
27    sdtab or patab tables. These names correspond to the normal Xpose
28    table file format. If no sdtab or patab table is found in the
29    NONMEM control stream, the iotab file is given number 1.
31  - msfo resumes. Basic support for automatically rerunning a model
32    that has the MSFO=msffile option on $ESTIMATION. If the option is
33    set, the "msffile" exists and the option --msfo_resume is givven,
34    PsN will remove initial estimates, and add the $MSFI record. This
35    is very untested and if you have OMEGA blocks, the model will run
36    but PsN will be unable to read the output file properly.
38  - "no_remote_compile" and "no_remote_execution" options has been
39    removed, as they were quite seldomly used and added a lot of
40    complexity to parallization code.
42  - Added --prepend_model_file_name option which adds the model file
43    name to output files to prevent them from being overwritten.
45  - A new option called "crash_restarts" which controls the number of
46    times PsN will restart a crashed run. (Simply put, run is
47    classified as crashed if the output file looks like it is cut off)
49  - PsN will now automatically run R-scripts generated for the
50    bootstrap, cdd and llp if R is installed and configured.
52  - When the CONT data item is used - either defined by the user or
53    automatically through the -wrap_data option - the tables get a
54    weird format where the real table content is printed on CONT=0 rows
55    and nonsense data printed on CONT=1 rows. A new option called
56    -unwrap_table_files reformats the table files and removes the CONT
57    column as well as all CONT=1 rows.
59  - update_inits script that will put final estimates from a NONMEM
60    output file and put into a given model file. This is quite
61    experimental. PsN will reformat the model file quite lot and
62    comments in the file might get lost. Your model file will be copied
63    with the addition of a ".org" extension, so you wont loose your
64    model.
66 Bug Fixes
68  - SGE queue and resource options were ignored. Fixed thanks to Jeroen
69    Elassaiss and Stefan Verhoeven.
71  - LSF Monitor fixed to work with the new serialized structure of PsN,
72    again thanks to Jeroen and Stefan.
74  - CWRES table file number now defaults to 1 if there is no patab or
75    sdtab to take the number from.
77  - Fixed run bugs under Windows 2000.
79  - Better support for G77 under windows.
81  - Parser for output files improved
83 Changes from 2.2.2 to 2.2.3
85 Features
87  - There has been a lot of requests for a raw_results file for the
88    runs in the NM_run catalogs, i.e. a summary of the runs with
89    perturbed initial estimates. This is now implemented. One
90    raw_results file is now created in each NM_run* catalog.
92  - The R-scripts for graphical visualization of bootstrap and cdds
93    have been updated. The format for the graphs is now pdf instead of
94    postscript. The bootstrap script can now be adjusted to exclude
95    bootstrap samples that contain copies of a given set of
96    individuals.
98  - When the wrap_data option is used, the secondary columns, i.e. the
99    data columns that are kept on rows with CONT=1, are now available
100    in $ERROR.
102 Bug Fixes
104  - The calculation of CWRES was previously done on the _last_ run of a
105    set of retries, not on the _best_ run. This has now been corrected.
107  - The restarting of crashed runs was broken. This is now fixed. 
109  - The asynchronuous job scheduling broke the handling of seed numbers
110    for random sequences (e.g. perturbation of initial estimates). This
111    is now fixed. The present version is however not compatible with
112    older versions and old runs should therefore not be resumed using
113    this version.
115  - wrap_data should now work as it should. The functionality was
116    broken as a consequence of the move to the asynchronuous job
117    handling.
119  - Labels for omegas were not handled correctly for SAME blocks. Among
120    other things, this had the effect that the updating of initial
121    estimates from the original model to the method created models
122    (e.g. bootstrap samples) was corrupted. This is now fixed.
124  - The transformation of the estimate of the omega matrix from
125    variance and covariances to standard deviations and correlations
126    was rewritten to address problems with a combination of BLOCK(X)
127    ans SAME where X was larger than 1.
129  - The selection of a 'best' model fit after a series of perturbations
130    of the initial estimates will be changed. In 2.2.2, the lowest OFV
131    among fits of the perturbed models was collected across all models
132    (still only comparing identical models with perturbed initial
133    estimates). In 2.2.3 the lowest OFV is collected in three
134    categories of model fits: those that minimized succesfully, those
135    that did not minimize successfully but returned an OFV plus an
136    estimate of the number of significant digits and finally failed
137    runs that managed to return an OFV but not much more. This will
138    give PsN a more fine-grained control over the results. For example,
139    it would be desirable to be able to return the run with the lowest
140    OFV within the selection of runs with a successful minimization
141    even though the lowest OFV of all perturbed runs was returned from
142    a run that terminated.
144  - The sigmas were not parsed correctly when tables were printed to
145    the output file. This is not fixed.
147  - Terminated covariance steps were sometimes still being parsed (and
148    failed). Fixed.
150  - Setting the clean level to 3 did not remove the
151    NM_run-directories. This is now fixed.
153  - The parsing of options for the initial values of omegas and sigmas
154    sometimes wrongly recognized letters behind a semi-colon (i.e. a
155    comment) as keywords for a block (FIX, SAME, etc). This is now
156    corrected.
158  - If you "fix" more than one omega or sigma in a block PsN would put
159    a FIX after each value, which NONMEM doesn't allow. Now PsN will
160    only put one FIX inside a block. However, if a any part of the
161    block has been fixed, its likely so that PsN can not(!) unfix
162    it.(so, one bug fixed, another introduced)
164  - If you an initial estimate was added with "_init_attr", the option
165    "add_if_absent" was true and the last initial estimate was "SAME"
166    PsN would try to add the estimate after "SAME" which is wrong, now
167    PsN adds a new record.
169  - Fixed a parsing error of the lst file. If simulation without a
170    SIGMA was performed, the parser failed to read OMEGA initial
171    estiamtes.
173  - The internal method "indexes" would not properly handle "SAME" in
174    initial estimates. The result was that "update_inits" would skip
175    initial values, and get them out of order. Fixed.
178 Changes from 2.2.2-beta4 to 2.2.2
180 Features
182  - CWRES can now be calculated automatically if you have R and Xpose
183    installed. Remember to add a definition of IPRED in your NONMEM model.
185  - This version handles non-PsN standard (or absent) suffixes for
186    model files better than earlier versions.
188 Bug Fixes
190  - MSFO files are now copied back to the same directory of the model
191    file.
193  - MSFI files are now automatically copied to the PsN NONMEM run
194    directories.
196  - Output files from runs where the $MSFI record was used were not
197    parsed correctly. This is now fixed.
199  - Output files from runs where no $OMEGA _or_ $SIGMA were defined
200    were not parsed correctly.
202  - The header and the results from problematic runs, i.e. failed
203    covariance step, warnings etc, were not handled correctly when the
204    raw_results files were compiled. This is now fixed.
206  - In 2.2.1, we added a check for a '1' to find the end of the omega
207    and sigma estimate areas. this was a mistake since problems with
208    more than 13 omegas or sigmas get a '1'-line inserted before the
209    14:th estimate (for some reason). This is now removed.
211 Changes from 2.2.2-beta3 to 2.2.2-beta4
213 Features
215  - No new features
217 Bug Fixes
219  - Adaptive number of threads is now working in the new asynchronuous
220    job handling
222  - The CWRES computation had some fixes
224  - $INFN is now printed before $MODEL
226  - $OMEGA is now printed befor $PK
228  - PRIOR is now handled in the output module. It is still a bit
229    problematic to parse PRIOR output files correctly. Use with
230    causion.
232  - The initial estimates of large omega and sigma matrices is now
233    better handled
235  - The order of parsing events in the output module is now working
236    better.
238  - The handling of retries (or the results of retries) is now working
239    as it should.
241 Changes from 2.2.2-beta2 to 2.2.2-beta3
243 Features
245  - CWRES: Conditional weighted residuals. The necessary verbatim code
246    for the computation of CWRES are now automatically added if the
247    option -compute_cwres is used.
249  - PRIOR: The use of priors in NONMEM VI is now supported in the
250    computer intensive methods
252  - The behavior of the parallel execution has been revised, moving
253    from a synchronuous to an asynchronuous solution. Previously, the
254    memory foot-print of a parallel execution of say 100 NONMEM jobs
255    was huge (counted in several GB) and did not scale well. Now, it
256    will very seldom exceed 100 MB and more or less keep that size,
257    regardless of the number of parallel jobs.
259 Bug Fixes
261  - PsN couldn't parse IGNORE=(ITEM=VALUE) options in $DATA. This is
262    (again) fixed. It was previously corrected in the development
263    branch of PsN but never transferred to the stable branch.
265  - Fixed SAME block correlation computation.
267 Changes from 2.2.2-beta1 to 2.2.2-beta2
269 Features
271  - The parsing of the NONMEM output files has been revised and a
272    strict check is now performed after each section has been parsed. A
273    parsing error is raised if any non-compliant structures are
274    found. By doing this we get a better idea of which runs that really
275    finishes and which runs that are pre-maturely terminated
276    (e.g. through a operating system error). Remember that this is a
277    beta release and that there could still be valid text structures
278    that are not yet recognised correctly by PsN.
280  - Support for United Devices grip MP has been added and is available using 
281    "-run_on_ud" command line option.
283 Bug Fixes
285  - the options directory and backwards_dir can now be specified in the
286    scm configuration file
288  - It is now possible to skip the definition of either continuous and
289    categorical covariates in the scm configuration file
291  - The exponential relation is now added correctly in the
292    scm. Previously it was incorrectly added as (for weight on volume)
293       TVV = THETA(1)*(1+EXP(THETA(2)*(WGT-median(WGT))))
294    Now it is added as
295       TVV = THETA(1)*EXP(THETA(2)*(WGT-median(WGT)))
297  - The output parse now computes correlations for omegas and sigmas correctly
298    when you have SAME blocks.
300 Changes from 2.2.1 to 2.2.2-beta1
302 Features
304  - The number of significant digits per parameter after a terminated
305    minimization are now parsed.
307 Bug Fixes
309  - The sample size option of the bootstrap did not work correctly with
310    stratified resampling. This is now fixed.
313 Changes from 2.2.0 to 2.2.1
315 Features
317  - Added support for the Intel Fortran compiler (mostly for those
318    using the new Intel Macs).
320  - We have added two new model fit quality terms: 'terminated' and
321    'really_bad' to the previous 'normal' and 'picky'.
323    picky      - Minimization and covariance steps successful, no 
324                 parameters near boundaries and no warnings from the
325                 covariance step.
327    normal     - Minimization successful
329    terminated - Estimates of the objective function value and the
330                 number of significant digits are available.
332    really_bad - An estimate of the OFV is available (but usually not
333                 much more...).
335    Given that more than one run from a run has been performed (with
336    different initial estimates but otherwise identical) the following
337    selection procedure is done:
339    The lowest OFV of all tries is collected. Then, all runs within
340    5 units of the lowest OFV is tried according to
342    1. Of the runs passing the picky criteria, choose the run with the
343       highest number of significant digits.
345    2. If no run has passed the criteria above: of the runs passing the
346       normal criteria, choose the one with the highest number of
347       sginificant digits.
349    3. If no run has passed the criteria above: of the runs passing the
350       terminated criteria, choose the one with the highest number of
351       sginificant digits.
353    4. If still no run has passed the criteria above: of all runs that
354       at least have an estimate of the OFV, choose the run with the
355       lowest OFV.
357    5. As a last resort, choose the first run.
359    Comments: This is of course a very pragmatic approach but it is
360    needed to make the automatic procedures of the PsN tools to
361    work. We cannot force the user to manually scrutinise the results
362    of every single run of for example a bootstrap. The user has the
363    opportunity to do so if he or she wishes. If you do not feel
364    comfortable with this selection procedure or if you have comments
365    on how to improve it, please contact me (Lars Lindbom) at
366    lars.lindbom (at) farmbio.uu.se.
368 Bugfixes
370  - Data files with spaces around commas used for columns separation
371    could be problematic to parse. This is now fixed.
373  - There was a serious error in the seed handling in version
374    2.2.0. Under the following circumstances, the seed number was
375    ignored and a default seed number used: If the output file from the
376    original run was not present in the same directory as the original
377    model file when a PsN tool was started. This affected all PsN
378    tools, except the execute tool. This is now fixed.
380  - Up to 20 omegas can now be parsed in the output file. This is still
381    a limitation and it will be addressed in later releases.
383  - On fast distributed systems with a shared file system, the massive
384    parallelisation of the PsN tools could cause synchronization
385    problems (files could sometimes not be found, read or written). The
386    root of this problem is somewhat outside of the scope of PsN but we
387    have tried to find a workaround for this for the LSF grid system.
389 Changes from 2.1.10 to 2.2.0 ( released for PsN course )
391 Features
393  - PsN Output module use a proper Matrix library for handling some of
394    the matrices of the outputfile.
396  - The bootstrap can now be resumed with a lower number of
397    samples. Meaning that if you are in a hurry and want to stop the
398    bootstrap and get results after 1000 out of 2000 runs, you can. At
399    a later time you can then resume the 2000 runs.
401  - Nonmem warnings are now printed if "--verbose" is givven.
403  - Automatic incrementation of directory names are a bit smarter (no
404    more "directory modelfit_dirX is in the way" messages).
406  - Clean is much more stringent and intelligent and now manages to
407    remove entire tool directories if desired.
409  - option list printed from "-h|-?" only shows utility specific options.
411  - Default values configurable on a per utility basis.
413  - Online documentation improved
414    
415  - Parallel run of NONMEM is not aborted as before if a outputfile is
416    not correctly parsed. It is just ignored, as if it had not
417    minimized successfully. (actually it is the output parser that
418    doesn't die, but the effect is the same)
420  - Parallel run is a bit nicer to the system when compiling many
421    NONMEMS. By adding a configurable delay between starts.
423  - Matlab and R scripts for various plots from cdd and bootstrap
424    results are distributed with PsN.
426  - Vast improvments in results presentations from all tools.
428  - Improvements in rerun algoritm with new "min_retries" option.
430  - Output from running utilties are much nicer.
432  - new "-quick_summary" prints minimization message and ofv value for
433    each finished run. As does "-verbose" option which also prints
434    "R:X" for each retrie (X is the retrie number).
436  - new "-summary" options prints diagnostics about the tool run when
437    it is finished. For "execute" the "-summary" option will have the
438    same function as the "sumo" utiltiy as well as some diagnostics.
440  - PsN now recognizes that control files may require fortran files and
441    copies them to the run directory. No need to add fotran files to
442    the --extra_files option any more.
444  - Added --extra_output which allows you to copy more than the output 
445    file from the run directory.
447 Bugs
449  - PsN couldn't parse IGNORE=(ITEM=VALUE) options in $DATA. Fixed :)
451  - If star notation was used in the scm config file section [inits],
452    [upper_bounds] or [lower_bounds] there was a risk of defining
453    relations that was not specified in [test_relations]. Which in turn
454    would cause a lot of diffrent errors. Fixed :)
456  - Using low_cutoff and hi_cutoff in data::sd resulted in PsN trying to use
457    the new compact data strings as the old arrays. fixed.
459  - Removed unecessary regular expression in output file parser.
461  - Not really a bug. But i tried to add "FIX" as a record option to a theta
462    records. Then when "store_init" was called on the "FIX" option PsN crashed
463    because the option was not a "theta_option". So i added a check for
464    "store_init" abilties... if FIX would become a record option in the future.
466  - Member accessor "datafile" replaced with "datafiles" in model. Affected
467    only the bootstrap which have been updated.
469  - An assumptions about outputfiles crashed sumo occationally. Some more
470    rigorous contentchecking has been added and fixed the problem.
472 Internal changes
473  - Cleanup of dubious utility options.
474  - Option help sorted alphabetically.
475  - "flush", "target" removed from model.
476  - "remove_temp_files" removed from modelfit.
477  - Changed the Makefile considerably, much simpler now.
478  - added "column_to_array" function in data module.
480 Changes from 2.1.9 to 2.1.10
482 Features
483 - The 'picky' option of all utilities now triggers on 
484         COVARIANCE STEP ABORTED         and
485         PROGRAM TERMINATED BY OBJ
487 Changes from 2.1.8 to 2.1.9
489 Features
490  - Nordugrid support reintroduced (but will probably not be developed further)
491  - Sumo now supports multiple problems and subproblems.
492  - Sumo has new option "precision" which control the number of digits
493    to present estimates with.
494  - An extra 'short' logfile is output from the scm with the most important
495    information.
497 Bugs
498  - Bootstrap option "stratify_on" doesn't work with columns defined in 
499    extra data files given with "extra_data" option. Not Fixed.
500  - Resumes of scm's with extra_data_files is now possible. Still some 
501    problems with scm's where search_direction=both.
502  - LSF options was not communicated properly between tools and subtools
503    so submission of bootstraps, llp, cdd and scm did not work. Fixed.
504  - Default values for LSF can now be configured in psn.conf.
505  - Print order of modelfiles places $MIX before $PRED. Fixed.
506  - extra_files option was broken. Fixed.
508 Internal Changes
509  - Tool will always fork subtools, this will save memory in the scm (and
510    other recursive tools).
511  - Common options need only be specified once. In one of three categories:
512    model_options, tool_options, script_options.
513  - models can now be created with "reference" objects. This solved the
514    scm resume problem.
515  - Added function to model that cleans extra data code.
517 Changes from 2.1.7 to 2.1.8
519 Features
520  - Rudimentary support for execution on Platform LSF grid systems is now
521    included. The following extra attributes are available to all tools
522    for controlling the execution:
524        run_on_lsf       - Use LSF
525        lsf_queue        - Use this queue on the grid
526        lsf_options      - General options for the grid queuing system.
527        lsf_project_name - Optional. May be used by the grid system
528                           administrator to register control project
529                           cpu usage.
530        lsf_job_name     - Optional. May be used by a grid system
531                           administrator to control multiple runs on a
532                           grid system.
534  - All tools now have a raw_results file holding the diagnotics and
535    parameter estimates for each NONMEM run.
536  - All tools now handles model files containing one $PROBLEM and no
537    SUBPROBLEMS only.
538  - The Bootstrap and CDD routines now create separate files holding
539    information about which individuals that were included/excluded
540    in/from each created data set.
541  - The Bootstrap results file now has warnings section to better
542    display which runs that were used for result calculations and which
543    were not
544  - PsN now tries to read psn.conf from the users home directory. (Will
545    require some extra documentation).
546  - Optimized modelfit thread operation by removing Storable::Store.
547  - The clean options has four levels of operation.
549         0 - No cleaning at all.
550         1 - Clean more, but make sure resumes work (this is default).
551         2 - Clean more, but make sure summarize work.
552         3 - Clean everything, keeping only results and logs.
554  - Some attributes and accessors of the PsN-Core class 'output' have
555    had their names changed to make it more clear what their purposes
556    are:
557         termination           is now called     minimization_successful
558         termination_message   is now called     minimization_message
559         covstep_termination   is now called     covariance_step_successful
561    these attributes are new:
563         covariance_step_warnings (boolean; 0 or 1)
564         estimate_near_boundary (boolean; 0 or 1)
566    The attribute which was previously called termination could have the
567    values 0, 0.5 and 1 for 'minimization terminates', 'minimization
568    successful but warnings or errors were printed from the covariance
569    step' and finally 'minimization successful'. The new attribute
570    'minimization_successful' can only take the values 0 and 1 and the
571    new attribute covariance_step_warnings now takes the value 1 when
572    covariance step warnings were found. Checks are also perfomed to
573    test whether the estimates are close to any boundary.
574  - Html documents is now generated from command line help text.
575    which ensures that they are consistent and up to date.
576  - Personal configuration file now available under Unix like OS:s
578 Bugs
579  - Options specific to modelfiles were ignored in some Utilties.
580  - Gradients now output in windows. Just like with nmfe.
581  - Bootstrap now consumes considerably less memory.
582  - Removed unused/obsolete "resume" function from modelfit.
583  - Sorted method entries in modelfit diagram.
584  - Fixed bugs in parsing of OFV and eigenvalues.
586 Changes from 2.1.6 to 2.1.7
588 Bugs
589  - "clean" and "compress" options now work under Windows.
590  - SCM now handles crashed runs appropriately.
591  - The ofv_forward, ofv_backward, p_forward and p_backward options of
592    scm now works as they should.
594 Features
595  - SCM improvements. The final model is now available in the
596    first-level scm directory of each step.
597  - The Utilties -help option is improved. You can now give a list of
598    options to -help for specific documentation of those options, like
599    so:
600    
601    $ scm -help do_not_drop
603  - Minor changes in how the [nm_version] section in psn.conf i
604    handled. Look in the psn.conf file that is distributed with PsN for
605    more information.
606  - SDE modelfiles are now supported. (see the -sde_records option)
607  - The update_inits method of the model class now accepts an output
608    file name as input.
609  - Some attributes and accessors of the PsN-Core class 'output' have
610    had their names changed to make it more clear what their purposes
611    are:
612         finalgrad          is now called     final_gradient
613         parampath          is now called     parameter_path
614         gradientpath       is now called     gradient_path
615         covterm            is now called     covstep_termination 
616  - The Utilties now saves the command line that started it in a file
617    "command.txt" under the corresponding directory.
618  - Added a "silent" option to the Utilties that quenches all output.
619  - "nice" option added to utilties that allows you to set priority in
620    unix.
621  - Rudimentary support for NorduGrid reinstated.
622  - Installer script rewritten. It now supports Perl installations in
623    nonstandard directories. Discrepancies between *nix and MSWin32 is
624    smaller.
626 Internal changes
627  - The code that is autogenerated with "dia2code" is optimized a
628    bit and saves a hash "__valid_parameters" in each object, which
629    allows the constructors to be used as a generic (shallow) copy.
631 Misc
632  - continuous spelled correctly throughout SCM.
635 Changes from 2.1.5 to 2.1.6
637 Bugs
638  - Stratify_on bug in bootstrap method fixed.
639  - Data files in directories different from model file are now
640    possible.
641  - Path name handling reimplemented. Relative paths are now handled
642    better.
643  - Models that generate table files would make PsN complain about
644    missing files.
645  - Its now possible to specify multiple output names as a
646    comma-separated list to execute.
647  - The scm can now go backwards.
648  - Handling of table files now responds to the
649    "ignore_missing_output_files" flag.
650  - nmtran error messages was lost in Windows 2K. Execution of nmtran
651    is more plattform independent now.  It uses a temporary file, but
652    it is never bigger than the nmtran messages.
653  - Fixed a bug that limited choice of compiler under unix.
654  - Typo in scm utility fixed. (included_relations in backwards step).
656 Features
657  - Added support for "$NONPARAMETRIC" record in model files.
658  - A few improved error messages related to parsing of model files.
659  - The SCM config file now features sections for parameter bounds and
660    user-defined code
662 Internal changes
663  - psn.conf settings are now available as global variables. psn.conf
664    is only parsed once.