biotite 1.6.0__cp314-cp314-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- biotite/__init__.py +18 -0
- biotite/application/__init__.py +69 -0
- biotite/application/application.py +276 -0
- biotite/application/autodock/__init__.py +12 -0
- biotite/application/autodock/app.py +500 -0
- biotite/application/blast/__init__.py +14 -0
- biotite/application/blast/alignment.py +92 -0
- biotite/application/blast/webapp.py +426 -0
- biotite/application/clustalo/__init__.py +12 -0
- biotite/application/clustalo/app.py +223 -0
- biotite/application/dssp/__init__.py +12 -0
- biotite/application/dssp/app.py +216 -0
- biotite/application/localapp.py +342 -0
- biotite/application/mafft/__init__.py +12 -0
- biotite/application/mafft/app.py +116 -0
- biotite/application/msaapp.py +363 -0
- biotite/application/muscle/__init__.py +13 -0
- biotite/application/muscle/app3.py +227 -0
- biotite/application/muscle/app5.py +163 -0
- biotite/application/sra/__init__.py +18 -0
- biotite/application/sra/app.py +447 -0
- biotite/application/tantan/__init__.py +12 -0
- biotite/application/tantan/app.py +199 -0
- biotite/application/util.py +77 -0
- biotite/application/viennarna/__init__.py +18 -0
- biotite/application/viennarna/rnaalifold.py +310 -0
- biotite/application/viennarna/rnafold.py +254 -0
- biotite/application/viennarna/rnaplot.py +208 -0
- biotite/application/viennarna/util.py +77 -0
- biotite/application/webapp.py +76 -0
- biotite/copyable.py +71 -0
- biotite/database/__init__.py +23 -0
- biotite/database/afdb/__init__.py +12 -0
- biotite/database/afdb/download.py +202 -0
- biotite/database/entrez/__init__.py +15 -0
- biotite/database/entrez/check.py +66 -0
- biotite/database/entrez/dbnames.py +101 -0
- biotite/database/entrez/download.py +224 -0
- biotite/database/entrez/key.py +44 -0
- biotite/database/entrez/query.py +263 -0
- biotite/database/error.py +16 -0
- biotite/database/pubchem/__init__.py +21 -0
- biotite/database/pubchem/download.py +259 -0
- biotite/database/pubchem/error.py +30 -0
- biotite/database/pubchem/query.py +819 -0
- biotite/database/pubchem/throttle.py +98 -0
- biotite/database/rcsb/__init__.py +13 -0
- biotite/database/rcsb/download.py +191 -0
- biotite/database/rcsb/query.py +963 -0
- biotite/database/uniprot/__init__.py +13 -0
- biotite/database/uniprot/check.py +40 -0
- biotite/database/uniprot/download.py +127 -0
- biotite/database/uniprot/query.py +292 -0
- biotite/file.py +244 -0
- biotite/interface/__init__.py +19 -0
- biotite/interface/openmm/__init__.py +20 -0
- biotite/interface/openmm/state.py +93 -0
- biotite/interface/openmm/system.py +227 -0
- biotite/interface/pymol/__init__.py +201 -0
- biotite/interface/pymol/cgo.py +346 -0
- biotite/interface/pymol/convert.py +185 -0
- biotite/interface/pymol/display.py +267 -0
- biotite/interface/pymol/object.py +1228 -0
- biotite/interface/pymol/shapes.py +178 -0
- biotite/interface/pymol/startup.py +169 -0
- biotite/interface/rdkit/__init__.py +19 -0
- biotite/interface/rdkit/mol.py +491 -0
- biotite/interface/version.py +94 -0
- biotite/interface/warning.py +19 -0
- biotite/sequence/__init__.py +84 -0
- biotite/sequence/align/__init__.py +199 -0
- biotite/sequence/align/alignment.py +763 -0
- biotite/sequence/align/banded.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/banded.pyx +652 -0
- biotite/sequence/align/buckets.py +71 -0
- biotite/sequence/align/cigar.py +425 -0
- biotite/sequence/align/kmeralphabet.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/kmeralphabet.pyx +595 -0
- biotite/sequence/align/kmersimilarity.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/kmersimilarity.pyx +233 -0
- biotite/sequence/align/kmertable.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/kmertable.pyx +3411 -0
- biotite/sequence/align/localgapped.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/localgapped.pyx +892 -0
- biotite/sequence/align/localungapped.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/localungapped.pyx +279 -0
- biotite/sequence/align/matrix.py +631 -0
- biotite/sequence/align/matrix_data/3Di.mat +24 -0
- biotite/sequence/align/matrix_data/BLOSUM100.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM30.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM35.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM40.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM45.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM50.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM50_13p.mat +25 -0
- biotite/sequence/align/matrix_data/BLOSUM50_14.3.mat +25 -0
- biotite/sequence/align/matrix_data/BLOSUM50_5.0.mat +25 -0
- biotite/sequence/align/matrix_data/BLOSUM55.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM60.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM62.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM62_13p.mat +25 -0
- biotite/sequence/align/matrix_data/BLOSUM62_14.3.mat +25 -0
- biotite/sequence/align/matrix_data/BLOSUM62_5.0.mat +25 -0
- biotite/sequence/align/matrix_data/BLOSUM65.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM70.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM75.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM80.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM85.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUM90.mat +31 -0
- biotite/sequence/align/matrix_data/BLOSUMN.mat +31 -0
- biotite/sequence/align/matrix_data/CorBLOSUM49_5.0.mat +25 -0
- biotite/sequence/align/matrix_data/CorBLOSUM57_13p.mat +25 -0
- biotite/sequence/align/matrix_data/CorBLOSUM57_14.3.mat +25 -0
- biotite/sequence/align/matrix_data/CorBLOSUM61_5.0.mat +25 -0
- biotite/sequence/align/matrix_data/CorBLOSUM66_13p.mat +25 -0
- biotite/sequence/align/matrix_data/CorBLOSUM67_14.3.mat +25 -0
- biotite/sequence/align/matrix_data/DAYHOFF.mat +32 -0
- biotite/sequence/align/matrix_data/GONNET.mat +26 -0
- biotite/sequence/align/matrix_data/IDENTITY.mat +25 -0
- biotite/sequence/align/matrix_data/MATCH.mat +25 -0
- biotite/sequence/align/matrix_data/NUC.mat +25 -0
- biotite/sequence/align/matrix_data/PAM10.mat +34 -0
- biotite/sequence/align/matrix_data/PAM100.mat +34 -0
- biotite/sequence/align/matrix_data/PAM110.mat +34 -0
- biotite/sequence/align/matrix_data/PAM120.mat +34 -0
- biotite/sequence/align/matrix_data/PAM130.mat +34 -0
- biotite/sequence/align/matrix_data/PAM140.mat +34 -0
- biotite/sequence/align/matrix_data/PAM150.mat +34 -0
- biotite/sequence/align/matrix_data/PAM160.mat +34 -0
- biotite/sequence/align/matrix_data/PAM170.mat +34 -0
- biotite/sequence/align/matrix_data/PAM180.mat +34 -0
- biotite/sequence/align/matrix_data/PAM190.mat +34 -0
- biotite/sequence/align/matrix_data/PAM20.mat +34 -0
- biotite/sequence/align/matrix_data/PAM200.mat +34 -0
- biotite/sequence/align/matrix_data/PAM210.mat +34 -0
- biotite/sequence/align/matrix_data/PAM220.mat +34 -0
- biotite/sequence/align/matrix_data/PAM230.mat +34 -0
- biotite/sequence/align/matrix_data/PAM240.mat +34 -0
- biotite/sequence/align/matrix_data/PAM250.mat +34 -0
- biotite/sequence/align/matrix_data/PAM260.mat +34 -0
- biotite/sequence/align/matrix_data/PAM270.mat +34 -0
- biotite/sequence/align/matrix_data/PAM280.mat +34 -0
- biotite/sequence/align/matrix_data/PAM290.mat +34 -0
- biotite/sequence/align/matrix_data/PAM30.mat +34 -0
- biotite/sequence/align/matrix_data/PAM300.mat +34 -0
- biotite/sequence/align/matrix_data/PAM310.mat +34 -0
- biotite/sequence/align/matrix_data/PAM320.mat +34 -0
- biotite/sequence/align/matrix_data/PAM330.mat +34 -0
- biotite/sequence/align/matrix_data/PAM340.mat +34 -0
- biotite/sequence/align/matrix_data/PAM350.mat +34 -0
- biotite/sequence/align/matrix_data/PAM360.mat +34 -0
- biotite/sequence/align/matrix_data/PAM370.mat +34 -0
- biotite/sequence/align/matrix_data/PAM380.mat +34 -0
- biotite/sequence/align/matrix_data/PAM390.mat +34 -0
- biotite/sequence/align/matrix_data/PAM40.mat +34 -0
- biotite/sequence/align/matrix_data/PAM400.mat +34 -0
- biotite/sequence/align/matrix_data/PAM410.mat +34 -0
- biotite/sequence/align/matrix_data/PAM420.mat +34 -0
- biotite/sequence/align/matrix_data/PAM430.mat +34 -0
- biotite/sequence/align/matrix_data/PAM440.mat +34 -0
- biotite/sequence/align/matrix_data/PAM450.mat +34 -0
- biotite/sequence/align/matrix_data/PAM460.mat +34 -0
- biotite/sequence/align/matrix_data/PAM470.mat +34 -0
- biotite/sequence/align/matrix_data/PAM480.mat +34 -0
- biotite/sequence/align/matrix_data/PAM490.mat +34 -0
- biotite/sequence/align/matrix_data/PAM50.mat +34 -0
- biotite/sequence/align/matrix_data/PAM500.mat +34 -0
- biotite/sequence/align/matrix_data/PAM60.mat +34 -0
- biotite/sequence/align/matrix_data/PAM70.mat +34 -0
- biotite/sequence/align/matrix_data/PAM80.mat +34 -0
- biotite/sequence/align/matrix_data/PAM90.mat +34 -0
- biotite/sequence/align/matrix_data/PB.license +21 -0
- biotite/sequence/align/matrix_data/PB.mat +18 -0
- biotite/sequence/align/matrix_data/RBLOSUM52_5.0.mat +25 -0
- biotite/sequence/align/matrix_data/RBLOSUM59_13p.mat +25 -0
- biotite/sequence/align/matrix_data/RBLOSUM59_14.3.mat +25 -0
- biotite/sequence/align/matrix_data/RBLOSUM64_5.0.mat +25 -0
- biotite/sequence/align/matrix_data/RBLOSUM69_13p.mat +25 -0
- biotite/sequence/align/matrix_data/RBLOSUM69_14.3.mat +25 -0
- biotite/sequence/align/multiple.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/multiple.pyx +619 -0
- biotite/sequence/align/pairwise.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/pairwise.pyx +585 -0
- biotite/sequence/align/permutation.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/permutation.pyx +313 -0
- biotite/sequence/align/primes.txt +821 -0
- biotite/sequence/align/selector.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/selector.pyx +954 -0
- biotite/sequence/align/statistics.py +264 -0
- biotite/sequence/align/tracetable.cp314-win_amd64.pyd +0 -0
- biotite/sequence/align/tracetable.pxd +64 -0
- biotite/sequence/align/tracetable.pyx +370 -0
- biotite/sequence/alphabet.py +555 -0
- biotite/sequence/annotation.py +836 -0
- biotite/sequence/codec.cp314-win_amd64.pyd +0 -0
- biotite/sequence/codec.pyx +155 -0
- biotite/sequence/codon.py +476 -0
- biotite/sequence/codon_tables.txt +202 -0
- biotite/sequence/graphics/__init__.py +33 -0
- biotite/sequence/graphics/alignment.py +1101 -0
- biotite/sequence/graphics/color_schemes/3di_flower.json +48 -0
- biotite/sequence/graphics/color_schemes/autumn.json +51 -0
- biotite/sequence/graphics/color_schemes/blossom.json +51 -0
- biotite/sequence/graphics/color_schemes/clustalx_dna.json +11 -0
- biotite/sequence/graphics/color_schemes/clustalx_protein.json +28 -0
- biotite/sequence/graphics/color_schemes/flower.json +51 -0
- biotite/sequence/graphics/color_schemes/jalview_buried.json +31 -0
- biotite/sequence/graphics/color_schemes/jalview_hydrophobicity.json +31 -0
- biotite/sequence/graphics/color_schemes/jalview_prop_helix.json +31 -0
- biotite/sequence/graphics/color_schemes/jalview_prop_strand.json +31 -0
- biotite/sequence/graphics/color_schemes/jalview_prop_turn.json +31 -0
- biotite/sequence/graphics/color_schemes/jalview_taylor.json +28 -0
- biotite/sequence/graphics/color_schemes/jalview_zappo.json +28 -0
- biotite/sequence/graphics/color_schemes/ocean.json +51 -0
- biotite/sequence/graphics/color_schemes/pb_flower.json +40 -0
- biotite/sequence/graphics/color_schemes/rainbow_dna.json +11 -0
- biotite/sequence/graphics/color_schemes/rainbow_protein.json +30 -0
- biotite/sequence/graphics/color_schemes/spring.json +51 -0
- biotite/sequence/graphics/color_schemes/sunset.json +51 -0
- biotite/sequence/graphics/color_schemes/wither.json +51 -0
- biotite/sequence/graphics/colorschemes.py +170 -0
- biotite/sequence/graphics/dendrogram.py +231 -0
- biotite/sequence/graphics/features.py +544 -0
- biotite/sequence/graphics/logo.py +102 -0
- biotite/sequence/graphics/plasmid.py +712 -0
- biotite/sequence/io/__init__.py +12 -0
- biotite/sequence/io/fasta/__init__.py +22 -0
- biotite/sequence/io/fasta/convert.py +462 -0
- biotite/sequence/io/fasta/file.py +265 -0
- biotite/sequence/io/fastq/__init__.py +19 -0
- biotite/sequence/io/fastq/convert.py +117 -0
- biotite/sequence/io/fastq/file.py +507 -0
- biotite/sequence/io/genbank/__init__.py +17 -0
- biotite/sequence/io/genbank/annotation.py +269 -0
- biotite/sequence/io/genbank/file.py +573 -0
- biotite/sequence/io/genbank/metadata.py +336 -0
- biotite/sequence/io/genbank/sequence.py +173 -0
- biotite/sequence/io/general.py +201 -0
- biotite/sequence/io/gff/__init__.py +26 -0
- biotite/sequence/io/gff/convert.py +128 -0
- biotite/sequence/io/gff/file.py +449 -0
- biotite/sequence/phylo/__init__.py +36 -0
- biotite/sequence/phylo/nj.cp314-win_amd64.pyd +0 -0
- biotite/sequence/phylo/nj.pyx +221 -0
- biotite/sequence/phylo/tree.cp314-win_amd64.pyd +0 -0
- biotite/sequence/phylo/tree.pyx +1169 -0
- biotite/sequence/phylo/upgma.cp314-win_amd64.pyd +0 -0
- biotite/sequence/phylo/upgma.pyx +164 -0
- biotite/sequence/profile.py +561 -0
- biotite/sequence/search.py +117 -0
- biotite/sequence/seqtypes.py +720 -0
- biotite/sequence/sequence.py +373 -0
- biotite/setup_ccd.py +197 -0
- biotite/structure/__init__.py +135 -0
- biotite/structure/alphabet/__init__.py +25 -0
- biotite/structure/alphabet/encoder.py +332 -0
- biotite/structure/alphabet/encoder_weights_3di.kerasify +0 -0
- biotite/structure/alphabet/i3d.py +109 -0
- biotite/structure/alphabet/layers.py +86 -0
- biotite/structure/alphabet/pb.license +21 -0
- biotite/structure/alphabet/pb.py +170 -0
- biotite/structure/alphabet/unkerasify.py +128 -0
- biotite/structure/atoms.py +1596 -0
- biotite/structure/basepairs.py +1403 -0
- biotite/structure/bonds.cp314-win_amd64.pyd +0 -0
- biotite/structure/bonds.pyx +2036 -0
- biotite/structure/box.py +724 -0
- biotite/structure/celllist.cp314-win_amd64.pyd +0 -0
- biotite/structure/celllist.pyx +864 -0
- biotite/structure/chains.py +310 -0
- biotite/structure/charges.cp314-win_amd64.pyd +0 -0
- biotite/structure/charges.pyx +521 -0
- biotite/structure/compare.py +683 -0
- biotite/structure/density.py +109 -0
- biotite/structure/dotbracket.py +213 -0
- biotite/structure/error.py +39 -0
- biotite/structure/filter.py +646 -0
- biotite/structure/geometry.py +817 -0
- biotite/structure/graphics/__init__.py +13 -0
- biotite/structure/graphics/atoms.py +243 -0
- biotite/structure/graphics/rna.py +298 -0
- biotite/structure/hbond.py +426 -0
- biotite/structure/info/__init__.py +24 -0
- biotite/structure/info/atom_masses.json +121 -0
- biotite/structure/info/atoms.py +98 -0
- biotite/structure/info/bonds.py +149 -0
- biotite/structure/info/ccd.py +200 -0
- biotite/structure/info/components.bcif +0 -0
- biotite/structure/info/groups.py +128 -0
- biotite/structure/info/masses.py +121 -0
- biotite/structure/info/misc.py +137 -0
- biotite/structure/info/radii.py +267 -0
- biotite/structure/info/standardize.py +185 -0
- biotite/structure/integrity.py +213 -0
- biotite/structure/io/__init__.py +29 -0
- biotite/structure/io/dcd/__init__.py +13 -0
- biotite/structure/io/dcd/file.py +67 -0
- biotite/structure/io/general.py +243 -0
- biotite/structure/io/gro/__init__.py +14 -0
- biotite/structure/io/gro/file.py +343 -0
- biotite/structure/io/mol/__init__.py +20 -0
- biotite/structure/io/mol/convert.py +112 -0
- biotite/structure/io/mol/ctab.py +420 -0
- biotite/structure/io/mol/header.py +120 -0
- biotite/structure/io/mol/mol.py +149 -0
- biotite/structure/io/mol/sdf.py +940 -0
- biotite/structure/io/netcdf/__init__.py +13 -0
- biotite/structure/io/netcdf/file.py +64 -0
- biotite/structure/io/pdb/__init__.py +20 -0
- biotite/structure/io/pdb/convert.py +389 -0
- biotite/structure/io/pdb/file.py +1380 -0
- biotite/structure/io/pdb/hybrid36.cp314-win_amd64.pyd +0 -0
- biotite/structure/io/pdb/hybrid36.pyx +242 -0
- biotite/structure/io/pdbqt/__init__.py +15 -0
- biotite/structure/io/pdbqt/convert.py +113 -0
- biotite/structure/io/pdbqt/file.py +688 -0
- biotite/structure/io/pdbx/__init__.py +23 -0
- biotite/structure/io/pdbx/bcif.py +674 -0
- biotite/structure/io/pdbx/cif.py +1091 -0
- biotite/structure/io/pdbx/component.py +251 -0
- biotite/structure/io/pdbx/compress.py +362 -0
- biotite/structure/io/pdbx/convert.py +2122 -0
- biotite/structure/io/pdbx/encoding.cp314-win_amd64.pyd +0 -0
- biotite/structure/io/pdbx/encoding.pyx +1078 -0
- biotite/structure/io/trajfile.py +696 -0
- biotite/structure/io/trr/__init__.py +13 -0
- biotite/structure/io/trr/file.py +43 -0
- biotite/structure/io/util.py +38 -0
- biotite/structure/io/xtc/__init__.py +13 -0
- biotite/structure/io/xtc/file.py +43 -0
- biotite/structure/mechanics.py +72 -0
- biotite/structure/molecules.py +337 -0
- biotite/structure/pseudoknots.py +622 -0
- biotite/structure/rdf.py +245 -0
- biotite/structure/repair.py +302 -0
- biotite/structure/residues.py +716 -0
- biotite/structure/rings.py +452 -0
- biotite/structure/sasa.cp314-win_amd64.pyd +0 -0
- biotite/structure/sasa.pyx +322 -0
- biotite/structure/segments.py +328 -0
- biotite/structure/sequence.py +110 -0
- biotite/structure/spacegroups.json +1567 -0
- biotite/structure/spacegroups.license +26 -0
- biotite/structure/sse.py +306 -0
- biotite/structure/superimpose.py +511 -0
- biotite/structure/tm.py +581 -0
- biotite/structure/transform.py +736 -0
- biotite/structure/util.py +160 -0
- biotite/version.py +34 -0
- biotite/visualize.py +375 -0
- biotite-1.6.0.dist-info/METADATA +162 -0
- biotite-1.6.0.dist-info/RECORD +354 -0
- biotite-1.6.0.dist-info/WHEEL +4 -0
- biotite-1.6.0.dist-info/licenses/LICENSE.rst +30 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# This source code is part of the Biotite package and is distributed
|
|
2
|
+
# under the 3-Clause BSD License. Please see 'LICENSE.rst' for further
|
|
3
|
+
# information.
|
|
4
|
+
|
|
5
|
+
"""
|
|
6
|
+
This module provides utility for handling data on chain level, rather than
|
|
7
|
+
atom level.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
__name__ = "biotite.structure"
|
|
11
|
+
__author__ = "Patrick Kunzmann"
|
|
12
|
+
__all__ = [
|
|
13
|
+
"get_chain_starts",
|
|
14
|
+
"apply_chain_wise",
|
|
15
|
+
"spread_chain_wise",
|
|
16
|
+
"get_chain_masks",
|
|
17
|
+
"get_chain_starts_for",
|
|
18
|
+
"get_chain_positions",
|
|
19
|
+
"get_all_chain_positions",
|
|
20
|
+
"chain_iter",
|
|
21
|
+
"get_chains",
|
|
22
|
+
"get_chain_count",
|
|
23
|
+
"chain_iter",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
from biotite.structure.segments import (
|
|
27
|
+
apply_segment_wise,
|
|
28
|
+
get_all_segment_positions,
|
|
29
|
+
get_segment_masks,
|
|
30
|
+
get_segment_positions,
|
|
31
|
+
get_segment_starts,
|
|
32
|
+
get_segment_starts_for,
|
|
33
|
+
segment_iter,
|
|
34
|
+
spread_segment_wise,
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def get_chain_starts(array, add_exclusive_stop=False, extra_categories=()):
|
|
39
|
+
"""
|
|
40
|
+
Get the indices in an atom array, which indicates the beginning of
|
|
41
|
+
a new chain.
|
|
42
|
+
|
|
43
|
+
A new chain starts, when the chain or sym ID changes or when the residue ID
|
|
44
|
+
decreases.
|
|
45
|
+
|
|
46
|
+
Parameters
|
|
47
|
+
----------
|
|
48
|
+
array : AtomArray or AtomArrayStack
|
|
49
|
+
The atom array (stack) to get the chain starts from.
|
|
50
|
+
add_exclusive_stop : bool, optional
|
|
51
|
+
If true, the exclusive stop of the input atom array, i.e.
|
|
52
|
+
``array.array_length()``, is added to the returned array of
|
|
53
|
+
start indices as last element.
|
|
54
|
+
extra_categories : tuple of str, optional
|
|
55
|
+
Additional annotation categories that induce the start of a new chain,
|
|
56
|
+
when their value change from one atom to the next.
|
|
57
|
+
|
|
58
|
+
Returns
|
|
59
|
+
-------
|
|
60
|
+
starts : ndarray, dtype=int
|
|
61
|
+
The start indices of new chains in `array`.
|
|
62
|
+
|
|
63
|
+
Notes
|
|
64
|
+
-----
|
|
65
|
+
This method is internally used by all other chain-related
|
|
66
|
+
functions.
|
|
67
|
+
"""
|
|
68
|
+
categories = ["chain_id"] + list(extra_categories)
|
|
69
|
+
if "sym_id" in array.get_annotation_categories():
|
|
70
|
+
categories.append("sym_id")
|
|
71
|
+
return get_segment_starts(
|
|
72
|
+
array,
|
|
73
|
+
add_exclusive_stop,
|
|
74
|
+
continuous_categories=("res_id",),
|
|
75
|
+
equal_categories=categories,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def apply_chain_wise(array, data, function, axis=None):
|
|
80
|
+
"""
|
|
81
|
+
Apply a function to intervals of data, where each interval
|
|
82
|
+
corresponds to one chain.
|
|
83
|
+
|
|
84
|
+
The function takes an atom array (stack) and an data array
|
|
85
|
+
(`ndarray`) of the same length. The function iterates through the
|
|
86
|
+
chain IDs of the atom array (stack) and identifies intervals of
|
|
87
|
+
the same ID. Then the data is
|
|
88
|
+
partitioned into the same intervals, and each interval (also an
|
|
89
|
+
:class:`ndarray`) is put as parameter into `function`. Each return value is
|
|
90
|
+
stored as element in the resulting :class:`ndarray`, therefore each element
|
|
91
|
+
corresponds to one chain.
|
|
92
|
+
|
|
93
|
+
Parameters
|
|
94
|
+
----------
|
|
95
|
+
array : AtomArray or AtomArrayStack
|
|
96
|
+
The atom array (stack) to determine the chains from.
|
|
97
|
+
data : ndarray
|
|
98
|
+
The data, whose intervals are the parameter for `function`. Must
|
|
99
|
+
have same length as `array`.
|
|
100
|
+
function : function
|
|
101
|
+
The `function` must have either the form *f(data)* or
|
|
102
|
+
*f(data, axis)* in case `axis` is given. Every `function` call
|
|
103
|
+
must return a value with the same shape and data type.
|
|
104
|
+
axis : int, optional
|
|
105
|
+
This value is given to the `axis` parameter of `function`.
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
processed_data : ndarray
|
|
110
|
+
Chain-wise evaluation of `data` by `function`. The size of the
|
|
111
|
+
first dimension of this array is equal to the amount of
|
|
112
|
+
chains.
|
|
113
|
+
"""
|
|
114
|
+
starts = get_chain_starts(array, add_exclusive_stop=True)
|
|
115
|
+
return apply_segment_wise(starts, data, function, axis)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def spread_chain_wise(array, input_data):
|
|
119
|
+
"""
|
|
120
|
+
Expand chain-wise data to atom-wise data.
|
|
121
|
+
|
|
122
|
+
Each value in the chain-wise input is assigned to all atoms of
|
|
123
|
+
this chain:
|
|
124
|
+
|
|
125
|
+
``output_data[i] = input_data[j]``,
|
|
126
|
+
*i* is incremented from atom to atom,
|
|
127
|
+
*j* is incremented every chain change.
|
|
128
|
+
|
|
129
|
+
Parameters
|
|
130
|
+
----------
|
|
131
|
+
array : AtomArray or AtomArrayStack
|
|
132
|
+
The atom array (stack) to determine the chains from.
|
|
133
|
+
input_data : ndarray
|
|
134
|
+
The data to be spread. The length of axis=0 must be equal to
|
|
135
|
+
the amount of different chain IDs in `array`.
|
|
136
|
+
|
|
137
|
+
Returns
|
|
138
|
+
-------
|
|
139
|
+
output_data : ndarray
|
|
140
|
+
Chain-wise spread `input_data`. Length is the same as
|
|
141
|
+
`array_length()` of `array`.
|
|
142
|
+
"""
|
|
143
|
+
starts = get_chain_starts(array, add_exclusive_stop=True)
|
|
144
|
+
return spread_segment_wise(starts, input_data)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def get_chain_masks(array, indices):
|
|
148
|
+
"""
|
|
149
|
+
Get boolean masks indicating the chains to which the given atom
|
|
150
|
+
indices belong.
|
|
151
|
+
|
|
152
|
+
Parameters
|
|
153
|
+
----------
|
|
154
|
+
array : AtomArray, shape=(n,) or AtomArrayStack, shape=(m,n)
|
|
155
|
+
The atom array (stack) to determine the chains from.
|
|
156
|
+
indices : ndarray, dtype=int, shape=(k,)
|
|
157
|
+
These indices indicate the atoms to get the corresponding
|
|
158
|
+
chains for.
|
|
159
|
+
Negative indices are not allowed.
|
|
160
|
+
|
|
161
|
+
Returns
|
|
162
|
+
-------
|
|
163
|
+
chains_masks : ndarray, dtype=bool, shape=(k,n)
|
|
164
|
+
Multiple boolean masks, one for each given index in `indices`.
|
|
165
|
+
Each array masks the atoms that belong to the same chain as
|
|
166
|
+
the atom at the given index.
|
|
167
|
+
"""
|
|
168
|
+
starts = get_chain_starts(array, add_exclusive_stop=True)
|
|
169
|
+
return get_segment_masks(starts, indices)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def get_chain_starts_for(array, indices):
|
|
173
|
+
"""
|
|
174
|
+
For each given atom index, get the index that points to the
|
|
175
|
+
start of the chain that atom belongs to.
|
|
176
|
+
|
|
177
|
+
Parameters
|
|
178
|
+
----------
|
|
179
|
+
array : AtomArray or AtomArrayStack
|
|
180
|
+
The atom array (stack) to determine the chains from.
|
|
181
|
+
indices : ndarray, dtype=int, shape=(k,)
|
|
182
|
+
These indices point to the atoms to get the corresponding
|
|
183
|
+
chain starts for.
|
|
184
|
+
Negative indices are not allowed.
|
|
185
|
+
|
|
186
|
+
Returns
|
|
187
|
+
-------
|
|
188
|
+
start_indices : ndarray, dtype=int, shape=(k,)
|
|
189
|
+
The indices that point to the chain starts for the input
|
|
190
|
+
`indices`.
|
|
191
|
+
"""
|
|
192
|
+
starts = get_chain_starts(array, add_exclusive_stop=True)
|
|
193
|
+
return get_segment_starts_for(starts, indices)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def get_chain_positions(array, indices):
|
|
197
|
+
"""
|
|
198
|
+
For each given atom index, obtain the position of the chain
|
|
199
|
+
corresponding to this index in the input `array`.
|
|
200
|
+
|
|
201
|
+
For example, the position of the first chain in the atom array is
|
|
202
|
+
``0``, the the position of the second chain is ``1``, etc.
|
|
203
|
+
|
|
204
|
+
Parameters
|
|
205
|
+
----------
|
|
206
|
+
array : AtomArray or AtomArrayStack
|
|
207
|
+
The atom array (stack) to determine the chains from.
|
|
208
|
+
indices : ndarray, dtype=int, shape=(k,)
|
|
209
|
+
These indices point to the atoms to get the corresponding
|
|
210
|
+
chain positions for.
|
|
211
|
+
Negative indices are not allowed.
|
|
212
|
+
|
|
213
|
+
Returns
|
|
214
|
+
-------
|
|
215
|
+
start_indices : ndarray, dtype=int, shape=(k,)
|
|
216
|
+
The indices that point to the position of the chains.
|
|
217
|
+
|
|
218
|
+
See Also
|
|
219
|
+
--------
|
|
220
|
+
get_all_chain_positions :
|
|
221
|
+
Similar to this function, but for all atoms in the :class:`struc.AtomArray`.
|
|
222
|
+
"""
|
|
223
|
+
starts = get_chain_starts(array, add_exclusive_stop=True)
|
|
224
|
+
return get_segment_positions(starts, indices)
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
def get_all_chain_positions(array):
|
|
228
|
+
"""
|
|
229
|
+
For each atom, obtain the position of the chain
|
|
230
|
+
corresponding to this atom in the input `array`.
|
|
231
|
+
|
|
232
|
+
For example, the position of the first chain in the atom array is
|
|
233
|
+
``0``, the the position of the second chain is ``1``, etc.
|
|
234
|
+
|
|
235
|
+
Parameters
|
|
236
|
+
----------
|
|
237
|
+
array : AtomArray or AtomArrayStack
|
|
238
|
+
The atom array (stack) to determine the chains from.
|
|
239
|
+
|
|
240
|
+
Returns
|
|
241
|
+
-------
|
|
242
|
+
chain_indices : ndarray, dtype=int, shape=(k,)
|
|
243
|
+
The indices that point to the position of the chains.
|
|
244
|
+
|
|
245
|
+
See Also
|
|
246
|
+
--------
|
|
247
|
+
get_chain_positions :
|
|
248
|
+
Similar to this function, but for a given subset of atom indices.
|
|
249
|
+
"""
|
|
250
|
+
starts = get_chain_starts(array, add_exclusive_stop=True)
|
|
251
|
+
return get_all_segment_positions(starts, array.array_length())
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def get_chains(array):
|
|
255
|
+
"""
|
|
256
|
+
Get the chain IDs of an atom array (stack).
|
|
257
|
+
|
|
258
|
+
The chains are listed in the same order they occur in the array
|
|
259
|
+
(stack).
|
|
260
|
+
|
|
261
|
+
Parameters
|
|
262
|
+
----------
|
|
263
|
+
array : AtomArray or AtomArrayStack
|
|
264
|
+
The atom array (stack), where the chains are determined.
|
|
265
|
+
|
|
266
|
+
Returns
|
|
267
|
+
-------
|
|
268
|
+
ids : ndarray, dtype=str
|
|
269
|
+
List of chain IDs.
|
|
270
|
+
"""
|
|
271
|
+
return array.chain_id[get_chain_starts(array)]
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
def get_chain_count(array):
|
|
275
|
+
"""
|
|
276
|
+
Get the amount of chains in an atom array (stack).
|
|
277
|
+
|
|
278
|
+
The count is determined from the `chain_id` annotation.
|
|
279
|
+
Each time the chain ID changes, the count is incremented.
|
|
280
|
+
|
|
281
|
+
Parameters
|
|
282
|
+
----------
|
|
283
|
+
array : AtomArray or AtomArrayStack
|
|
284
|
+
The atom array (stack), where the chains are counted.
|
|
285
|
+
|
|
286
|
+
Returns
|
|
287
|
+
-------
|
|
288
|
+
count : int
|
|
289
|
+
Amount of chains.
|
|
290
|
+
"""
|
|
291
|
+
return len(get_chain_starts(array))
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
def chain_iter(array):
|
|
295
|
+
"""
|
|
296
|
+
Iterate over all chains in an atom array (stack).
|
|
297
|
+
|
|
298
|
+
Parameters
|
|
299
|
+
----------
|
|
300
|
+
array : AtomArray or AtomArrayStack
|
|
301
|
+
The atom array (stack) to iterate over.
|
|
302
|
+
|
|
303
|
+
Yields
|
|
304
|
+
------
|
|
305
|
+
chain : AtomArray or AtomArrayStack
|
|
306
|
+
A single chain of the input `array`.
|
|
307
|
+
"""
|
|
308
|
+
starts = get_chain_starts(array, add_exclusive_stop=True)
|
|
309
|
+
for chain in segment_iter(array, starts):
|
|
310
|
+
yield chain
|
|
Binary file
|