ProDy 1.4 Series =============================================================================== .. contents:: :local: 1.4.9 (Nov 14, 2013) ------------------------------------------------------------------------------- **Upcoming changes**: * Support for Python 3.1 and NumPy 1.5 will be dropped, meaning no Windows installers will be built for these versions of them. **Improvements**: * :class:`.HierView` can handle :class:`.Residue` instances that have same :term:`segment` name, :term:`chain` identifier, and :term:`resnum`, if PDB file contains ``TER`` lines to terminate these residues. If these three identifiers are shared by multiple residues, indexing :class:`.AtomGroup` instances will return a list of residues. This behavior can be used as follows. Note that in v1.5, this will be the default behavior. >>> pdb_lines = """ ... ATOM 1 O WAT A 1 4.694 -3.891 -0.592 1.00 1.00 ... ATOM 2 H1 WAT A 1 5.096 -3.068 -0.190 1.00 1.00 ... ATOM 3 H2 WAT A 1 5.420 -4.544 -0.808 1.00 1.00 ... TER ... ATOM 4 O WAT A 1 -30.035 19.116 -2.193 1.00 1.00 ... ATOM 5 H1 WAT A 1 -30.959 18.736 -2.244 1.00 1.00 ... ATOM 6 H2 WAT A 1 -29.993 19.960 -2.728 1.00 1.00 ... TER ... ATOM 7 O WAT A 1 -77.584 -21.524 -37.894 1.00 1.00 ... ATOM 8 H1 WAT A 1 -77.226 -21.966 -38.717 1.00 1.00 ... ATOM 9 H2 WAT A 1 -77.023 -20.726 -37.674 1.00 1.00 ... TER""" >>> from StringIO import StringIO >>> atoms = parsePDBStream(StringIO(pdb_lines)) Current behavior: >>> print(atoms.numResidues()) 1 >>> atoms['A', 1] To activate the new behavior (which will be the default behavior in v1.5): >>> hv = atoms.getHierView(ter=True) >>> print(hv.numResidues()) >>> hv['A', 1] * :func:`.parsePDB` reads ``TER`` records in PDB files. Atoms and hetero atoms (:term:`hetatm`) that are followed by a ``TER`` record are now flagged as :term:`pdbter`. **Bugfixes**: * Fixed memory leaks in :func:`.uniqueSequences` and :func:`.buildSeqidMatrix`. 1.4.8 (Nov 4, 2013) ------------------------------------------------------------------------------- **New Features**: * New analysis functions :func:`.buildOMESMatrix` and :func:`.buildSCAMatrix` are implemented. * New :meth:`.AtomGroup.numBytes` method returns an estimate of memory usage. * New :func:`.countBytes` utility function is added for counting bytes used by NumPy arrays. **Improvements**: * :func:`.parsePDB` resizes data arrays to decrease memory usage. **Bugfixes**: * Fixed memory leaks in MSA :mod:`~.sequence.analysis` functions. * Fixed potential problems with importing contributed libraries. 1.4.7 (Oct 29, 2013) ------------------------------------------------------------------------------- **Improvements**: * :class:`.AtomGroup`, :class:`.Selection`, and other :class:`.Atomic` classes are picklable. * Improved equality tests for :class:`.AtomGroup`. Two different instances are considered equal if they contain identical data and coordinate sets. 1.4.6 (Oct 16, 2013) ------------------------------------------------------------------------------- **Bugfixes**: * Selection problem with using :term:`resid` is fixed (:issue:`160`) * Fixed a memory leak in MSA parsers written in C. When dealing with large files, leak would cause a segmentation fault. * Fixed a memory leak in MSA parsers written in C. When dealing with large files, leak would cause a segmentation fault. * Fixed a reference counting problem in MSA parsers in C that would cause segmentation fault when reading files that uses the same label for multiple sequences. * Updated :func:`.fetchPDBLigand` to use PDB for fetching XML files. * Revised handling of MSA file formats to avoid exceptions for unknown extensions. 1.4.5 (Sep 6, 2013) ------------------------------------------------------------------------------- **New Features**: * :func:`.parsePDBHeader` function can parse space group information from header section specified as ``REMARK 290``, e.g. ``parsePDBHeader('1mkp', 'space_group')`` or ``parsePDBHeader('1mkp')['space_group']`` * :term:`heavy` selection flag is defined as an alias for :term:`noh`. * :func:`.matchChains` function can match non-hydrogen atoms using ``subset='heavy'`` keyword argument. * Added ``update_coords`` keyword argument to :meth:`.PCA.builCovariance`, so that average coordinates calculated internally can be stored in ensemble or trajectory objects used as input. **Improvements**: * Unit tests can be run with Python 2.6 when `unittest2` module is installed. .. _unittest2: https://pypi.python.org/pypi/unittest2 **Bugfixes**: * Fixed problems with reading compressed PDB files using Python 3.3. * Fixed a bug in :func:`.parseSTRIDE` function that prevented reading files. * Improved parsing of biomolecular transformations. * Fixed memory allocation in C code used by :func:`.parseMSA` (Python 2.6). * Fixed a potential name error in trajectory classes. * Fixed problems in handling compressed files when using Python 2.6 and 3.3. * Fixed a problem with indexing :class:`.NMA` instances in Python 3 series. 1.4.4 (July 22, 2013) ------------------------------------------------------------------------------- **Improvements**: * :func:`.writeNMD` and :func:`.parseNMD` write and read segment names. NMWiz is also improved to handle segment names. Improvements will be available in VMD v1.9.2. **Bugfixes**: * A bug in :func:`.saveAtoms` that would cause :exc:`KeyError` when bonds are set but fragments are not determined is fixed. * Import ProDy would fail when :envvar:`HOME` is not set. Changed :class:`.PackageSettings` to handle this case graciously. 1.4.3 (June 14, 2013) ------------------------------------------------------------------------------- **Changes**: * :func:`.getVMDpath` and :func:`.setVMDpath` functions are deprecated for removal, use :func:`.pathVMD` instead. * Increased :func:`.blastPDB` *timeout* to 60 seconds. * :func:`.extendModel` and :func:`.extendMode` functions have a new option for normalizing extended mode(s). * :func:`.sampleModes` and :func:`.traverseMode` automatically normalizes input modes. **Bugfixes**: * A bug in :func:`.applyTransformation` is fixed. The function would interpret some external transformation matrices incorrectly. * A bug in :func:`.fetchPDBLigand` function is fixed. 1.4.2 (April 19, 2013) ------------------------------------------------------------------------------- **Improvements**: * :func:`.fetchPDB` and :func:`.fetchPDBfromMirror` functions can handle partial PDB mirrors. See :func:`.pathPDBMirror` for setting a mirror path. **Changes**: * `MSE `_ is included in the definition of non-standard amino acids, i.e. :term:`nonstdaa`. **Bugfixes**: * Atom selection problems related to using :term:`all` and :term:`none` in composite selections, e.g. ``'calpha and all'``, is fixed by defining these keywords as :ref:`flags`. * Fasta files with sequence labels using multiple pipe characters would cause C parser (and so :func:`.parseMSA`) to fail. This issue is fixed by completely disregarding pipe characters. * Empty chain identifiers for PDB hits would cause a problem in parsing XML results file and :func:`.blastPDB` would throw an exception. This case is handled by slicing the chain identifier string. * A problem in :func:`.viewNMDinVMD` related to module imports is fixed. * A problem with handling weights in :func:`.loadEnsemble` is fixed. 1.4.1 (Dec 16, 2012) ------------------------------------------------------------------------------- **New Features**: * :func:`.buildSeqidMatrix` and :func:`.uniqueSequences` functions are implemented for comparing sequences in an :class:`.MSA` object. * :func:`.showHeatmap`, :func:`.parseHeatmap`, and :func:`.writeHeatmap` functions are implemented to support VMD plugin `Heat Mapper`_ file format. .. _Heat Mapper: http://www.ks.uiuc.edu/Research/vmd/plugins/heatmapper/ * :class:`.Sequence` is implemented to handle individual sequence records and point to sequences in :class:`.MSA` instances. * :ref:`evol-occupancy` application is implemented for refined MSA quality checking purposes. * :func:`.mergeMSA` function and :ref:`evol-merge` application are implemented for merging Pfam MSA to study multi-domain proteins. **Improvements**: * :func:`.refineMSA` function and :ref:`evol-refine` application can perform MSA refinements by removing similar sequences. * :func:`.writePDB` function takes *beta* and *occupancy* arguments to be outputted in corresponding columns. * :class:`.MSA` indexing and slicing are revised and improved. * :func:`.parseMSA` is improved to handle indexing of sequences that have the same label in an MSA file, e.g. domains repeated in a protein. * :ref:`prody-anm`, :ref:`prody-gnm`, and :ref:`prody-pca` applications can write heatmap files for visualization using NMWiz and Heatmapper plugins. * Several improvements made to handling sequence labels in Pfam MSA files. Files that contain sequence parts with same protein UniProt ID are handled delicately. **Changes**: * ProDy will not emit a warning message when a wwPDB server is not set using :func:`.wwPDBServer`, and use the default US server. * Indexing :class:`.MSA` returns :class:`.Sequence` instances. * Iterating over :class:`.MSA` and :class:`.MSAFile` yields :class:`.Sequence` instances. **Bugfixes**: * Fixed a syntax problem that prevented running ProDy using Python 2.6. * Fixed :class:`.NMA` indexing problem that was introduced in v1.4. Normal Mode Wizard ^^^^^^^^^^^^^^^^^^ * NMWiz can visualize heatmaps linked to structural view via Heatmapper. Clicking on the heatmap will highlight atom or residue pairs. * ProDy interface has the option to write and load cross-correlations. * NMWiz can determined whether a model is an extended model. For extended models plotting mobility has been improved. Only a single value per residue will be plotted, and clicking on the plot will highlight all of the residue atoms. 1.4 (Dec 2, 2012) ------------------------------------------------------------------------------- **New Features**: *Python 3 Support* * ProDy has been refactored to support Python 3. Windows installers for Python 2.6, 2.7, 3.1, and 3.2 are available in :ref:`getprody`. * Unit tests are compatible with Python 2.7 and 3.2, and running them with other versions gives errors due to unavailability of some :mod:`unittest` features. *Sequence Analysis* * New applications :ref:`evol-apps` are available. * :func:`.searchPfam` and :func:`.fetchPfamMSA` functions are implemented for searching and retrieving Pfam data. See :ref:`msafiles` for usage examples. * :class:`.MSAFile` class, :func:`.parseMSA` and :func:`.writeMSA` functions are implemented for reading and writing multiple sequence alignments. See :ref:`msafiles` for usage examples. * :class:`.MSA` class has been implemented for storing and manipulating MSAs in memory. * :func:`.calcShannonEntropy`, :func:`.buildMutinfoMatrix`, and :func:`.calcMSAOccupancy` functions are implemented implemented for MSA analysis. See :ref:`msa-analysis` for usage examples. * :func:`.showShannonEntropy`, :func:`.showMutinfoMatrix`, and :func:`.showMSAOccupancy` functions are implemented implemented for MSA analysis. See :ref:`msa-analysis` for usage examples. * :func:`.applyMutinfoCorr` and :func:`.applyMutinfoNorm` functions are implemented for applying normalization and corrections to mutual information matrices. * :func:`.calcRankorder` function is implemented for identifying highly correlated/co-evolving pairs of residues. **Bugfix**: * Fixed selection issues involving use of ``x`` or negative numbers.