Keywords: manual

Next: Changes since release 8v1 Up: MODELLER updates Previous: Changes since release 9v1 Contents Index

## Changes since release 8v2

- A new more sensitive assessment method is provided, high resolution DOPE; see selection.assess_dopehr().

- A new loop modeling protocol, relying on the DOPE method, can be used to obtain higher quality models in many cases, at the expense of more CPU time. See the dope_loopmodel() and dopehr_loopmodel() classes.

- The speed of profile searches is now dramatically increased by storing the template profiles in a PSSM database. See profile.scan().

- Initial models (inifile argument to automodel()) are now handled more robustly. They must have the same amino acid sequence as the template, but missing or misordered atoms will be added/reordered automatically.

- add_segment argument removed from model.generate_topology(). Call model.clear_topology() first if you want to initiate the model.

- model.write_pdb_xref() command removed. Residue objects provide all necessary information.

- selection_mode and extend_hot_spot arguments removed from selection.hot_atoms(). Use selection.extend_by_residue() instead.

- model.rotate() command removed. Use selection.translate(), selection.transform(), or selection.rotate_origin() instead.

- Profile commands now handle non-standard residues, which are treated as equivalent standard residues (as defined in restyp.lib). Consequently, the clean_sequences argument to alignment.to_profile() has been removed.

- Allow the number of PDB residues to be specified unambiguously in PIR files (correctly handling the case where PDBs contain duplicated residue numbers).

- Universal binaries provided for Mac (i.e., both Intel and PPC Mac OS X).

- model_segment will no longer read file names and residue ranges from an alignment; use the alignment object directly if you need access to this information for model.read().

- Generated models with multiple chains now have these chains labeled A, B, C, and so on. A chain break in a model is now taken to correspond to a change in chain IDs in a PDB file (previous versions used the TER records). If building models with ligands, you may need to move your alignment chain breaks from before to after the ligands, to get the correct final chain IDs.

- The `pdbent.lib` file, which maps PDB codes to filenames, is no longer used. If your PDB file names are not in a standard form (e.g., `pdbxxxx.ent` or `xxxx.pdb`) then you can give Modeller explicit filenames. If you were not using the pdbent.lib file before, you will not be affected by this change.

- The new sequence_db.convert() command converts sequence databases to binary format sequence-by-sequence, and so uses much less memory than sequence_db.read() followed by sequence_db.write().

- USER restraints format is no longer supported.

- The `CHAINS_*` files in the modlib directory, containing all PDB sequences filtered by sequence identity, have been removed. You can download up to date versions of these files from the Modeller download page, or build them yourself using a local copy of the PDB and sequence_db.filter().

- model.optimize() has been replaced with two optimizer classes; conjugate_gradients() and molecular_dynamics(). The trace_output variable and model.switch_trace() command have also been replaced, with actions.trace(). There is also a new state_optimizer() class, for building your own optimizers, and a quasi_newton() class, for quasi-Newton (variable metric) minimization.

- The molecular_dynamics() optimizer now supports self-guided MD, for improved sampling.

- The old implicit schedules have been removed; if you wish to use an optimization schedule, you must use an explicit schedule() object. `automodel`'s library_schedule variable now takes such an object, rather than a number between 1 and 7.

- The old 'picked atom sets' 1 through 3 have been replaced with a new selection object. Selections allow arbitrary atoms or atom groups to be added or removed, and support standard mathematical set operations.

  - The following commands now act on selection rather than model objects: selection.mutate(), selection.randomize_xyz(), selection.superpose(), selection.rotate_dihedrals(), optimizers, selection.energy(), selection.assess_dope(), selection.debug_function(), selection.unbuild(), selection.hot_atoms().

  - The pick_atoms command has thus been removed.

  - If you redefine the `select_atoms` or `select_loop_atoms` methods in `automodel` or `loopmodel`, note that these should now return a `selection` object. Some other `automodel`/`loopmodel` methods now take `selection` rather than `model` objects, such as loopmodel.build_ini_loop(), and all of the generate and refine methods.

  - Rather than restraints.make(), use restraints.make_distance() for DISTANCE and USER_DISTANCE restraints, and the `secondary_structure` module for ALPHA, STRAND and SHEET restraints.

  - The following commands now take a single selection object argument: restraints.pick(), restraints.make()

  - The following command now takes two selection object arguments: restraints.make_distance()

- Default gap_penalties_2d have been changed; the new defaults were found to be optimal for a test alignment set (see alignment.align2d()).

- Binary files are now read or written in industry-standard HDF5 format, and are now machine-independent. Their contents can be inspected with any program which understands the HDF5 format. Note, however, that they are not compatible with old versions of MODELLER (you will have to regenerate any old binary files from their text equivalents). See sequence_db.read(), sequence_db.write(), profile.read() and profile.write().

- EM densities can now be read or written in MRC format as well as XPLOR.

- Warn, rather than crash, if a restraints file with negative or zero atom indices is read.

- Restraint forms, groups, and features are now specified with Python objects, and new forms and features can be implemented by the user in Python or C. Consequently, 'USER_DISTANCE' restraints have been removed.

- Symmetry restraints are now also specified with Python objects; the symmetry.define() command has been removed.

- restraints.unpick() now takes one or more Python atom objects, rather than atom names.

- On most platforms, MODELLER is now distributed as a shared library by default, allowing it to be used like an ordinary Python module, or to be linked against other programs.

Next: Changes since release 8v1 Up: MODELLER updates Previous: Changes since release 9v1 Contents Index