SUPPORT THE CONTINUED DEVELOPMENT OF NMQUAL!
Do you like NMQual? Consider the time savings and the assurances of your NONMEM installation integrity offered by this unique open-source utility and make a contribution to support the continued development of NMQual.
While NMQual is offered freely by Metrum Institute, resources are required for its further development and upkeep. We accept cash contributions in any amount. All contributions directly support the research and development of NMQual. If you have a major credit card or a PayPal account (PayPal account not required to contribute), simply click the button below to get started.
NONMEM® Installation with NMQual
NMQual, a product of original research at Metrum Research Group, LLC, manages NONMEM® installations by incorporating bug fixes, implementing user/site specific changes, and providing a complete, self-documenting record of a given NONMEM® installation for traceability and systems qualfication purposes. NMQual is freely available under the GNU General Public License with online support from Metrum Institute. A fee-based Professional Services Package with extended support is available from Metrum Research Group, LLC. Please cite as "NMQual, © Metrum Institute, 2007, http://metruminstitute.org/downloads/nmqual/."
NMQual: Features and Benefits
- Automatically installs NONMEM® version 5.1.1 or 6.2 incorporating all bug fixes to date, with minimal user intervention.
- Capable of updating the NONMEM® source code with future bug fixes.
- Capable of implementing user and site specific changes to NONMEM®.
- Tests the installation and operation of NONMEM® via a set of control streams.
- Allows for the execution of NONMEM® from any directory without the need for copying key files from the installation directory.
- Allows for different versions of NONMEM® to be installed and used on the same workstation or for the same project.
- Maintains a link between a given NONMEM® run and installation via the install and test log appended to each output file.
- Maintains a digital record that serves as a documented audit trail of all changes made during installation.
- Automatically implements NONMEM® test cases for operational qualification.
- Platform neutrality* based on Perl 5.8 with XPath 1.13. Tested in WindowsXP, Linux, and Mac OS X. Configurable for other platforms.
NMQual Technical Support
For technical support please visit metrumrg.com
NMQual Resources
- Download NMQual6. (Click here for the MD5 checksum.)
- Frequently Asked Questions
- User Guide
- Metrum Research Group Professional Services Package
NMQual Update History
Version 6.3.0: NMQual 6.3.0 (released 05-22-2008) supports NONMEM 6.2.0.
- Build directory is now locked after move to target directory, rather than before. (Mac OS 10.5 won't move a locked directory).
- A routine is added to copy whole directories recursively (to support new html subdirectories in NONMEM source). It runs a little slow. Suggestions welcome.
- config.template.xml: all defaults are now for NONMEM 6. For existing NONMEM 6 config files note....
- To copy PARAMS4 simply say <file>PARAMS4</file>.
- Revert 'disk_3' to 'Disk_3' on case-sensitive platforms.
- Change 'Guides' to 'guides' on case-sensitive platforms.
- 'big' options are now selected by default in config.template.xml.
- 'big' option for MAXIDS (change from 1000 to 10000) is dropped, since NONMEM 6.2.0 default is 10000.
- 'standard' option for MAXIDS (change from 1000 to 2000) is dropped, since NONMEM 6.2.0 default is larger.
Version 6.2.2: NMQual 6.2.2 (released 02-06-2008) implements fix for NONMEM6 code corresponding to Bug Alert #6 (announced 1-17-2008), including adjustment of LEV in BLKDAT. Experimental support for PsN is introduced.
Version 6.2.1: NMQual 6.2.1 (released 09-10-2007) implements fixes for NONMEM6 code corresponding to Bug Alert #5 (announced 8-30-2007), including fixes for SIML and adjustment of LEV in BLKDAT.
Version 6.2.0: NMQual 6.2.0 (released 06-13-2007) implements the following changes.
- NONMEM is installed atomically: the target directory is created successfully or not at all. (Installation steps are executed in a temporary directory).
- NMQual will no longer overwrite an existing target directory. (It will, however, delete and replace an existing temporary directory created by a failed install attempt.)
- Bigger 'SIZES' options for NM6 are now available and can be selected in the configuration file. 'changes.options.nm6.big.xml' corresponds to WFN 570 sizes.
- PDx-Pop is supported. see the note in the FAQ.
- Boundary checking in NM6 is inactivated by default. (To reactivate, delete lines 284-325 in changes.bugs.nm6.xml).
- NONMEM6 level is adjusted from 1.0 to 1.1. Change logs are current, including null entries for two bugs that have no fix.
- PARAMS4(_6) and PARAMS5 fix a missing comma that caused complaints from some Fortran compilers.
- The configuration template suggests installation of two additional help guides for NM6.
Version 6.1.1: NMQual 6.1.1 (released 2-27-2007) addresses NONMEM Bug Alert #4 (bugs 4 and 5), announced 2-26-2007. Also, a warning was added to the configuration template (if pause=0, nmqual does not prompt the user when overwriting directories). changes.bugs.nm5.xml and changes.bugs.nm6.xml were reorganized.
Version 6.1.0: NMQual 6.1.0 (released 2-13-2007) fixes an NMQual bug (NMQual did not install html help for NONMEM 6). It also implements fixes for all NONMEM and NMTRAN bugs reported through 2-13-2007 (including NONMEM6 'NONMEM bug 3' and NONMEM6 'NMTRAN bug 4').
Version 6.0.0: NMQual6 (released 2-1-2007) supports NONMEM6 as well as NONMEM5: whichever is listed in the 'nonmem' element of the configuration file will be expected. Known NMQual 4.1 bugs were fixed, and numerous features were added. It is back-compatible with NMQual4 configuration files. Version 6.0.0 implements fixes for NONMEM5 and NONMEM 6 bugs through 1-17- 2007 (the "blank-line" bug).
- The compile instruction in 6.0 accepts "to" and "from" attributes that let you easily set object code suffixes, even if your compiler doesn't. (g77 always generates *.o).
- The checksum algorithm pre-sorts files and directories for more consistent results. Formerly, the value of a directory checksum depended on the order in which the OS listed the files (usually but not always constant).
- The checksum algorithm considers names of enclosed files and directories when checking a directory. Formerly, such a name could change without affecting the top-level checksum. (Note that the top-level name is not checksummed: if it is changed significantly, it will not even be found by the script and an error will occur.)
- You can configure an arbitrary command to run near the end of the installation (just before checksums). See documentation for 'final' in config.template.xml.
- No need to configure the checksum element for the anticipated execution script (same name as install directory). Just use the alias "nm.pl", checked by default in config.template.xml.
- The execution script can be invoked for control streams not in the current directory. Formerly, errors could occur if these streams contained relative references to other files; now NONMEM is forced to execute in the directory of the control stream, so paths resolve as expected.
- When specifying NONMEM and target directories, attribute "evaluate='TRUE'" will submit arbitrary instructions to the command line, and use the result as a directory name. Lets directories be determined dynamically.
- More attributes are added to the tops of change files and config files. Validation tools can check the files directly against schemas stored on this website.
- A 'meta' element has been added to the configuration file. It can store arbitrary metadata, either text or xml markup.
- The configuration 'file' element now supports the attribute "as", which lets files be renamed during copy.
- The configuration 'file' element now supports not-yet-existing directories in its 'to' argument...even nested directories. The requested directories will be created, if possible.
- Perl scripts now end in .pl, more widely recognized than .p.
- Shebang is now '/usr/bin/env perl'. Don't worry if you have no idea what this means.
- The distribution is now zipped in an enclosing directory. default unzipping should place the files in an nmqual directory next to the zip file.
- PARAMS files now have no extension, since they are never compiled by themselves and the extension is system dependent.
- The script runtest.pl has an enhanced summary, for those running lots of tests in batches.
- The script runtest.pl does true numeric comparisons on numbers, and reports similarity (in significant digits) rather than just "equal" or "not equal".
- the script runtest.pl can be invoked from an arbitrary working directory. Formerly, it was necessary to navigate to runtest.pl's enclosing directory.
- NMQual allows spaces in paths (though g77 2.95 does not).
- The scripts update.pl, changes.pl, and checksum.pl have been replaced with functions, some stored in nmqual.pm.
Version 4.1: Minor improvements have been made in this version. Most importantly, 'tests' in the configuration file are run at install time and execution time, with results printed in respective logs. See list below. 4.1 is back-compatible with version 4 config files.
- Results of system tests and environment tests are now captured in the installation log.
- The same set of system tests and environment tests are run again before NOMEM execution and are captured in the output log.
- The installation formerly recorded a 'hard-coded' list of environment variables. The choice is now configurable via 'test' elements: new config templates are provided that cite system-appropriate environment variables.
- The NONMEM output log used to record the system path. Now, it simply includes 'tested' environment variables, as described above. New config templates include the system path by default.
- Case-insensitive testing is enabled. See the config.06.xml for instruction: look for the 'any-case' attribute.
- The 'contains' attribute is no longer required for system tests: you might be listing the test just to require its output in the logs, rather than to require that it contains some string of text.
- The plain-text portions of the NONMEM output log are now wrapped in XML 'character data' tags for better format compliance. If, say, you had a '<' character or '&' character in a control stream that was copied to an output log, the output log would be unreadable by xml parsers for version 4. Version 4.1 is safer.
- Root tags in changes.??.xml and config.??.xml files now contain some technolese to aid validation. Humans should mostly ignore it.
- Bugs: the script that invokes NONMEM refers to itself as '5.p' instead of, say, 'nmv.p' when running system and environment tests. Cosmetic only; will be fixed in next version.
Version 4: NMQual now installs to your hard drive and creates standalone NONMEM® installations. NMQual now is configuration-file based. If your version requires several command line arguments, you have an older version and should upgrade to the latest version.
* Requirements:
-
Perl 5.8 or higher with CPAN package XML-XPath 1.13. Tested with WindowsXP and Mac OS 10.5 using ActivePerl from ActiveState.com.
-
Fortran77 compliant compiler. Tested with GNU Fortran (g77 2.95 or higher) on Windows and Macintosh; earlier versions tested with Compaq Digital Fortran (df 6.6 update C) on Windows.
-
NONMEM® V level 1.1 CD-ROM release dates 15-Apr-2004 or 18-Mar-2005; or NONMEM® VI level 2.0 release date 8-May-2008.
NONMEM® is licensed and distributed by ICON Development Solutions.
