Releases: biotite-dev/biotite
Releases · biotite-dev/biotite
Biotite 0.23.0
Changelog
Additions
- Improved example gallery
- Added minigalleries in the API reference to get tangible examples for the
respective function/class - Added support for animated Matplotlib plots
- Using Ammolite for rendering
PyMOL images
- Added minigalleries in the API reference to get tangible examples for the
- Added support for new RCSB search API
- New
database.rcsb.Queryclasses, that reflect the entirety of the new
search API, including sequence, sequence motif and structure searches- Multiple
database.rcsb.Queryobjects can be combined/negated using the
operators|,&and~
- Multiple
- Added the
return_type,sort_byandrangeparameter to
database.rcsb.search() - Added
database.rcsb.count()function to count the number of results a
database.rcsb.Querywould yield in a less costly way than
database.rcsb.search()
- New
- Increased indexing speed in
biotite.structure.BondList - Added attribute
sequence.Sequence.alphabetproperty, that is equivalent to
sequence.Sequence.get_alphabet() - Added convenience functions
fastq.get_sequence(),fastq.get_sequences(),
fastq.set_sequence()andfastq.set_sequences() - Drastically increased writing speed of
sequence.io.fasta.FastaFile - Increased mapping speed of
sequence.AlphabetMapper - Added
sequence.Alphabet.is_letter_alphabet()method - Added general sequence I/O convenience functions
sequence.io.load_sequence(),sequence.io.load_sequences(),
sequence.io.save_sequence()andsequence.io.save_sequences()that derive
the appropriateFileclass from the suffix of the file name.
Changes
- The
omit_chainparameter has been removed fromdatabase.rcsb.search() - The old
database.rcsb.Queryclasses have been removed - Removed
python setup.py testandpython setup.py build_sphinxcommands,
please usepytestandsphinx-builddirectly instead - Renamed
sequence.NucleotideSequence.alphabetto
sequence.NucleotideSequence.alphabet_unamb sequence.io.fastq.FastqFilereturns its entries only asstrinstead of
sequence.NucleotideSequencefor consistency with
sequence.io.fastq.FastaFile- The method
sequence.io.fastq.FastqFile.get_sequence()is deprecated - The method
sequence.io.fastq.FastqFile.get_seq_string()returns the
sequence as astrinstead of asequence.NucleotideSequence
- The method
Fixes
- Fixed
expect_loopedparameter in
structure.io.pdbx.PDBxFile.get_category() - Fixed error in
structure.io.pdbx.PDBxFile, that was raised, if a PDBx
field and its single-line value are in separate lines - Added check for boolean mask length, when a boolean mask is given as index
tobiotite.structure.BondList - Changed
chain_iddtype from'U3'to'U4'(#215)
Biotite 0.22.0
Changelog
Additions
- Added
structure.filter_nucleotides() structure.io.pdbx.get_sequence()is able to parse a
sequence.NucleotideSequencefrom a PDBx file in addition to
sequence.ProteinSequence- Added
structure.base_pairs()for determining base pairs in nucleic acid
structures - Added
structure.get_residue_starts_for() - Added
structure.check_atom_id_continuity() - Added
structure.renumber_atom_ids()andstructure.renumber_res_ids()
to fix structures with discontinuous atom/residue IDs - Added
get_model_count()tostructure.io.pdb,structure.io.pdbx,
structure.io.mmtfandstructure.io.groto obtain the total number
of models - The
modelparameter inget_structure()instructure.io.pdb,
structure.io.pdbx,structure.io.mmtfandstructure.io.grosupports
negative values to start indexing beginning from the last model - Increased performance of residue and chain-related functions
(e.g.structure.get_residue.starts())
Changes
- Revamped altloc ID handling (#194)
- Instead of choosing each alternate location individually there are three
options: 'first'choses always chooses the atoms with the first altloc ID
for each residue'occupancy'choses always chooses the atoms with the highest occupancy
for each residue'all'does not filter any altloc IDs and adds thealtloc_id
annotation to the resultingstructure.AtomArrayor
structure.AtomArrayStack
- Instead of choosing each alternate location individually there are three
- Renamed
structure.check_id_continuity()into
structure.check_res_id_continuity();structure.check_id_continuity()
is still available, but is deprecated
Fixes
- Fixed
structure.BondListbeing iterable, yielding nonsense values - Improved element guesses in
structure.io.pdb.PDBFilewhen the
element column is missing (#188) - Fixed parsing of single models from
structure.io.mmtf.MMTFFile(#205) - Fixed missing unit cell values in
structure.io.pdbx.get_structure()
raising an error; theboxattribute is set toNoneinstead
Biotite 0.21.0
Changelog
Additions
- More functionality for
structure.BondList__contains__()method to test whether a bond existsfind_connected()identifies systems of connected atoms (aka molecules)
- Added frame wise iteration of trajectory files for saving memory
structure.io.TrajectoryFile.read_iter()yields coordinates, box and time for each framestructure.io.TrajectoryFile.read_iter_structure()yields anstructure.AtomArrayfor each frame
- Added ability to read entire biological assemblies from mmCIF files
structure.io.pdbx.list_assemblies()lists the available assembliesstructure.io.pdbx.get_assembly()returns the given assembly as
structure.AtomArrayorstructure.AtomArrayStack
- Added the
expect_loopedparameter to
structure.io.pdbx.PDBxFile.get_category structure.info.vdw_radius_single()provides VdW radii also for more
uncommon elements- Added
structure.get_residue_masks(), which masks all residues to which the
given atoms belong - Added
structure.repeat()functions to repeat atoms multiple times in the
same model with different coordinates - Added a bunch of new examples to the gallery
Changes
temp_file()andtemp_dir()is deprecated, use the Python standard library
moduletempfileinstead- For all
Fileclasses,read()is now a class method,
e.g.pdbx_file = PDBxFile.read(), the old instance method is deprecated database.rcsb.fetch()anddatabase.enrez.fetch()overwrite an existing
file if it is empty
Fixes
- A newline character is appended to the end of file, when writing text files
- Fixed
structure.CellListwhen using theperiodicparameter in combination
with theselectionparameter; before unallocated memory was potentially
accessed
Biotite 0.20.1
Changelog
Fixes
- Fixed support for
msgpack1.0
Biotite 0.20.0
Changelog
Additions
- Added
structure.from_template()to create astructure.AtomArrayStackfrom an existing atom array (or stack) and coordinates - Added
ignoreparameter tosequence.io.genbank.get_annotation()to ignore the given feature keys - Added
sequence.graphics.plot_plasmid_map()for visualizingsequence.Annotationobjects as plasmid - Added a bunch of new examples to the gallery
- Added support for Python 3.8 on Windows
Changes
- The output of the
score_matrix()method ofsequence.align.SubstitutionMatrixis not writable anymore, rendering aSubstitutionMatrixtruly immutable - Renamed
environment.yamltoenvironment.yml - A
sequence.Featuremust have at least one location
Fixes
- Fixed incorrect centroid calculation in
structure.superimpose(), when providing a boolean mask - Fixed installation of PyPI source distributions
- Fixed issues when reading text files with
\r\nline breaks (line breaks with carriage return, typical for Windows)
Biotite 0.19.2
Changelog
Fixes
- Fixed examples in gallery
Biotite 0.19.1
Changelog
Additions
- FASTA files can be downloaded from RCSB PDB via
database.rcsb - Added
structure.rotate_about_axis()andstructure.align_vectors() - Added
shapeproperty andcopy()method tostructure.Atom - All array-like objects can be used to set an annotation array in an atom array (stack)
- Added
structure.info.residue()for getting the standard atoms and their coordinates for a given residue name - Added
structure.graphics.plot_atoms()for interactive molecular visualization - Added
exclusive_stopparameter tostructure.get_residue_startsandstructure.get_chain_starts - Added
connect_via_residue_names()andconnect_via_distances()for calculating astructure.BondListfor astructure.AtomArray
Changes
structure.rotate()does not rotate theboxof an atom array (stack) anymorestructure.BondListequality is not order dependent
Fixes
structure.BondListaccepts all dtypes for integer arraysstructure.BondListaccepts negative integers as indicessequence.io.fasta.FastaFile: Tests for invalid or empty filesstructure.io.pdb.PDBFile: Exception is raised if an invalid field inextra_fieldsis givenstructure.rotate(): Fixed rotation direction
Biotite 0.18.0
Changelog
Additions
- Added
shapeproperty tostructure.AtomArray()and
structure.AtomArrayStack() structure.Atom()has default values for annotation arrays- The functions
structure.rmsf(),structure.rmsd()andstructure.average()
accept directly coordinates - Added
use_author_fieldsparameter tostructure.io.pdbx.get_structure(),
that allows to decide between the usage oflabel_xxxandauth_xxxfields - Added
chunk_sizeparameter toread()method of trajectory files to
resolve memory issues - Added
density()function for calculating atom densities. - Added
sequence.align.get_pairwise_sequence_identity() - API reference shows source files of Cython modules
Changes
- The module name (
__module__attribute) of functions/classes are
changed to the name of the respective Biotite subpackage
(e.g.biotite.structure.atomstobiotite.structure) - Changed handling of PDB insertion codes:
- Atoms with insertion codes are not filtered out
- Removed
insertion_codeparameter in
biotite.structure.io.xxx.get_structure() - New mandatory annotation category
ins_code - Changed
structure.filter_inscode_and_altloc()to
structure.filter_altloc()
Fixes
- The
stepparameter in theread()method of trajectory files does not
increase thestopframe - Negative residue IDs are handled correctly by structure file readers/writers
- Fixed issues with indexing behavior in
sequence.align.Alignmentclass structure.remove_pbc()raises proper error message whenboxis missing
in the given atom array (stack)sequence.align.align_multiple()raises proper error message, if
pairwise distance cannot be calculated due to great sequence dissimilarity- In
sequence.io.genbank.get_annotation()qualifier keys without values
(e.g./pseudo) are handled properly - Added
pyproject.tomlspecifying build dependencies forsetup.py
Biotite 0.17.0
Changelog
Additions
- Support for hybrid-36 encoding in
structure.io.pdb.PDBFile - Added
get_coord()method instructure.io.pdb.PDBFilefor efficiently reading only the coordinates from a file structure.CellListcan be configured to put only a subset of atoms into the cells via theselectionparameter- Improved functionalities in
databasesubpackage.- A lot of new query types in
database.rcsb - The
minandmaxparameter of somedatabase.rcsbqueries are now optional database.rcsb.fetch()anddatabase.entrez.fetch()are able to write the downloaded files into a file-like object instead of writing the file to hard drivedatabase.entrez.fetch()properly checks for invalid responses from server based on https://github.com/kblin/ncbi-entrez-error-messagesdatabase.entrez.fetch()also supports common database namesdatabase.entrez.SimpleQueryalso supports abbreviated field names
- A lot of new query types in
structure.io.load_structure()andstructure.io.save_structure()support keyword arguments that are forwarded to the respectiveread()orget_structure()method.
Changes
databasesubpackage raisesdatabase.RequestErrorobjects when the server gives an invalid response
Fixes
- Fixed cross references in the API reference
sequence.io.genbank.GenBankFileraises a warning instead of an exception if the feature's location identifier is not understood and skips the featurestructure.io.pdb.PDBFileproperly checks whether all models have the same amount of atoms, when building astructure.AtomArrayStack
Biotite 0.16.0
Changelog
Additions
- New alignment color schemes
- Color schemes for protein sequence alignments created with Gecos software
- Including a color scheme adapted for red-green blindness
- Color scheme for protein block sequence alignments created with Gecos software
- Color schemes for protein sequence alignments adapted from JalView
- Color schemes for protein sequence alignments created with Gecos software
- More functionalities for external MSA software (
application.MSAAppsubclasses)- Additional CLI options can be set via
add_additional_options() - The executed command of
application.LocalAppcan be optained viaget_coomand() - Most MSA software interfaces allow setting and getting the distance matrix and the guide tree
- The corresponding method are
get_guide_tree(),set_guide_tree(),get_distance_matrix()andset_distance_matrix()
- The corresponding method are
- MSA software supporting cutom substitution matrices can be used to align almost any type of sequence, even if the type is not directly supported by the underlying software
- Additional CLI options can be set via
- Added euality operator for
sequence.align.Alignmentobjects sequence.phylo.Treesupports non-binary treessequence.phylo.TreeNodecan handle more than two child nodeslen()gives amount of leaves insequence.phylo.Treesequence.phylo.Treeandsequence.phylo.TreeNodesupport hash and equality operatorsequence.phylo.as_binary()function converts non-binary tree into binary tree, as required for guide trees
- Added
sequence.phylo.neighbor_joining()for hierarchical clustering
Changes
- Removed
Xas symbol for ambiguous nucleotides, useNinstead - Removed protected method
get_default_bin_path()fromapplication.MSAApp - Renamed protected method
set_options()toset_arguments()application.LocalApp - Renamed
set_matrix()toset_substitution_matrix()application.muscle.MuscleApp - Removed protected method
get_cli_arguments()inapplication.LocalApp - Adapted constructor of
sequence.phylo.TreeNodefor variable amount of child nodes application.MSAAppsubclasses must implement abstract static methods describing which sequence types they support and whether they support custom substitution matrices
Fixes
Uis automatically converted toTwhen loading nulceotide sequences from FASTA files- Score matrix in
sequence.align.SubstitutionMatrixis now truly read-only viandarrayflag application.Applicationsubclasses (all external software interfaces) now properly check whether the corresponding objects are in the correctapplication.AppState- Error in evaluation step of
application.Applicationnow leaves application inapplication.AppState.CANCELLEDstate - Fixed
InvalidFileErrornot being exposed to user - Symmetry checks in
sequence.phylo.upgma()allow for small rounding errors