1 This version of PsN is tested with perl-5.8.8
2 Depending on your distribution you may have to install the following
8 All available from CPAN ( www.cpan.org )
11 ----------------------------------------------
13 Changes from 2.2.4 to 2.2.5
17 - Monte Carslo Simulations(mcs) tool has been renamed to Stochastic
18 Simulation and Estimation(sse), and has a bunch of new
19 features. More information can be found in the SSE user guide
22 - Numerical Predictive Check(npc) and Visual Predictive Check(vpc)
23 has been added to the toolbox.
25 - Much improved results handling. Intermediate results are printed
26 each time a NONMEM run has finished. A positive side effect is much
27 reduced memory usage over all and in particular when running with
30 - Sumo tool is more verbose when parsing errors occur.
32 - General improvement in handling of parsing errors.
34 - Functionality added to parsing of data that enables memory
35 optimization in npc/vpc.
37 - max_runtime option added for unix type systems. This feature will
38 be expanded to more systems in the future.
40 - By default PsN will restart crashed runs. This feature can now be
41 disabled with "--no-handle_crashes"
43 - By default execute will copy the tables and lst file to the
44 directory where the original model file is placed. By specifying
45 "--extra_output=file1,file2" PsN will also copy any file listed. To
46 avoid files being overwritten the option
47 "--prepend_model_file_name" can be used to add the name of the
48 model file (without extension) to the front of the output files.
50 - Added support for G95. A more generic way of configuring compilers
53 - Experimental msfi/msfo functionality.
55 If the model allready has the MSFO= option or the $MSFI record set
56 and one of the files exists, then that file will be used as $MSFI
57 file in the first run. If both files exists, then the MSFO file
58 will be used as MSFI file. The file will be renamed psn_msfo-0.
60 The MSFO option will be set to psn_msfo. If the NONMEM run crashes
61 PsN will use the new msfo files as $MSFI file. This functionality
62 is considered experimental and must be enabled with "--handle_msfo".
64 Notice that any msfo files existing when doing restart will be
70 - Multiline ETABAR and PVAL in output parsed correctly.
72 - Modelfit did not copy extra subroutine files in some cases.
74 - <new script> Add IGNORE=@ to estimation models unless it
75 exists. Necessary for ignoring headers in table output.
77 - Memory leak in output parser plugged. Output files from simulations
78 could use vast amounts of memory.
80 - Bootstrap options "skip_minimization_terminated" can now be disabled
81 by typing "-no-skip-minimization_terminated" (or -noskip-...)
83 - cdd xv can no be disabled with -no-xv or -noxv
85 - Memory leak in modelfit due to intermediate "raw_results.csv" in
86 NM_runX directory fixed by reimplementing the way results handling
89 - A initial estimate of form: $OMEGA BLOCK SAME would not be
90 recognized by PsN model file parser. This is now handled
91 correctly. In 2.2.X it can be avoided by typing BLOCK(X) SAME,
92 where X is the size of the block.
94 Changes from 2.2.3 to 2.2.4
98 - "--compute_cwres" option renamed to simply "--cwres"
100 - Simulated data suitable for creating mirror plots can be generated
101 by using a new options called --mirror_plots. The option takes a
102 value which defines the number of simulations that will be
105 - A new option, --iofv, enables the computation of individual
106 objective function values. These values are printed to a table file
107 called iotab*, where * is the same number as is defined for any
108 sdtab or patab tables. These names correspond to the normal Xpose
109 table file format. If no sdtab or patab table is found in the
110 NONMEM control stream, the iotab file is given number 1.
112 - msfo resumes. Basic support for automatically rerunning a model
113 that has the MSFO=msffile option on $ESTIMATION. If the option is
114 set, the "msffile" exists and the option --msfo_resume is given,
115 PsN will remove initial estimates, and add the $MSFI record. This
116 is very untested and if you have OMEGA blocks, the model will run
117 but PsN will be unable to read the output file properly.
119 - "no_remote_compile" and "no_remote_execution" options has been
120 removed, as they were quite seldomly used and added a lot of
121 complexity to parallization code.
123 - Added --prepend_model_file_name option which adds the model file
124 name to output files to prevent them from being overwritten.
126 - A new option called "crash_restarts" which controls the number of
127 times PsN will restart a crashed run. (Simply put, run is
128 classified as crashed if the output file looks like it is cut off)
130 - PsN will now automatically run R-scripts generated for the
131 bootstrap, cdd and llp if R is installed and configured.
133 - When the CONT data item is used - either defined by the user or
134 automatically through the -wrap_data option - the tables get a
135 weird format where the real table content is printed on CONT=0 rows
136 and nonsense data printed on CONT=1 rows. A new option called
137 -unwrap_table_files reformats the table files and removes the CONT
138 column as well as all CONT=1 rows.
140 - update_inits script that will put final estimates from a NONMEM
141 output file and put into a given model file. This is quite
142 experimental. PsN will reformat the model file quite lot and
143 comments in the file might get lost. Your model file will be copied
144 with the addition of a ".org" extension, so you wont loose your
149 - SGE queue and resource options were ignored. Fixed thanks to Jeroen
150 Elassaiss and Stefan Verhoeven.
152 - LSF Monitor fixed to work with the new serialized structure of PsN,
153 again thanks to Jeroen and Stefan.
155 - CWRES table file number now defaults to 1 if there is no patab or
156 sdtab to take the number from.
158 - Fixed run bugs under Windows 2000.
160 - Better support for G77 under windows.
162 - Parser for output files improved
164 Changes from 2.2.2 to 2.2.3
168 - There has been a lot of requests for a raw_results file for the
169 runs in the NM_run catalogs, i.e. a summary of the runs with
170 perturbed initial estimates. This is now implemented. One
171 raw_results file is now created in each NM_run* catalog.
173 - The R-scripts for graphical visualization of bootstrap and cdds
174 have been updated. The format for the graphs is now pdf instead of
175 postscript. The bootstrap script can now be adjusted to exclude
176 bootstrap samples that contain copies of a given set of
179 - When the wrap_data option is used, the secondary columns, i.e. the
180 data columns that are kept on rows with CONT=1, are now available
185 - The calculation of CWRES was previously done on the _last_ run of a
186 set of retries, not on the _best_ run. This has now been corrected.
188 - The restarting of crashed runs was broken. This is now fixed.
190 - The asynchronuous job scheduling broke the handling of seed numbers
191 for random sequences (e.g. perturbation of initial estimates). This
192 is now fixed. The present version is however not compatible with
193 older versions and old runs should therefore not be resumed using
196 - wrap_data should now work as it should. The functionality was
197 broken as a consequence of the move to the asynchronuous job
200 - Labels for omegas were not handled correctly for SAME blocks. Among
201 other things, this had the effect that the updating of initial
202 estimates from the original model to the method created models
203 (e.g. bootstrap samples) was corrupted. This is now fixed.
205 - The transformation of the estimate of the omega matrix from
206 variance and covariances to standard deviations and correlations
207 was rewritten to address problems with a combination of BLOCK(X)
208 ans SAME where X was larger than 1.
210 - The selection of a 'best' model fit after a series of perturbations
211 of the initial estimates will be changed. In 2.2.2, the lowest OFV
212 among fits of the perturbed models was collected across all models
213 (still only comparing identical models with perturbed initial
214 estimates). In 2.2.3 the lowest OFV is collected in three
215 categories of model fits: those that minimized succesfully, those
216 that did not minimize successfully but returned an OFV plus an
217 estimate of the number of significant digits and finally failed
218 runs that managed to return an OFV but not much more. This will
219 give PsN a more fine-grained control over the results. For example,
220 it would be desirable to be able to return the run with the lowest
221 OFV within the selection of runs with a successful minimization
222 even though the lowest OFV of all perturbed runs was returned from
223 a run that terminated.
225 - The sigmas were not parsed correctly when tables were printed to
226 the output file. This is not fixed.
228 - Terminated covariance steps were sometimes still being parsed (and
231 - Setting the clean level to 3 did not remove the
232 NM_run-directories. This is now fixed.
234 - The parsing of options for the initial values of omegas and sigmas
235 sometimes wrongly recognized letters behind a semi-colon (i.e. a
236 comment) as keywords for a block (FIX, SAME, etc). This is now
239 - If you "fix" more than one omega or sigma in a block PsN would put
240 a FIX after each value, which NONMEM doesn't allow. Now PsN will
241 only put one FIX inside a block. However, if a any part of the
242 block has been fixed, its likely so that PsN can not(!) unfix
243 it.(so, one bug fixed, another introduced)
245 - If you an initial estimate was added with "_init_attr", the option
246 "add_if_absent" was true and the last initial estimate was "SAME"
247 PsN would try to add the estimate after "SAME" which is wrong, now
248 PsN adds a new record.
250 - Fixed a parsing error of the lst file. If simulation without a
251 SIGMA was performed, the parser failed to read OMEGA initial
254 - The internal method "indexes" would not properly handle "SAME" in
255 initial estimates. The result was that "update_inits" would skip
256 initial values, and get them out of order. Fixed.
259 Changes from 2.2.2-beta4 to 2.2.2
263 - CWRES can now be calculated automatically if you have R and Xpose
264 installed. Remember to add a definition of IPRED in your NONMEM model.
266 - This version handles non-PsN standard (or absent) suffixes for
267 model files better than earlier versions.
271 - MSFO files are now copied back to the same directory of the model
274 - MSFI files are now automatically copied to the PsN NONMEM run
277 - Output files from runs where the $MSFI record was used were not
278 parsed correctly. This is now fixed.
280 - Output files from runs where no $OMEGA _or_ $SIGMA were defined
281 were not parsed correctly.
283 - The header and the results from problematic runs, i.e. failed
284 covariance step, warnings etc, were not handled correctly when the
285 raw_results files were compiled. This is now fixed.
287 - In 2.2.1, we added a check for a '1' to find the end of the omega
288 and sigma estimate areas. this was a mistake since problems with
289 more than 13 omegas or sigmas get a '1'-line inserted before the
290 14:th estimate (for some reason). This is now removed.
292 Changes from 2.2.2-beta3 to 2.2.2-beta4
300 - Adaptive number of threads is now working in the new asynchronuous
303 - The CWRES computation had some fixes
305 - $INFN is now printed before $MODEL
307 - $OMEGA is now printed befor $PK
309 - PRIOR is now handled in the output module. It is still a bit
310 problematic to parse PRIOR output files correctly. Use with
313 - The initial estimates of large omega and sigma matrices is now
316 - The order of parsing events in the output module is now working
319 - The handling of retries (or the results of retries) is now working
322 Changes from 2.2.2-beta2 to 2.2.2-beta3
326 - CWRES: Conditional weighted residuals. The necessary verbatim code
327 for the computation of CWRES are now automatically added if the
328 option -compute_cwres is used.
330 - PRIOR: The use of priors in NONMEM VI is now supported in the
331 computer intensive methods
333 - The behavior of the parallel execution has been revised, moving
334 from a synchronuous to an asynchronuous solution. Previously, the
335 memory foot-print of a parallel execution of say 100 NONMEM jobs
336 was huge (counted in several GB) and did not scale well. Now, it
337 will very seldom exceed 100 MB and more or less keep that size,
338 regardless of the number of parallel jobs.
342 - PsN couldn't parse IGNORE=(ITEM=VALUE) options in $DATA. This is
343 (again) fixed. It was previously corrected in the development
344 branch of PsN but never transferred to the stable branch.
346 - Fixed SAME block correlation computation.
348 Changes from 2.2.2-beta1 to 2.2.2-beta2
352 - The parsing of the NONMEM output files has been revised and a
353 strict check is now performed after each section has been parsed. A
354 parsing error is raised if any non-compliant structures are
355 found. By doing this we get a better idea of which runs that really
356 finishes and which runs that are pre-maturely terminated
357 (e.g. through a operating system error). Remember that this is a
358 beta release and that there could still be valid text structures
359 that are not yet recognised correctly by PsN.
361 - Support for United Devices grip MP has been added and is available using
362 "-run_on_ud" command line option.
366 - the options directory and backwards_dir can now be specified in the
367 scm configuration file
369 - It is now possible to skip the definition of either continuous and
370 categorical covariates in the scm configuration file
372 - The exponential relation is now added correctly in the
373 scm. Previously it was incorrectly added as (for weight on volume)
374 TVV = THETA(1)*(1+EXP(THETA(2)*(WGT-median(WGT))))
376 TVV = THETA(1)*EXP(THETA(2)*(WGT-median(WGT)))
378 - The output parse now computes correlations for omegas and sigmas correctly
379 when you have SAME blocks.
381 Changes from 2.2.1 to 2.2.2-beta1
385 - The number of significant digits per parameter after a terminated
386 minimization are now parsed.
390 - The sample size option of the bootstrap did not work correctly with
391 stratified resampling. This is now fixed.
394 Changes from 2.2.0 to 2.2.1
398 - Added support for the Intel Fortran compiler (mostly for those
399 using the new Intel Macs).
401 - We have added two new model fit quality terms: 'terminated' and
402 'really_bad' to the previous 'normal' and 'picky'.
404 picky - Minimization and covariance steps successful, no
405 parameters near boundaries and no warnings from the
408 normal - Minimization successful
410 terminated - Estimates of the objective function value and the
411 number of significant digits are available.
413 really_bad - An estimate of the OFV is available (but usually not
416 Given that more than one run from a run has been performed (with
417 different initial estimates but otherwise identical) the following
418 selection procedure is done:
420 The lowest OFV of all tries is collected. Then, all runs within
421 5 units of the lowest OFV is tried according to
423 1. Of the runs passing the picky criteria, choose the run with the
424 highest number of significant digits.
426 2. If no run has passed the criteria above: of the runs passing the
427 normal criteria, choose the one with the highest number of
430 3. If no run has passed the criteria above: of the runs passing the
431 terminated criteria, choose the one with the highest number of
434 4. If still no run has passed the criteria above: of all runs that
435 at least have an estimate of the OFV, choose the run with the
438 5. As a last resort, choose the first run.
440 Comments: This is of course a very pragmatic approach but it is
441 needed to make the automatic procedures of the PsN tools to
442 work. We cannot force the user to manually scrutinise the results
443 of every single run of for example a bootstrap. The user has the
444 opportunity to do so if he or she wishes. If you do not feel
445 comfortable with this selection procedure or if you have comments
446 on how to improve it, please contact me (Lars Lindbom) at
447 lars.lindbom (at) farmbio.uu.se.
451 - Data files with spaces around commas used for columns separation
452 could be problematic to parse. This is now fixed.
454 - There was a serious error in the seed handling in version
455 2.2.0. Under the following circumstances, the seed number was
456 ignored and a default seed number used: If the output file from the
457 original run was not present in the same directory as the original
458 model file when a PsN tool was started. This affected all PsN
459 tools, except the execute tool. This is now fixed.
461 - Up to 20 omegas can now be parsed in the output file. This is still
462 a limitation and it will be addressed in later releases.
464 - On fast distributed systems with a shared file system, the massive
465 parallelisation of the PsN tools could cause synchronization
466 problems (files could sometimes not be found, read or written). The
467 root of this problem is somewhat outside of the scope of PsN but we
468 have tried to find a workaround for this for the LSF grid system.
470 Changes from 2.1.10 to 2.2.0 ( released for PsN course )
474 - PsN Output module use a proper Matrix library for handling some of
475 the matrices of the outputfile.
477 - The bootstrap can now be resumed with a lower number of
478 samples. Meaning that if you are in a hurry and want to stop the
479 bootstrap and get results after 1000 out of 2000 runs, you can. At
480 a later time you can then resume the 2000 runs.
482 - Nonmem warnings are now printed if "--verbose" is givven.
484 - Automatic incrementation of directory names are a bit smarter (no
485 more "directory modelfit_dirX is in the way" messages).
487 - Clean is much more stringent and intelligent and now manages to
488 remove entire tool directories if desired.
490 - option list printed from "-h|-?" only shows utility specific options.
492 - Default values configurable on a per utility basis.
494 - Online documentation improved
496 - Parallel run of NONMEM is not aborted as before if a outputfile is
497 not correctly parsed. It is just ignored, as if it had not
498 minimized successfully. (actually it is the output parser that
499 doesn't die, but the effect is the same)
501 - Parallel run is a bit nicer to the system when compiling many
502 NONMEMS. By adding a configurable delay between starts.
504 - Matlab and R scripts for various plots from cdd and bootstrap
505 results are distributed with PsN.
507 - Vast improvments in results presentations from all tools.
509 - Improvements in rerun algoritm with new "min_retries" option.
511 - Output from running utilties are much nicer.
513 - new "-quick_summary" prints minimization message and ofv value for
514 each finished run. As does "-verbose" option which also prints
515 "R:X" for each retrie (X is the retrie number).
517 - new "-summary" options prints diagnostics about the tool run when
518 it is finished. For "execute" the "-summary" option will have the
519 same function as the "sumo" utiltiy as well as some diagnostics.
521 - PsN now recognizes that control files may require fortran files and
522 copies them to the run directory. No need to add fotran files to
523 the --extra_files option any more.
525 - Added --extra_output which allows you to copy more than the output
526 file from the run directory.
530 - PsN couldn't parse IGNORE=(ITEM=VALUE) options in $DATA. Fixed :)
532 - If star notation was used in the scm config file section [inits],
533 [upper_bounds] or [lower_bounds] there was a risk of defining
534 relations that was not specified in [test_relations]. Which in turn
535 would cause a lot of diffrent errors. Fixed :)
537 - Using low_cutoff and hi_cutoff in data::sd resulted in PsN trying to use
538 the new compact data strings as the old arrays. fixed.
540 - Removed unecessary regular expression in output file parser.
542 - Not really a bug. But i tried to add "FIX" as a record option to a theta
543 records. Then when "store_init" was called on the "FIX" option PsN crashed
544 because the option was not a "theta_option". So i added a check for
545 "store_init" abilties... if FIX would become a record option in the future.
547 - Member accessor "datafile" replaced with "datafiles" in model. Affected
548 only the bootstrap which have been updated.
550 - An assumptions about outputfiles crashed sumo occationally. Some more
551 rigorous contentchecking has been added and fixed the problem.
554 - Cleanup of dubious utility options.
555 - Option help sorted alphabetically.
556 - "flush", "target" removed from model.
557 - "remove_temp_files" removed from modelfit.
558 - Changed the Makefile considerably, much simpler now.
559 - added "column_to_array" function in data module.
561 Changes from 2.1.9 to 2.1.10
564 - The 'picky' option of all utilities now triggers on
565 COVARIANCE STEP ABORTED and
566 PROGRAM TERMINATED BY OBJ
568 Changes from 2.1.8 to 2.1.9
571 - Nordugrid support reintroduced (but will probably not be developed further)
572 - Sumo now supports multiple problems and subproblems.
573 - Sumo has new option "precision" which control the number of digits
574 to present estimates with.
575 - An extra 'short' logfile is output from the scm with the most important
579 - Bootstrap option "stratify_on" doesn't work with columns defined in
580 extra data files given with "extra_data" option. Not Fixed.
581 - Resumes of scm's with extra_data_files is now possible. Still some
582 problems with scm's where search_direction=both.
583 - LSF options was not communicated properly between tools and subtools
584 so submission of bootstraps, llp, cdd and scm did not work. Fixed.
585 - Default values for LSF can now be configured in psn.conf.
586 - Print order of modelfiles places $MIX before $PRED. Fixed.
587 - extra_files option was broken. Fixed.
590 - Tool will always fork subtools, this will save memory in the scm (and
591 other recursive tools).
592 - Common options need only be specified once. In one of three categories:
593 model_options, tool_options, script_options.
594 - models can now be created with "reference" objects. This solved the
596 - Added function to model that cleans extra data code.
598 Changes from 2.1.7 to 2.1.8
601 - Rudimentary support for execution on Platform LSF grid systems is now
602 included. The following extra attributes are available to all tools
603 for controlling the execution:
606 lsf_queue - Use this queue on the grid
607 lsf_options - General options for the grid queuing system.
608 lsf_project_name - Optional. May be used by the grid system
609 administrator to register control project
611 lsf_job_name - Optional. May be used by a grid system
612 administrator to control multiple runs on a
615 - All tools now have a raw_results file holding the diagnotics and
616 parameter estimates for each NONMEM run.
617 - All tools now handles model files containing one $PROBLEM and no
619 - The Bootstrap and CDD routines now create separate files holding
620 information about which individuals that were included/excluded
621 in/from each created data set.
622 - The Bootstrap results file now has warnings section to better
623 display which runs that were used for result calculations and which
625 - PsN now tries to read psn.conf from the users home directory. (Will
626 require some extra documentation).
627 - Optimized modelfit thread operation by removing Storable::Store.
628 - The clean options has four levels of operation.
630 0 - No cleaning at all.
631 1 - Clean more, but make sure resumes work (this is default).
632 2 - Clean more, but make sure summarize work.
633 3 - Clean everything, keeping only results and logs.
635 - Some attributes and accessors of the PsN-Core class 'output' have
636 had their names changed to make it more clear what their purposes
638 termination is now called minimization_successful
639 termination_message is now called minimization_message
640 covstep_termination is now called covariance_step_successful
642 these attributes are new:
644 covariance_step_warnings (boolean; 0 or 1)
645 estimate_near_boundary (boolean; 0 or 1)
647 The attribute which was previously called termination could have the
648 values 0, 0.5 and 1 for 'minimization terminates', 'minimization
649 successful but warnings or errors were printed from the covariance
650 step' and finally 'minimization successful'. The new attribute
651 'minimization_successful' can only take the values 0 and 1 and the
652 new attribute covariance_step_warnings now takes the value 1 when
653 covariance step warnings were found. Checks are also perfomed to
654 test whether the estimates are close to any boundary.
655 - Html documents is now generated from command line help text.
656 which ensures that they are consistent and up to date.
657 - Personal configuration file now available under Unix like OS:s
660 - Options specific to modelfiles were ignored in some Utilties.
661 - Gradients now output in windows. Just like with nmfe.
662 - Bootstrap now consumes considerably less memory.
663 - Removed unused/obsolete "resume" function from modelfit.
664 - Sorted method entries in modelfit diagram.
665 - Fixed bugs in parsing of OFV and eigenvalues.
667 Changes from 2.1.6 to 2.1.7
670 - "clean" and "compress" options now work under Windows.
671 - SCM now handles crashed runs appropriately.
672 - The ofv_forward, ofv_backward, p_forward and p_backward options of
673 scm now works as they should.
676 - SCM improvements. The final model is now available in the
677 first-level scm directory of each step.
678 - The Utilties -help option is improved. You can now give a list of
679 options to -help for specific documentation of those options, like
682 $ scm -help do_not_drop
684 - Minor changes in how the [nm_version] section in psn.conf i
685 handled. Look in the psn.conf file that is distributed with PsN for
687 - SDE modelfiles are now supported. (see the -sde_records option)
688 - The update_inits method of the model class now accepts an output
690 - Some attributes and accessors of the PsN-Core class 'output' have
691 had their names changed to make it more clear what their purposes
693 finalgrad is now called final_gradient
694 parampath is now called parameter_path
695 gradientpath is now called gradient_path
696 covterm is now called covstep_termination
697 - The Utilties now saves the command line that started it in a file
698 "command.txt" under the corresponding directory.
699 - Added a "silent" option to the Utilties that quenches all output.
700 - "nice" option added to utilties that allows you to set priority in
702 - Rudimentary support for NorduGrid reinstated.
703 - Installer script rewritten. It now supports Perl installations in
704 nonstandard directories. Discrepancies between *nix and MSWin32 is
708 - The code that is autogenerated with "dia2code" is optimized a
709 bit and saves a hash "__valid_parameters" in each object, which
710 allows the constructors to be used as a generic (shallow) copy.
713 - continuous spelled correctly throughout SCM.
716 Changes from 2.1.5 to 2.1.6
719 - Stratify_on bug in bootstrap method fixed.
720 - Data files in directories different from model file are now
722 - Path name handling reimplemented. Relative paths are now handled
724 - Models that generate table files would make PsN complain about
726 - Its now possible to specify multiple output names as a
727 comma-separated list to execute.
728 - The scm can now go backwards.
729 - Handling of table files now responds to the
730 "ignore_missing_output_files" flag.
731 - nmtran error messages was lost in Windows 2K. Execution of nmtran
732 is more plattform independent now. It uses a temporary file, but
733 it is never bigger than the nmtran messages.
734 - Fixed a bug that limited choice of compiler under unix.
735 - Typo in scm utility fixed. (included_relations in backwards step).
738 - Added support for "$NONPARAMETRIC" record in model files.
739 - A few improved error messages related to parsing of model files.
740 - The SCM config file now features sections for parameter bounds and
744 - psn.conf settings are now available as global variables. psn.conf