ProDy 0.8 Series =============================================================================== .. contents:: :local: 0.8.3 (Oct 16, 2011) ------------------------------------------------------------------------------- **New Features**: * Functions to read and write PQR files: :func:`.parsePQR` and :func:`.writePQR`. * Added :meth:`.PDBEnsemble.getIdentifiers` method that returns identifiers of all conformations in the ensemble. * ProDy tests are incorporated to the package installer. If you are using Python version 2.7, you can run the tests by calling ``prody.test()``. **Improvements**: * :func:`.blastPDB` function and :class:`.PDBBlastRecord` class are rewritten to use faster and more compact code. * New :class:`.PackageLogger` function is implemented to unify logging and reporting task progression. * Improvements in PDB ensemble support functions, e.g. :func:`.trimPDBEnsemble`, are made. * Improvements in ensemble concatenations are made. **Bug Fixes**: * Bugfixes in :func:`.PDBEnsemble` slicing operation. This may have affected users when slicing a PDB ensemble for plotting projections in color for different forms of the protein. 0.8.2 (Oct 14, 2011) ------------------------------------------------------------------------------- **New Features**: * :func:`.fetchPDBClusters`, :func:`.loadPDBClusters`, and :func:`.getPDBCluster` functions are implemented for handling PDB sequence cluster data. These functions can be used instead of :func:`.blastPDB` function for fast access to structures of the same protein (at 95% sequence identity level) or similar proteins. * Perturbation response scanning method described in [CA09]_ is implemented as :func:`.scanPerturbationResponse` based on the code provided by Ying Liu. **Changes**: * :func:`.fetchPDBLigand` returns the URL of the XML file in the ligand data dictionary. * Name of the ProDy configuration file in user :file:`home` directory is renamed as :file:`.prodyrc` (used to be :file:`.prody`). * :func:`.applyBiomolecularTransformations` and :func:`.assignSecondaryStructure` functions raise :class:`ValueError` when the function fails to perform its action due to missing data in header dictionary. * :func:`.fetchPDB` decompresses PDB files found in the working directory when user asks for decompressed files. * :func:`.parsePDB` appends *chain* and *subset* arguments to :func:`.AtomGroup` name. * *chain* argument is added to :meth:`.PDBBlastRecord.getHits`. **Improvements**: * Atom selection class :class:`.Select` is completely redesigned to prevent breaking of the parser when evaluating invalid selection strings. * Improved type checking in :func:`.parsePDB` function. **Bug Fixes**: * Bugfixes in :func:`.parseDSSP`: one emerged problems in lines indicating chain breaks, another did not parse bridge-partners correctly. Both fixes are contributed by Kian Ho. * Bugfix in :func:`.parsePDB` function. When only header is desired (``header=True, model=0``), would return a tuple containing an empty atom group and the header. **Developmental**: * Unit tests for :mod:`.proteins` and :mod:`~.prody.select` modules are developed. 0.8.1 (Sep 16, 2011) ------------------------------------------------------------------------------- **New Features**: * :func:`.fetchLigandData` is implemented for fetching ligand data from Ligand Expo. * :func:`.parsePSF` function is implemented for parsing X-PLOR format PSF files. **Changes**: * __slots__ is used in :class:`.AtomGroup` and :class:`.Atomic` classes. This change prevents user from assigning new variables to instances of all classes derived from the base :class:`.Atomic`. * :mod:`pyparsing` is updated to version 1.5.6. **Bug Fixes**: * A bug in :meth:`.AtomGroup.copy` method is fixed. When AtomGroup instance itself is copied, deep copies of data arrays were not made. * A bug in :class:`.Select` class raising exceptions when negative residue number values are present is fixed. * Another bug in :class:`.Select` class misinterpreting ``same residue as ...`` statement when specific chains are involved is fixed. * A bug in :meth:`.AtomGroup.addCoordset` method duplicating coordinates when no coordinate sets are present in the instance is fixed. Normal Mode Wizard ^^^^^^^^^^^^^^^^^^ **Changes**: * Version number in main window is iterated. * Mode graphics material is stored for individual modes. * Mode scaling factor is printed when active mode or RMSD is changed. * All selections are deleted to avoid memory leaks. 0.8 (Aug 24, 2011) ------------------------------------------------------------------------------- .. note:: After installing v0.8, you may need to make a small change in your existing scripts. If you are using :class:`.Ensemble` class for analyzing PDB structures, rename it as :class:`.PDBEnsemble`. See the other changes that may affect your work below and the class documentation for more information. **New Features**: * :class:`.DCDFile` is implemented for handling DCD files. * :class:`.Trajectory` is implemented for handling multiple trajectory files. * :func:`.writeDCD` is implemented for writing DCD files. * :ref:`trajectory` example to illustrate usage of new classes for handling DCD files. :ref:`eda` example is updated to use new ProDy classes. * :class:`.PCA` supports :class:`.Trajectory` and :class:`.DCDFile` instances. * :class:`.Ensemble` and :class:`.PDBEnsemble` classes can be associated with :class:`.AtomGroup` instances. This allows selecting and evaluating coordinates of subset of atoms. See :meth:`~.EnsembleBase.setAtomGroup`, :meth:`~.EnsembleBase.select`, :meth:`~.EnsembleBase.getAtomGroup`, and :meth:`~.EnsembleBase.getSelection` methods. * :func:`.execDSSP`, :func:`.parseDSSP`, and :func:`.performDSSP` functions are implemented for executing and parsing DSSP calculations. * :func:`.execSTRIDE`, :func:`.parseSTRIDE`, and :func:`.performSTRIDE` functions are implemented for executing and parsing DSSP calculations. * :func:`.parsePDB` function parses atom serial numbers. Atoms can be retrieved from an :class:`.AtomGroup` instance by their serial numbers using :meth:`~.AtomGroup.getBySerial` and :meth:`~.AtomGroup.getBySerialRange` methods. * :func:`.calcADPs` function can be used to calculate anisotropic displacement parameters for atoms with anisotropic temperature factor data. * :meth:`~.Ensemble.getRMSFs` is implemented for calculating root mean square fluctuations. * :class:`.AtomGroup` and :class:`.Mode` or :class:`.Vector` additions are supported. This adds a new coordinate set to the :class:`.AtomGroup` instance. * :meth:`~.AtomGroup.getAttrNames` is implemented for listing user set attribute names. **Improvements**: * :func:`.calcProjection`, :func:`.showProjection`, and :func:`.showCrossProjection` functions can optionally calculate/display RMSD along the normal mode. * ANM, GNM, and PCA applications can optionally write compressed ProDy data files. * :func:`.fetchPDB` function can optionally write decompressed files and force copying a file from local mirror to target folder. * :meth:`.PCA.buildCovariance` and :meth:`.PCA.performSVD` methods accept Numpy arrays as coordinate sets. * Performance of :meth:`.PCA.buildCovariance` method is optimized for evaluation of PDB ensembles. * :func:`.calcRMSD` and :func:`.superpose` functions are optimized for speed and memory usage. * :meth:`.Ensemble.getMSFs` is optimized for speed and memory usage. * Improvements in memory operations in :mod:`~prody.atomic`, :mod:`~prody.ensemble`, and :mod:`~prody.dynamics` modules for faster data (PDB/NMD) output. * Optimizations in :class:`.Select` and :class:`.Contacts` classes. **Changes**: * :class:`.Ensemble` does not store conformation names. Instead, newly implemented :class:`.PDBEnsemble` class stores identifiers for individual conformations (PDB IDs). This class should be used in cases where source of individual conformations is important. * :func:`.calcProjection`, :func:`.showProjection`, and :func:`.showCrossProjection` function calculate/display root mean square deviations, by default. * Oxidized cysteine residue abbreviation ``CSO`` is added to the definition of ``protein`` keyword. * :meth:`getMSF` method is renamed as :meth:`~.Ensemble.getMSFs`. * :func:`.parseDCD` function returns :class:`.Ensemble` instances. **Bug Fixes**: * A bug in :mod:`~atomic.select` module causing exceptions when regular expressions are used is fixed. * Another bug in :mod:`~atomic.select` module raising exception when "(not ..," is passed is fixed. * Various bugfixes in :mod:`~prody.ensemble` module. * Problem in :program:`prody fetch` that occurred when a file is found in a local mirror is fixed. * Bugfix in :meth:`.AtomPointer.copy` method. :ref:`nmwiz` ^^^^^^^^^^^^ **New Features**: * NMWiz can be used to compare two structures by calculating and depicting structural changes. * Arrow graphics is scaled based on a user specified RMSD value. **Improvements**: * NMWiz writes DCD format trajectories for PCA using ProDy. This provides significant speed up in cases where IO rate is the bottleneck. **Changes**: * Help is provided in a text window to provide a cleaner GUI. .. [CA09] Atilgan C, Atilgan AR. Perturbation-response scanning reveals ligand entry-exit mechanisms of ferric binding protein. *PLoS Comput. Biol.* **2009** 5:e1000544.