Changelog

Changes made in the Schrödinger API between releases are documented below. We recommend skimming at least the API Changes, as your code will need to be modified if it uses these functions.

Suite 2014-3

Bug Fixes

Fixed support for csh-based shells in virtualenv.

Suite 2014-2

New Features

Changes in Behavior

Suite 2014-1

New Features

  • Structure objects can now be pickled.

Suite 2013-3

Changes in Behavior

The definition of hydrogen bonds in schrodinger.structutils.analyze.match_hbond has changed. It now matches the definition used in Maestro and elsewhere in the Schrödinger Suite.

New Features

New Modules

The schrodinger.utils.pymol module provides utilities for loading Maestro projects into PyMOL.

New Functions, Classes, or Methods

Suite 2013-2

Deprecated Functions, Methods, and Modules

The schrodinger.utils.cmdline.SingleDashOptionParser class is now deprecated. The Python standard library ArgumentParser class (added in Python 2.7) is capable of handling everything the SingleDashOptionParser handled and is the recommended argument parser for Python going forward.

Suite 2013-1

New Features

The Schrödinger-specific virtualenv is now supported on Windows and OS X.

Bug Fixes

Suite 2012

For Suite 2012, Schrödinger Python was upgraded to Python 2.7.1.

One installation change is in the name of the directory for product-specific python library installations. This used to be product-v*/lib/$OS_CPU/python, but the python directory has been renamed to python_packages.

API Changes

  • The schrodinger.structure._Residue string representation no longer includes “residue()” and always includes the chain ID (i.e. “residue(A:306)” will now be “A:306”).
  • The schrodinger.structure.PDBReader can now be used to read obsolete PDB files, and the default is to allow this without complaint. To get the old behavior (i.e. raise an exception on an obsolete file), create the PDBReader with allow_obsolete=False.
  • Product-specific module imports have changed. Importing from schrodinger_X (where X is jaguar, psp, canvas) is no longer supported; instead import from schrodinger.application.X.packages.
  • The arguments to schrodinger.structutils.minimize.Minimizer.getBondedEnergyComponents output arguments are no longer updated in-place. The values are instead returned as a tuple.
  • schrodinger.infra.mm.mmjob_selection now returns a single string instead of a tuple of (return_code, string).
  • schrodinger.infra.mm.mmct_atom_get_alt_xyz now returns a tuple of 3 coordinates, instead of a instead of a 4-tuple of 3 coordinates and a return code. If the call fails, an exception is now raised.
  • The schrodinger.application.vsw.stages.mopac module was moved to schrodinger.pipeline.stages.semiemp and the MopacStage class was renamed to SemiEmpStage.

Bug Fixes

New Features

New Modules

New Functions, Classes, or Methods

Deprecated Functions, Methods, and Modules

  • The schrodinger.structutils.analyze.get_approximate_sasa and schrodinger.structutils.analyze.get_approximate_atomic_sasa functions have been deprecated, as the results are only rough approximations. Use the new calculate_sasa and calculate_sasa_by_atom functions noted above.
  • The schrodinger.structure._StructureBond.style attribute is now deprecated. Use the new _StructureBond.to_style and _StructureBond.from_style attributes instead.

Pending Deprecation

  • The pipeline, pipeio, pipeutils, stage, and input modules and the stages package in schrodinger.application.vsw have been moved to the schrodinger.pipeline package. Use of the modules from the new locations is preferred.

Suite 2011

For Suite 2011, Schrödinger Python has been upgraded to Python 2.7. See the What’s New in Python 2.7 document on the Python website for new features in this version. Note that DeprecationWarning messages have been disabled by default in Python 2.7 because they are only of interest to developers. So, if you are developing code, we recommend that you re-enable these warnings. You can get the old (Python 2.6) behavior by setting the PYTHONWARNINGS environment variable to default,ignore::PendingDeprecationWarning.

Some of the third-party packages that we include with Schrödinger Python have been upgraded:

  • Numpy has been upgraded to 1.4.1 from 1.3.0.
  • SciPy has been upgraded to 0.8rc2 from 0.7.1.
  • matplotlib has been upgraded to 1.0 from 0.99.1.

API Changes

The following features that were previously deprecated have been removed:

  • The schrodinger.ui.propertyselectorqt and schrodinger.ui.widgettableqt modules have been removed.

Bug Fixes

New Features

New Modules

New Functions, Classes, or Methods

General Improvements

  • Iterating over rings in a Structure object should be faster for large structures. The calculation of whether rings are aromatic is now only done once isAromatic() is called for a given ring; it was previously being done each time the iteration over all rings began.
  • The running speed of the schrodinger.utils.sea module is improved.

Deprecated Functions, Methods, and Modules

  • The schrodinger.ui.qt.widgettable, schrodinger.ui.structdata_table and schrodinger.ui.multilist modules have been deprecated and should be replaced with functionality from schrodinger.ui.qt.table.
  • The ProjectRow.inWorkspace method has been deprecated and should be replaced with the ProjectRow.in_workspace property.
  • The schrodinger.utils.subproc module is deprecated and should be replaced with the schrodinger.utils.subprocess module. The new module adds support for a wrapper that creates Popen instances.

Pending Deprecation

Suite 2010

These are the changes between Suite 2009 (v3.7) and Suite 2010 (v3.8).

API Changes

Bug Fixes

Significant bug fixes include the following:

New Features

New Modules

New Functions, Classes, or Methods

Deprecated Functions, Methods, and Modules

  • The schrodinger.job.jobdj module has been deprecated and should be replaced with schrodinger.job.queue.
  • The schrodinger.structutils.properties module has been deprecated. All functions from the properties module have been moved to the schrodinger.structutils.analyze module.
  • Various keywords have been deprecated for use in the schrodinger.application.glide.glide module.
    • XCENT, YCENT, and ZCENT are obsolete.
    • READBASE is obsolete; use GRIDFILE instead.
  • The MM_FORCEFIELD keyword used in schrodinger.application.vsw.stages.qsite has been deprecated.
  • The schrodinger.ui.propertyselectorqt and schrodinger.ui.widgettableqt modules have been deprecated and should be replaced by schrodinger.ui.qt.propertyselector and schrodinger.ui.qt.widgettable.

Pending Deprecation

  • The schrodinger.structureutil module is pending deprecation. All functions were moved into appropriate modules under the schrodinger.structutils package.
  • Use of the projecttable option in the schrodinger.ui.qt.appframework.AppFramework class is pending deprecation and should be replaced with the ‘selected_entries’ option.

Suite 2009

These are the changes between Suite 2008 (v3.6) and Suite 2009 (v3.7).

API Changes

The following features that were previously deprecated have been removed:

Bug Fixes

Significant bug fixes include the following:

New Features

New Modules

New Functions, Classes, or Methods

Structure
General
Maestro

The schrodinger.maestro.maestro module added a number of features.

  • workspace_bounding_box_function_add registers function to be called when Maestro does a ‘Fit to Screen’, and workspace_bounding_box_function_remove removes the callback.
  • set_workspace_bounding_box registers a function to be called with the bounding box parameters every time the ‘Fit to Screen’ callback is triggered. This is useful when you have 3D python objects.
  • project_update_callback_add adds a callback to invoke when the Project Table gets updated, and project_update_callback_remove removes the callback.
  • get_included_entry returns a single Structure with properties for the structures included in the Workspace.
  • get_included_entries returns a list of structure objects with properties for included entries.
  • create_entry_from_workspace creates a Project Table entry for the Workspace structure.
  • get_directory returns directory names for Maestro preferences, temporary data, temporary projects, or help. It can also be used to get a specific Maestro preference file.
  • Various functions for determining Workspace view settings: - workspace_get_coordinate_center - workspace_get_translation - workspace_get_viewing_volume - workspace_get_view_matrix - workspace_get_view_matrix_inverse - workspace_get_view_matrix_inverse_no_center - reset_workspace_transformations
  • get_command_items gets the names of the items currently associated with the given command. For example if the command is ‘set’ then the nmaes of all the currently defined sets will be returned.
  • get_current_command_item gets the name of the currently selected item associated with the given command.
  • set_prompt_mode_for_next_export sets file overwriting behavior for the next Maestro command. If set to 1, a prompt will be displayed before overwriting any files. If set to 0, files will be overwritten.

Deprecated Functions, Methods, and Modules

Suite 2008

These are the changes between Suite 2007 (v3.5) and Suite 2008 (v3.6).

API Changes

General

  • schrodinger.infra.mm.mmct_ct_compare and schrodinger.infra.mm.mmct_ct_compare_connect no longer raise exceptions when the return value is not MMCT_SAME. Instead, all values are returned to the caller directly.
  • schrodinger.structureutil.evaluate_smarts and schrodinger.structureutil.evaluate_multiple_smarts now raise a ValueError instead of a RuntimeError if the specified SMARTS pattern is invalid.
  • schrodinger.structureutil.generate_smiles now uses the canvaslibs implementation instead of the mmsmiles implementation by default. Options to generate unique SMILES and include stereochemical information have been added.
  • schrodinger.maestro.maestro.workspace_get now returns a copy of the Workspace structure. The workspace_set() function must be called to return any changes in the retrieved structure to the Workspace.
  • Functions that are to be registered as callbacks in schrodinger.maestro.maestro (for example for picking, workspace change, drawing, periodic tasks) may now be passed as callable objects. Passing in function names as strings is now deprecated.
  • Accessing Boolean properties from schrodinger.project.Project now returns True or False rather than 1 or 0.
  • schrodinger.structure.count_structures will now raise an exception if an attempt is made to count structures in a mol2 format file or if the format of the file can’t be otherwise determined.
  • Setting the atomic number for an atom in schrodinger.structure.Structure will now cause the MacroModel type to also be updated. Structure.retype() will still need to be called but will correctly assign a new atom type whereas previously it would fail.

Job Control

  • The ‘username’ argument of the get_hostfile, get_hosts, and get_host functions of schrodinger.job.jobcontrol is now ignored and a warning is printed.
  • The ‘save’ argument to schrodinger.job.launcher.Launcher now defaults to None. It should no longer be set explicitly so jlaunch can pick up the SCHRODINGER_SAVE_JOBDIR setting from the top-level script.
  • The schrodinger.job.launcher.Launcher.getCommandArgs method is a replacement for the getCommand method and returns a list instead of a string.
  • When using schrodinger.job.jobdj.JobDJ, if queue host is used and the number of CPUs is not specified, all subjobs are submitted at once to let the queue distribute them.
  • A RuntimeError is now raised if schrodinger.job.jobcontrol.Job.ExitStatus is accessed while Status not ‘completed’ or ‘incorporated’.

UI

Application Specific

New Features

New Modules

General
Graphics
Application Specific

Extended Behavior for Existing Functions and Methods

New Functions, Classes, or Methods

General
  • schrodinger.structure.StructureWriter is a new class that can be used to more efficiently write large numbers of structures to a file.
  • schrodinger.structure.StructureReader supports a new file format - “maestro_text”, which is only for Maestro files and effectively reads the properties from the file without structural information. A textual representation of the structure is however available and can be written to an output file allowing sorting and filtering type operations. Use of the “maestro_text” format is five to ten times faster than normal file reading.
  • schrodinger.structure.SmilesReader and schrodinger.structure.SmilesWriter provide for reading and writing structures in SMILES format.
  • schrodinger.structure.Structure.getXYZ and setXYZ are provided to access all atom coordinates as a NumPy array.
  • schrodinger.structure._Residue objects now have a ‘isStandardResidue’ method to test if they are standard residue types.
  • schrodinger.structure._Molecule and schrodinger.structure._Chain objects can now be deleted from Structure instances, e.g. del st.molecule[2] or del st.chain['A'].
  • schrodinger.structureutil.generate_asl is a function that takes a structure and a list of atoms and generates the most compact possible ASL expression for them.
  • schrodinger.maestro.maestro.selected_atoms_get_asl returns the atoms selected in the Workspace as an ASL expression.
  • schrodinger.maestro.maestro.workspace_changed_function_add allows the registration of a function to be called by Maestro each time the Workspace is changed. The callback function is called with a flag to indicate the nature of the change. There is a companion ‘workspace_changed_function_remove’ to remove the callback.
  • schrodinger.project.Project added a new iterator that can be used to iterate over all the groups in the project. It’s possible to get a list of the component entries from each group.
  • The schrodinger.project.ProjectRow class now has a ‘read_only’ property that allows an entry to be flagged as unable to be deleted by the user.
  • The schrodinger.project.ProjectRow class now has an ‘includeOnly’ method to allow a quick method for including a single entry in the Workspace.
  • schrodinger.structureutil now has functions to get a list of available color schemes and to apply them - available_color_schemes(), get_color_schemes() and apply_color_schemes(). These are available only if running under Maestro.
  • schrodinger.infra.color added new classes to define a Maestro color scheme (‘ColorScheme’) and make it easier to refer to colors by name or RGB (‘Color’).
  • schrodinger.utils.fileutils added the ‘splitext’ function that recognizes .mae.gz and other combined extensions as a single extension.
  • schrodinger.utils.fileutils added the get_structure_file_format function, which provides a standard identification of the various filetypes our readers can handle.
  • The schrodinger.utils.cmdline.main_wrapper function provides for consistent handling of signals for python processes.
Job Control
UI
Application Specific
  • schrodinger.application.glide.glide has added support for all keywords supported by the mmim library, constraint features, and multiple constraint groups, and can be used read and write SIF Glide files.
  • schrodinger.application.jaguar.output added parsing of additional properties: fukui indices, bond midpoint charges, the use of analytic gradients and frequencies, and whether esp fitting is done.

Deprecated Functions, Methods, and Modules

General

Job Control

  • Calling schrodinger.job.jobcontrol.launch_job with a string command is deprecated. Use a list of arguments instead.
  • Use of schrodinger.job.jobcontrol.get_host_dict should be replaced by schrodinger.job.jobcontrol.get_host_list.
  • Use of schrodinger.job.jobcontrol.parse_host_str should be replaced by schrodinger.job.jobcontrol.host_str_to_list.
  • Direct construction of a schrodinger.job.jobcontrol.Backend is deprecated. Use the schrodinger.job.jobcontrol.get_backend function to get a Backend object.
  • The ‘exit_on_failure’ argument to schrodinger.job.jobdj.JobDJ is deprecated. Use the new argument ‘max_failures’ instead. There is a module variable NO_LIMIT that can be used to prevent exiting upon subjob failures.
  • Passing a string command to schrodinger.job.jobdj.JobDJ.addJob should be replaced by passing in a list of arguments.

UI

Application Specific

  • The schrodinger.application.prime.primefix module is deprecated as it should not be needed in Suite 2008.
  • The schrodinger.application.glide.glide module has new names for the following keywords. The old names are still supported, but deprecated.
    • RECEP_FILE replaces MODEL_FILE
    • GRIDFILE replaces GRIDBASE, READZIP, and WRITEZIP
    • GRID_CENTER (array of floats) replaces XCENT/YCENT/ZCENT
    • RECVSCALE was renamed to RECEP_VSCALE
    • RECCUT was renamed to RECEP_CCUT
    • LIGAND_CONFS renamed to DOCKING_METHOD
    • OUTTYPE renamed to POSE_OUTTYPE
    • LVDW renamed to LIG_VSCALE
    • LIGCCUT renamed to LIG_CCUT

Suite 2007

These are the changes between Suite 2006 (v3.0) and Suite 2007 (v3.5).

API Changes

Structure Module

In Suite 2006 an attempt to request an atom property that did not exist for a given atom would return None. In Suite 2007 this has been changed to raise a KeyError exception.

The structure.atom[iatom].entry_id field now returns a Maestro entryID. This is an integer that is guaranteed to be unique for each entry in a project. The now deprecated structure.atom[iatom].entry_name field also now returns the entry ID.

Deprecated Modules

Modules that gave deprecation warnings in Suite 2006 have been moved to new locations. The following is a list of modules that have been moved.

  • schrodinger.mmlist was moved to schrodinger.infra.mmlist
  • schrodinger.jobcontrol was moved to schrodinger.job.jobcontrol
  • schrodinger.mm was moved to schrodinger.infra.mm
  • schrodinger.mmbitset was moved to schrodinger.infra.mmbitset
  • schrodinger.mmobject was moved to schrodinger.infra.mmobject

The deprecated MacroModel GUI modules have been removed from schrodinger.application.macromodel.tools. Note there are still MacroModel GUI modules in schrodinger.ui.macromodel.

Maestro Command Language Changes

Users with scripts that issue Maestro commands should be aware than in Maestro 8.0 the entry name is no longer necessarily unique and that some Maestro commands that previously took entry names as operands now require entry IDs (the latter being a unique integer for each entry).

New Features

Maestro Module

New functions workspace_draw_function_add and workspace_draw_function_remove can be used to register a function that is called each time the Maestro workspace is drawn.

New functions workspace_changed_function_add and workspace_changed_function_remove can be used to register a function that is called each time the contents of the Maestro workspace are modified. This will most commonly be used in conjunction with the draw callback functions described above.

picking_bond_start is a new function that can be used to register a function called whenever the user picks bonds in the workspace.

get_command_option is a new function, which given the name of a Maestro command an the name of an option to that command will return the current value associated with that option.

Structure Utilities

In the schrodinger.structureutil module, the following additions were made:

  • measure - allows measurements of distance, angle, dihedral and angles between planes for atoms that are in different Structure objects.
  • generate_crystal_mates returns a set of crystal mate structures when given a model and a unit cell/space group information.
  • get_num_rotatable_bonds returns the number of bonds in a structure that should be considered capable of free rotation.
  • get_chiral_atoms returns a list of atom numbers corresponding to those atoms in a structure that are chiral.
  • The ConformerRmsd class is used for performing superpositions and calculating RMSDs for conformers.

Structure Module

There are now iterators to traverse molecules, chains, residues and rings within a structure. See chapter 5 of the Python scripting tutorial for examples.

There is a new atom property - st.atom[iatom].chirality that can be used to determine if an atom is chiral returns S, R or None.

Structure objects now have a copy() method to allow them to be duplicated.

StructureReader can now be used to read files in mol2 format and gzip compressed Maestro format files (*.maegz or *.mae.gz).

MacroModel

There is a new SbcUtil class in schrodinger.application.macromodel.utils that supports ASL1 and ASL2 .sbc syntax

Protein Package

A new package that supports adding caps to, adding (and positioning) hydrogens and analyzing protein structures for structural defects.

UI

  • schrodinger.graphics3d is a new package with support for drawing 3D graphics in the Maestro workspace.
  • schrodinger.ui.widgettable is a new module that supports arrangement of UI controls in a scrollable table.
  • schrodinger.ui.propertyselector contains standard GUI components for presenting and selecting property names.
  • schrodinger.ui.rama is a new module to display a Ramachandran plot for a protein.

General

schrodinger.utils is a new package containing functions to perform logging of scripts and standardized processing of command line options.