biotite 1.1.0__cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.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.

Potentially problematic release.


This version of biotite might be problematic. Click here for more details.

Files changed (332) hide show
  1. biotite/__init__.py +18 -0
  2. biotite/application/__init__.py +69 -0
  3. biotite/application/application.py +276 -0
  4. biotite/application/autodock/__init__.py +12 -0
  5. biotite/application/autodock/app.py +500 -0
  6. biotite/application/blast/__init__.py +14 -0
  7. biotite/application/blast/alignment.py +92 -0
  8. biotite/application/blast/webapp.py +428 -0
  9. biotite/application/clustalo/__init__.py +12 -0
  10. biotite/application/clustalo/app.py +223 -0
  11. biotite/application/dssp/__init__.py +12 -0
  12. biotite/application/dssp/app.py +159 -0
  13. biotite/application/localapp.py +342 -0
  14. biotite/application/mafft/__init__.py +12 -0
  15. biotite/application/mafft/app.py +116 -0
  16. biotite/application/msaapp.py +363 -0
  17. biotite/application/muscle/__init__.py +13 -0
  18. biotite/application/muscle/app3.py +227 -0
  19. biotite/application/muscle/app5.py +163 -0
  20. biotite/application/sra/__init__.py +18 -0
  21. biotite/application/sra/app.py +452 -0
  22. biotite/application/tantan/__init__.py +12 -0
  23. biotite/application/tantan/app.py +199 -0
  24. biotite/application/util.py +57 -0
  25. biotite/application/viennarna/__init__.py +18 -0
  26. biotite/application/viennarna/rnaalifold.py +310 -0
  27. biotite/application/viennarna/rnafold.py +254 -0
  28. biotite/application/viennarna/rnaplot.py +206 -0
  29. biotite/application/viennarna/util.py +77 -0
  30. biotite/application/webapp.py +76 -0
  31. biotite/copyable.py +71 -0
  32. biotite/database/__init__.py +23 -0
  33. biotite/database/entrez/__init__.py +15 -0
  34. biotite/database/entrez/check.py +60 -0
  35. biotite/database/entrez/dbnames.py +91 -0
  36. biotite/database/entrez/download.py +229 -0
  37. biotite/database/entrez/key.py +44 -0
  38. biotite/database/entrez/query.py +262 -0
  39. biotite/database/error.py +16 -0
  40. biotite/database/pubchem/__init__.py +21 -0
  41. biotite/database/pubchem/download.py +258 -0
  42. biotite/database/pubchem/error.py +20 -0
  43. biotite/database/pubchem/query.py +830 -0
  44. biotite/database/pubchem/throttle.py +98 -0
  45. biotite/database/rcsb/__init__.py +13 -0
  46. biotite/database/rcsb/download.py +159 -0
  47. biotite/database/rcsb/query.py +964 -0
  48. biotite/database/uniprot/__init__.py +13 -0
  49. biotite/database/uniprot/check.py +40 -0
  50. biotite/database/uniprot/download.py +129 -0
  51. biotite/database/uniprot/query.py +293 -0
  52. biotite/file.py +232 -0
  53. biotite/sequence/__init__.py +84 -0
  54. biotite/sequence/align/__init__.py +203 -0
  55. biotite/sequence/align/alignment.py +680 -0
  56. biotite/sequence/align/banded.cpython-313-x86_64-linux-gnu.so +0 -0
  57. biotite/sequence/align/banded.pyx +652 -0
  58. biotite/sequence/align/buckets.py +71 -0
  59. biotite/sequence/align/cigar.py +425 -0
  60. biotite/sequence/align/kmeralphabet.cpython-313-x86_64-linux-gnu.so +0 -0
  61. biotite/sequence/align/kmeralphabet.pyx +595 -0
  62. biotite/sequence/align/kmersimilarity.cpython-313-x86_64-linux-gnu.so +0 -0
  63. biotite/sequence/align/kmersimilarity.pyx +233 -0
  64. biotite/sequence/align/kmertable.cpython-313-x86_64-linux-gnu.so +0 -0
  65. biotite/sequence/align/kmertable.pyx +3411 -0
  66. biotite/sequence/align/localgapped.cpython-313-x86_64-linux-gnu.so +0 -0
  67. biotite/sequence/align/localgapped.pyx +892 -0
  68. biotite/sequence/align/localungapped.cpython-313-x86_64-linux-gnu.so +0 -0
  69. biotite/sequence/align/localungapped.pyx +279 -0
  70. biotite/sequence/align/matrix.py +622 -0
  71. biotite/sequence/align/matrix_data/3Di.mat +24 -0
  72. biotite/sequence/align/matrix_data/BLOSUM100.mat +31 -0
  73. biotite/sequence/align/matrix_data/BLOSUM30.mat +31 -0
  74. biotite/sequence/align/matrix_data/BLOSUM35.mat +31 -0
  75. biotite/sequence/align/matrix_data/BLOSUM40.mat +31 -0
  76. biotite/sequence/align/matrix_data/BLOSUM45.mat +31 -0
  77. biotite/sequence/align/matrix_data/BLOSUM50.mat +31 -0
  78. biotite/sequence/align/matrix_data/BLOSUM50_13p.mat +25 -0
  79. biotite/sequence/align/matrix_data/BLOSUM50_14.3.mat +25 -0
  80. biotite/sequence/align/matrix_data/BLOSUM50_5.0.mat +25 -0
  81. biotite/sequence/align/matrix_data/BLOSUM55.mat +31 -0
  82. biotite/sequence/align/matrix_data/BLOSUM60.mat +31 -0
  83. biotite/sequence/align/matrix_data/BLOSUM62.mat +31 -0
  84. biotite/sequence/align/matrix_data/BLOSUM62_13p.mat +25 -0
  85. biotite/sequence/align/matrix_data/BLOSUM62_14.3.mat +25 -0
  86. biotite/sequence/align/matrix_data/BLOSUM62_5.0.mat +25 -0
  87. biotite/sequence/align/matrix_data/BLOSUM65.mat +31 -0
  88. biotite/sequence/align/matrix_data/BLOSUM70.mat +31 -0
  89. biotite/sequence/align/matrix_data/BLOSUM75.mat +31 -0
  90. biotite/sequence/align/matrix_data/BLOSUM80.mat +31 -0
  91. biotite/sequence/align/matrix_data/BLOSUM85.mat +31 -0
  92. biotite/sequence/align/matrix_data/BLOSUM90.mat +31 -0
  93. biotite/sequence/align/matrix_data/BLOSUMN.mat +31 -0
  94. biotite/sequence/align/matrix_data/CorBLOSUM49_5.0.mat +25 -0
  95. biotite/sequence/align/matrix_data/CorBLOSUM57_13p.mat +25 -0
  96. biotite/sequence/align/matrix_data/CorBLOSUM57_14.3.mat +25 -0
  97. biotite/sequence/align/matrix_data/CorBLOSUM61_5.0.mat +25 -0
  98. biotite/sequence/align/matrix_data/CorBLOSUM66_13p.mat +25 -0
  99. biotite/sequence/align/matrix_data/CorBLOSUM67_14.3.mat +25 -0
  100. biotite/sequence/align/matrix_data/DAYHOFF.mat +32 -0
  101. biotite/sequence/align/matrix_data/GONNET.mat +26 -0
  102. biotite/sequence/align/matrix_data/IDENTITY.mat +25 -0
  103. biotite/sequence/align/matrix_data/MATCH.mat +25 -0
  104. biotite/sequence/align/matrix_data/NUC.mat +25 -0
  105. biotite/sequence/align/matrix_data/PAM10.mat +34 -0
  106. biotite/sequence/align/matrix_data/PAM100.mat +34 -0
  107. biotite/sequence/align/matrix_data/PAM110.mat +34 -0
  108. biotite/sequence/align/matrix_data/PAM120.mat +34 -0
  109. biotite/sequence/align/matrix_data/PAM130.mat +34 -0
  110. biotite/sequence/align/matrix_data/PAM140.mat +34 -0
  111. biotite/sequence/align/matrix_data/PAM150.mat +34 -0
  112. biotite/sequence/align/matrix_data/PAM160.mat +34 -0
  113. biotite/sequence/align/matrix_data/PAM170.mat +34 -0
  114. biotite/sequence/align/matrix_data/PAM180.mat +34 -0
  115. biotite/sequence/align/matrix_data/PAM190.mat +34 -0
  116. biotite/sequence/align/matrix_data/PAM20.mat +34 -0
  117. biotite/sequence/align/matrix_data/PAM200.mat +34 -0
  118. biotite/sequence/align/matrix_data/PAM210.mat +34 -0
  119. biotite/sequence/align/matrix_data/PAM220.mat +34 -0
  120. biotite/sequence/align/matrix_data/PAM230.mat +34 -0
  121. biotite/sequence/align/matrix_data/PAM240.mat +34 -0
  122. biotite/sequence/align/matrix_data/PAM250.mat +34 -0
  123. biotite/sequence/align/matrix_data/PAM260.mat +34 -0
  124. biotite/sequence/align/matrix_data/PAM270.mat +34 -0
  125. biotite/sequence/align/matrix_data/PAM280.mat +34 -0
  126. biotite/sequence/align/matrix_data/PAM290.mat +34 -0
  127. biotite/sequence/align/matrix_data/PAM30.mat +34 -0
  128. biotite/sequence/align/matrix_data/PAM300.mat +34 -0
  129. biotite/sequence/align/matrix_data/PAM310.mat +34 -0
  130. biotite/sequence/align/matrix_data/PAM320.mat +34 -0
  131. biotite/sequence/align/matrix_data/PAM330.mat +34 -0
  132. biotite/sequence/align/matrix_data/PAM340.mat +34 -0
  133. biotite/sequence/align/matrix_data/PAM350.mat +34 -0
  134. biotite/sequence/align/matrix_data/PAM360.mat +34 -0
  135. biotite/sequence/align/matrix_data/PAM370.mat +34 -0
  136. biotite/sequence/align/matrix_data/PAM380.mat +34 -0
  137. biotite/sequence/align/matrix_data/PAM390.mat +34 -0
  138. biotite/sequence/align/matrix_data/PAM40.mat +34 -0
  139. biotite/sequence/align/matrix_data/PAM400.mat +34 -0
  140. biotite/sequence/align/matrix_data/PAM410.mat +34 -0
  141. biotite/sequence/align/matrix_data/PAM420.mat +34 -0
  142. biotite/sequence/align/matrix_data/PAM430.mat +34 -0
  143. biotite/sequence/align/matrix_data/PAM440.mat +34 -0
  144. biotite/sequence/align/matrix_data/PAM450.mat +34 -0
  145. biotite/sequence/align/matrix_data/PAM460.mat +34 -0
  146. biotite/sequence/align/matrix_data/PAM470.mat +34 -0
  147. biotite/sequence/align/matrix_data/PAM480.mat +34 -0
  148. biotite/sequence/align/matrix_data/PAM490.mat +34 -0
  149. biotite/sequence/align/matrix_data/PAM50.mat +34 -0
  150. biotite/sequence/align/matrix_data/PAM500.mat +34 -0
  151. biotite/sequence/align/matrix_data/PAM60.mat +34 -0
  152. biotite/sequence/align/matrix_data/PAM70.mat +34 -0
  153. biotite/sequence/align/matrix_data/PAM80.mat +34 -0
  154. biotite/sequence/align/matrix_data/PAM90.mat +34 -0
  155. biotite/sequence/align/matrix_data/PB.license +21 -0
  156. biotite/sequence/align/matrix_data/PB.mat +18 -0
  157. biotite/sequence/align/matrix_data/RBLOSUM52_5.0.mat +25 -0
  158. biotite/sequence/align/matrix_data/RBLOSUM59_13p.mat +25 -0
  159. biotite/sequence/align/matrix_data/RBLOSUM59_14.3.mat +25 -0
  160. biotite/sequence/align/matrix_data/RBLOSUM64_5.0.mat +25 -0
  161. biotite/sequence/align/matrix_data/RBLOSUM69_13p.mat +25 -0
  162. biotite/sequence/align/matrix_data/RBLOSUM69_14.3.mat +25 -0
  163. biotite/sequence/align/multiple.cpython-313-x86_64-linux-gnu.so +0 -0
  164. biotite/sequence/align/multiple.pyx +620 -0
  165. biotite/sequence/align/pairwise.cpython-313-x86_64-linux-gnu.so +0 -0
  166. biotite/sequence/align/pairwise.pyx +587 -0
  167. biotite/sequence/align/permutation.cpython-313-x86_64-linux-gnu.so +0 -0
  168. biotite/sequence/align/permutation.pyx +313 -0
  169. biotite/sequence/align/primes.txt +821 -0
  170. biotite/sequence/align/selector.cpython-313-x86_64-linux-gnu.so +0 -0
  171. biotite/sequence/align/selector.pyx +954 -0
  172. biotite/sequence/align/statistics.py +264 -0
  173. biotite/sequence/align/tracetable.cpython-313-x86_64-linux-gnu.so +0 -0
  174. biotite/sequence/align/tracetable.pxd +64 -0
  175. biotite/sequence/align/tracetable.pyx +370 -0
  176. biotite/sequence/alphabet.py +555 -0
  177. biotite/sequence/annotation.py +830 -0
  178. biotite/sequence/codec.cpython-313-x86_64-linux-gnu.so +0 -0
  179. biotite/sequence/codec.pyx +155 -0
  180. biotite/sequence/codon.py +477 -0
  181. biotite/sequence/codon_tables.txt +202 -0
  182. biotite/sequence/graphics/__init__.py +33 -0
  183. biotite/sequence/graphics/alignment.py +1115 -0
  184. biotite/sequence/graphics/color_schemes/3di_flower.json +48 -0
  185. biotite/sequence/graphics/color_schemes/autumn.json +51 -0
  186. biotite/sequence/graphics/color_schemes/blossom.json +51 -0
  187. biotite/sequence/graphics/color_schemes/clustalx_dna.json +11 -0
  188. biotite/sequence/graphics/color_schemes/clustalx_protein.json +28 -0
  189. biotite/sequence/graphics/color_schemes/flower.json +51 -0
  190. biotite/sequence/graphics/color_schemes/jalview_buried.json +31 -0
  191. biotite/sequence/graphics/color_schemes/jalview_hydrophobicity.json +31 -0
  192. biotite/sequence/graphics/color_schemes/jalview_prop_helix.json +31 -0
  193. biotite/sequence/graphics/color_schemes/jalview_prop_strand.json +31 -0
  194. biotite/sequence/graphics/color_schemes/jalview_prop_turn.json +31 -0
  195. biotite/sequence/graphics/color_schemes/jalview_taylor.json +28 -0
  196. biotite/sequence/graphics/color_schemes/jalview_zappo.json +28 -0
  197. biotite/sequence/graphics/color_schemes/ocean.json +51 -0
  198. biotite/sequence/graphics/color_schemes/pb_flower.json +40 -0
  199. biotite/sequence/graphics/color_schemes/rainbow_dna.json +11 -0
  200. biotite/sequence/graphics/color_schemes/rainbow_protein.json +30 -0
  201. biotite/sequence/graphics/color_schemes/spring.json +51 -0
  202. biotite/sequence/graphics/color_schemes/sunset.json +51 -0
  203. biotite/sequence/graphics/color_schemes/wither.json +51 -0
  204. biotite/sequence/graphics/colorschemes.py +170 -0
  205. biotite/sequence/graphics/dendrogram.py +229 -0
  206. biotite/sequence/graphics/features.py +544 -0
  207. biotite/sequence/graphics/logo.py +104 -0
  208. biotite/sequence/graphics/plasmid.py +712 -0
  209. biotite/sequence/io/__init__.py +12 -0
  210. biotite/sequence/io/fasta/__init__.py +22 -0
  211. biotite/sequence/io/fasta/convert.py +284 -0
  212. biotite/sequence/io/fasta/file.py +265 -0
  213. biotite/sequence/io/fastq/__init__.py +19 -0
  214. biotite/sequence/io/fastq/convert.py +117 -0
  215. biotite/sequence/io/fastq/file.py +507 -0
  216. biotite/sequence/io/genbank/__init__.py +17 -0
  217. biotite/sequence/io/genbank/annotation.py +269 -0
  218. biotite/sequence/io/genbank/file.py +573 -0
  219. biotite/sequence/io/genbank/metadata.py +336 -0
  220. biotite/sequence/io/genbank/sequence.py +171 -0
  221. biotite/sequence/io/general.py +201 -0
  222. biotite/sequence/io/gff/__init__.py +26 -0
  223. biotite/sequence/io/gff/convert.py +128 -0
  224. biotite/sequence/io/gff/file.py +450 -0
  225. biotite/sequence/phylo/__init__.py +36 -0
  226. biotite/sequence/phylo/nj.cpython-313-x86_64-linux-gnu.so +0 -0
  227. biotite/sequence/phylo/nj.pyx +221 -0
  228. biotite/sequence/phylo/tree.cpython-313-x86_64-linux-gnu.so +0 -0
  229. biotite/sequence/phylo/tree.pyx +1169 -0
  230. biotite/sequence/phylo/upgma.cpython-313-x86_64-linux-gnu.so +0 -0
  231. biotite/sequence/phylo/upgma.pyx +164 -0
  232. biotite/sequence/profile.py +567 -0
  233. biotite/sequence/search.py +118 -0
  234. biotite/sequence/seqtypes.py +713 -0
  235. biotite/sequence/sequence.py +374 -0
  236. biotite/setup_ccd.py +197 -0
  237. biotite/structure/__init__.py +133 -0
  238. biotite/structure/alphabet/__init__.py +25 -0
  239. biotite/structure/alphabet/encoder.py +332 -0
  240. biotite/structure/alphabet/encoder_weights_3di.kerasify +0 -0
  241. biotite/structure/alphabet/i3d.py +110 -0
  242. biotite/structure/alphabet/layers.py +86 -0
  243. biotite/structure/alphabet/pb.license +21 -0
  244. biotite/structure/alphabet/pb.py +171 -0
  245. biotite/structure/alphabet/unkerasify.py +122 -0
  246. biotite/structure/atoms.py +1554 -0
  247. biotite/structure/basepairs.py +1404 -0
  248. biotite/structure/bonds.cpython-313-x86_64-linux-gnu.so +0 -0
  249. biotite/structure/bonds.pyx +1972 -0
  250. biotite/structure/box.py +588 -0
  251. biotite/structure/celllist.cpython-313-x86_64-linux-gnu.so +0 -0
  252. biotite/structure/celllist.pyx +849 -0
  253. biotite/structure/chains.py +314 -0
  254. biotite/structure/charges.cpython-313-x86_64-linux-gnu.so +0 -0
  255. biotite/structure/charges.pyx +520 -0
  256. biotite/structure/compare.py +274 -0
  257. biotite/structure/density.py +109 -0
  258. biotite/structure/dotbracket.py +214 -0
  259. biotite/structure/error.py +39 -0
  260. biotite/structure/filter.py +590 -0
  261. biotite/structure/geometry.py +655 -0
  262. biotite/structure/graphics/__init__.py +13 -0
  263. biotite/structure/graphics/atoms.py +243 -0
  264. biotite/structure/graphics/rna.py +295 -0
  265. biotite/structure/hbond.py +428 -0
  266. biotite/structure/info/__init__.py +24 -0
  267. biotite/structure/info/atom_masses.json +121 -0
  268. biotite/structure/info/atoms.py +81 -0
  269. biotite/structure/info/bonds.py +149 -0
  270. biotite/structure/info/ccd.py +202 -0
  271. biotite/structure/info/components.bcif +0 -0
  272. biotite/structure/info/groups.py +131 -0
  273. biotite/structure/info/masses.py +121 -0
  274. biotite/structure/info/misc.py +138 -0
  275. biotite/structure/info/radii.py +197 -0
  276. biotite/structure/info/standardize.py +186 -0
  277. biotite/structure/integrity.py +215 -0
  278. biotite/structure/io/__init__.py +29 -0
  279. biotite/structure/io/dcd/__init__.py +13 -0
  280. biotite/structure/io/dcd/file.py +67 -0
  281. biotite/structure/io/general.py +243 -0
  282. biotite/structure/io/gro/__init__.py +14 -0
  283. biotite/structure/io/gro/file.py +344 -0
  284. biotite/structure/io/mol/__init__.py +20 -0
  285. biotite/structure/io/mol/convert.py +112 -0
  286. biotite/structure/io/mol/ctab.py +415 -0
  287. biotite/structure/io/mol/header.py +120 -0
  288. biotite/structure/io/mol/mol.py +149 -0
  289. biotite/structure/io/mol/sdf.py +914 -0
  290. biotite/structure/io/netcdf/__init__.py +13 -0
  291. biotite/structure/io/netcdf/file.py +64 -0
  292. biotite/structure/io/pdb/__init__.py +20 -0
  293. biotite/structure/io/pdb/convert.py +307 -0
  294. biotite/structure/io/pdb/file.py +1290 -0
  295. biotite/structure/io/pdb/hybrid36.cpython-313-x86_64-linux-gnu.so +0 -0
  296. biotite/structure/io/pdb/hybrid36.pyx +242 -0
  297. biotite/structure/io/pdbqt/__init__.py +15 -0
  298. biotite/structure/io/pdbqt/convert.py +113 -0
  299. biotite/structure/io/pdbqt/file.py +688 -0
  300. biotite/structure/io/pdbx/__init__.py +23 -0
  301. biotite/structure/io/pdbx/bcif.py +656 -0
  302. biotite/structure/io/pdbx/cif.py +1075 -0
  303. biotite/structure/io/pdbx/component.py +245 -0
  304. biotite/structure/io/pdbx/compress.py +321 -0
  305. biotite/structure/io/pdbx/convert.py +1745 -0
  306. biotite/structure/io/pdbx/encoding.cpython-313-x86_64-linux-gnu.so +0 -0
  307. biotite/structure/io/pdbx/encoding.pyx +1031 -0
  308. biotite/structure/io/trajfile.py +693 -0
  309. biotite/structure/io/trr/__init__.py +13 -0
  310. biotite/structure/io/trr/file.py +43 -0
  311. biotite/structure/io/xtc/__init__.py +13 -0
  312. biotite/structure/io/xtc/file.py +43 -0
  313. biotite/structure/mechanics.py +73 -0
  314. biotite/structure/molecules.py +352 -0
  315. biotite/structure/pseudoknots.py +628 -0
  316. biotite/structure/rdf.py +245 -0
  317. biotite/structure/repair.py +304 -0
  318. biotite/structure/residues.py +572 -0
  319. biotite/structure/sasa.cpython-313-x86_64-linux-gnu.so +0 -0
  320. biotite/structure/sasa.pyx +322 -0
  321. biotite/structure/segments.py +178 -0
  322. biotite/structure/sequence.py +111 -0
  323. biotite/structure/sse.py +308 -0
  324. biotite/structure/superimpose.py +689 -0
  325. biotite/structure/transform.py +530 -0
  326. biotite/structure/util.py +168 -0
  327. biotite/version.py +16 -0
  328. biotite/visualize.py +265 -0
  329. biotite-1.1.0.dist-info/METADATA +190 -0
  330. biotite-1.1.0.dist-info/RECORD +332 -0
  331. biotite-1.1.0.dist-info/WHEEL +6 -0
  332. biotite-1.1.0.dist-info/licenses/LICENSE.rst +30 -0
@@ -0,0 +1,13 @@
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 subpackage is used for reading and writing trajectories in the
7
+ *AMBER* NetCDF format.
8
+ """
9
+
10
+ __name__ = "biotite.structure.io.netcdf"
11
+ __author__ = "Patrick Kunzmann"
12
+
13
+ from .file import *
@@ -0,0 +1,64 @@
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
+ __name__ = "biotite.structure.io.netcdf"
6
+ __author__ = "Patrick Kunzmann"
7
+ __all__ = ["NetCDFFile"]
8
+
9
+ import biotraj
10
+ import numpy as np
11
+ from biotite.structure.box import unitcell_from_vectors, vectors_from_unitcell
12
+ from biotite.structure.io.trajfile import TrajectoryFile
13
+
14
+
15
+ class NetCDFFile(TrajectoryFile):
16
+ """
17
+ This file class represents a NetCDF trajectory file.
18
+ """
19
+
20
+ @classmethod
21
+ def traj_type(cls):
22
+ return biotraj.NetCDFTrajectoryFile
23
+
24
+ @classmethod
25
+ def process_read_values(cls, read_values):
26
+ # .dcd files use Angstrom
27
+ coord = read_values[0]
28
+ time = read_values[1]
29
+ cell_lengths = read_values[2]
30
+ cell_angles = read_values[3]
31
+ if cell_lengths is None or cell_angles is None:
32
+ box = None
33
+ else:
34
+ box = np.stack(
35
+ [
36
+ vectors_from_unitcell(a, b, c, alpha, beta, gamma)
37
+ for (a, b, c), (alpha, beta, gamma) in zip(
38
+ cell_lengths, np.deg2rad(cell_angles)
39
+ )
40
+ ],
41
+ axis=0,
42
+ )
43
+ return coord, box, time
44
+
45
+ @classmethod
46
+ def prepare_write_values(cls, coord, box, time):
47
+ coord = coord.astype(np.float32, copy=False) if coord is not None else None
48
+ time = time.astype(np.float32, copy=False) if time is not None else None
49
+ if box is None:
50
+ cell_lengths = None
51
+ cell_angles = None
52
+ else:
53
+ cell_lengths = np.zeros((len(box), 3), dtype=np.float32)
54
+ cell_angles = np.zeros((len(box), 3), dtype=np.float32)
55
+ for i, model_box in enumerate(box):
56
+ a, b, c, alpha, beta, gamma = unitcell_from_vectors(model_box)
57
+ cell_lengths[i] = np.array((a, b, c))
58
+ cell_angles[i] = np.rad2deg((alpha, beta, gamma))
59
+ return {
60
+ "coordinates": coord,
61
+ "time": time,
62
+ "cell_lengths": cell_lengths,
63
+ "cell_angles": cell_angles,
64
+ }
@@ -0,0 +1,20 @@
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 subpackage is used for reading and writing an :class:`AtomArray` or
7
+ :class:`AtomArrayStack` using the popular PDB format.
8
+ Since this format has some limitations, it will be completely replaced
9
+ someday by the modern PDBx format.
10
+ Therefore this subpackage should only be used, if usage of the
11
+ PDBx (CIF or BinaryCIF) format is not suitable (e.g. when interfacing
12
+ other software).
13
+ In all other cases, usage of the :mod:`pdbx` subpackage is encouraged.
14
+ """
15
+
16
+ __name__ = "biotite.structure.io.pdb"
17
+ __author__ = "Patrick Kunzmann"
18
+
19
+ from .convert import *
20
+ from .file import *
@@ -0,0 +1,307 @@
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
+ Some convenience functions for consistency with other ``structure.io``
7
+ subpackages.
8
+ """
9
+
10
+ __name__ = "biotite.structure.io.pdb"
11
+ __author__ = "Patrick Kunzmann"
12
+ __all__ = [
13
+ "get_model_count",
14
+ "get_structure",
15
+ "set_structure",
16
+ "list_assemblies",
17
+ "get_assembly",
18
+ "get_symmetry_mates",
19
+ ]
20
+
21
+
22
+ def get_model_count(pdb_file):
23
+ """
24
+ Get the number of models contained in a :class:`PDBFile`.
25
+
26
+ Parameters
27
+ ----------
28
+ pdb_file : PDBFile
29
+ The file object.
30
+
31
+ Returns
32
+ -------
33
+ model_count : int
34
+ The number of models.
35
+ """
36
+ return pdb_file.get_model_count()
37
+
38
+
39
+ def get_structure(
40
+ pdb_file, model=None, altloc="first", extra_fields=[], include_bonds=False
41
+ ):
42
+ """
43
+ Create an :class:`AtomArray` or :class:`AtomArrayStack` from a
44
+ :class:`PDBFile`.
45
+
46
+ This function is a thin wrapper around the :class:`PDBFile` method
47
+ :func:`get_structure()` for the sake of consistency with other
48
+ ``structure.io`` subpackages.
49
+
50
+ Parameters
51
+ ----------
52
+ pdb_file : PDBFile
53
+ The file object.
54
+ model : int, optional
55
+ If this parameter is given, the function will return an
56
+ :class:`AtomArray` from the atoms corresponding to the given
57
+ model number (starting at 1).
58
+ Negative values are used to index models starting from the last
59
+ model instead of the first model.
60
+ If this parameter is omitted, an :class:`AtomArrayStack`
61
+ containing all models will be returned, even if the structure
62
+ contains only one model.
63
+ altloc : {'first', 'occupancy', 'all'}
64
+ This parameter defines how *altloc* IDs are handled:
65
+ - ``'first'`` - Use atoms that have the first *altloc* ID
66
+ appearing in a residue.
67
+ - ``'occupancy'`` - Use atoms that have the *altloc* ID
68
+ with the highest occupancy for a residue.
69
+ - ``'all'`` - Use all atoms.
70
+ Note that this leads to duplicate atoms.
71
+ When this option is chosen, the ``altloc_id`` annotation
72
+ array is added to the returned structure.
73
+ extra_fields : list of str, optional
74
+ The strings in the list are optional annotation categories
75
+ that should be stored in the output array or stack.
76
+ These are valid values:
77
+ ``'atom_id'``, ``'b_factor'``, ``'occupancy'`` and ``'charge'``.
78
+ include_bonds : bool, optional
79
+ If set to true, a :class:`BondList` will be created for the
80
+ resulting :class:`AtomArray` containing the bond information
81
+ from the file.
82
+ Bonds, whose order could not be determined from the
83
+ *Chemical Component Dictionary*
84
+ (e.g. especially inter-residue bonds),
85
+ have :attr:`BondType.ANY`, since the PDB format itself does
86
+ not support bond orders.
87
+
88
+ Returns
89
+ -------
90
+ array : AtomArray or AtomArrayStack
91
+ The return type depends on the `model` parameter.
92
+
93
+ """
94
+ return pdb_file.get_structure(model, altloc, extra_fields, include_bonds)
95
+
96
+
97
+ def set_structure(pdb_file, array, hybrid36=False):
98
+ """
99
+ write an :class:`AtomArray` or :class:`AtomArrayStack` into a
100
+ :class:`PDBFile`.
101
+
102
+ This function is a thin wrapper around the :class:`PDBFile` method
103
+ :func:`set_structure()` for the sake of consistency with other
104
+ ``structure.io`` subpackages.
105
+
106
+ This will save the coordinates, the mandatory annotation categories
107
+ and the optional annotation categories
108
+ 'atom_id', 'b_factor', 'occupancy' and 'charge'.
109
+
110
+ Parameters
111
+ ----------
112
+ pdb_file : PDBFile
113
+ The file object.
114
+ array : AtomArray or AtomArrayStack
115
+ The structure to be written. If a stack is given, each array in
116
+ the stack will be in a separate model.
117
+ hybrid36: boolean, optional
118
+ Defines wether the file should be written in hybrid-36 format.
119
+
120
+ Notes
121
+ -----
122
+ If `array` has an associated :class:`BondList`, ``CONECT``
123
+ records are also written for all non-water hetero residues
124
+ and all inter-residue connections.
125
+ """
126
+ pdb_file.set_structure(array, hybrid36)
127
+
128
+
129
+ def list_assemblies(pdb_file):
130
+ """
131
+ List the biological assemblies that are available for the
132
+ structure in the given file.
133
+
134
+ This function receives the data from the ``REMARK 300`` records
135
+ in the file.
136
+ Consequently, this remark must be present in the file.
137
+
138
+ Parameters
139
+ ----------
140
+ pdb_file : PDBFile
141
+ The file object.
142
+
143
+ Returns
144
+ -------
145
+ assemblies : list of str
146
+ A list that contains the available assembly IDs.
147
+
148
+ Examples
149
+ --------
150
+ >>> import os.path
151
+ >>> file = PDBFile.read(os.path.join(path_to_structures, "1f2n.pdb"))
152
+ >>> print(list_assemblies(file))
153
+ ['1']
154
+ """
155
+ return pdb_file.list_assemblies()
156
+
157
+
158
+ def get_assembly(
159
+ pdb_file,
160
+ assembly_id=None,
161
+ model=None,
162
+ altloc="first",
163
+ extra_fields=[],
164
+ include_bonds=False,
165
+ ):
166
+ """
167
+ Build the given biological assembly.
168
+
169
+ This function receives the data from ``REMARK 350`` records in
170
+ the file.
171
+ Consequently, this remark must be present in the file.
172
+
173
+ Parameters
174
+ ----------
175
+ pdb_file : PDBFile
176
+ The file object.
177
+ assembly_id : str
178
+ The assembly to build.
179
+ Available assembly IDs can be obtained via
180
+ :func:`list_assemblies()`.
181
+ model : int, optional
182
+ If this parameter is given, the function will return an
183
+ :class:`AtomArray` from the atoms corresponding to the given
184
+ model number (starting at 1).
185
+ Negative values are used to index models starting from the
186
+ last model instead of the first model.
187
+ If this parameter is omitted, an :class:`AtomArrayStack`
188
+ containing all models will be returned, even if the
189
+ structure contains only one model.
190
+ altloc : {'first', 'occupancy', 'all'}
191
+ This parameter defines how *altloc* IDs are handled:
192
+ - ``'first'`` - Use atoms that have the first
193
+ *altloc* ID appearing in a residue.
194
+ - ``'occupancy'`` - Use atoms that have the *altloc* ID
195
+ with the highest occupancy for a residue.
196
+ - ``'all'`` - Use all atoms.
197
+ Note that this leads to duplicate atoms.
198
+ When this option is chosen, the ``altloc_id``
199
+ annotation array is added to the returned structure.
200
+ extra_fields : list of str, optional
201
+ The strings in the list are optional annotation categories
202
+ that should be stored in the output array or stack.
203
+ These are valid values:
204
+ ``'atom_id'``, ``'b_factor'``, ``'occupancy'`` and
205
+ ``'charge'``.
206
+ include_bonds : bool, optional
207
+ If set to true, a :class:`BondList` will be created for the
208
+ resulting :class:`AtomArray` containing the bond information
209
+ from the file.
210
+ Bonds, whose order could not be determined from the
211
+ *Chemical Component Dictionary*
212
+ (e.g. especially inter-residue bonds),
213
+ have :attr:`BondType.ANY`, since the PDB format itself does
214
+ not support bond orders.
215
+
216
+ Returns
217
+ -------
218
+ assembly : AtomArray or AtomArrayStack
219
+ The assembly.
220
+ The return type depends on the `model` parameter.
221
+ Contains the `sym_id` annotation, which enumerates the copies of the asymmetric
222
+ unit in the assembly.
223
+
224
+ Examples
225
+ --------
226
+
227
+ >>> import os.path
228
+ >>> file = PDBFile.read(os.path.join(path_to_structures, "1f2n.pdb"))
229
+ >>> assembly = get_assembly(file, model=1)
230
+ """
231
+ return pdb_file.get_assembly(
232
+ assembly_id, model, altloc, extra_fields, include_bonds
233
+ )
234
+
235
+
236
+ def get_symmetry_mates(
237
+ pdb_file, model=None, altloc="first", extra_fields=[], include_bonds=False
238
+ ):
239
+ """
240
+ Build a structure model containing all symmetric copies
241
+ of the structure within a single unit cell, given by the space
242
+ group.
243
+
244
+ This function receives the data from ``REMARK 290`` records in
245
+ the file.
246
+ Consequently, this remark must be present in the file, which is
247
+ usually only true for crystal structures.
248
+
249
+ Parameters
250
+ ----------
251
+ pdb_file : PDBFile
252
+ The file object.
253
+ model : int, optional
254
+ If this parameter is given, the function will return an
255
+ :class:`AtomArray` from the atoms corresponding to the given
256
+ model number (starting at 1).
257
+ Negative values are used to index models starting from the
258
+ last model instead of the first model.
259
+ If this parameter is omitted, an :class:`AtomArrayStack`
260
+ containing all models will be returned, even if the
261
+ structure contains only one model.
262
+ altloc : {'first', 'occupancy', 'all'}
263
+ This parameter defines how *altloc* IDs are handled:
264
+ - ``'first'`` - Use atoms that have the first
265
+ *altloc* ID appearing in a residue.
266
+ - ``'occupancy'`` - Use atoms that have the *altloc* ID
267
+ with the highest occupancy for a residue.
268
+ - ``'all'`` - Use all atoms.
269
+ Note that this leads to duplicate atoms.
270
+ When this option is chosen, the ``altloc_id``
271
+ annotation array is added to the returned structure.
272
+ extra_fields : list of str, optional
273
+ The strings in the list are optional annotation categories
274
+ that should be stored in the output array or stack.
275
+ These are valid values:
276
+ ``'atom_id'``, ``'b_factor'``, ``'occupancy'`` and
277
+ ``'charge'``.
278
+ include_bonds : bool, optional
279
+ If set to true, a :class:`BondList` will be created for the
280
+ resulting :class:`AtomArray` containing the bond information
281
+ from the file.
282
+ Bonds, whose order could not be determined from the
283
+ *Chemical Component Dictionary*
284
+ (e.g. especially inter-residue bonds),
285
+ have :attr:`BondType.ANY`, since the PDB format itself does
286
+ not support bond orders.
287
+
288
+ Returns
289
+ -------
290
+ symmetry_mates : AtomArray or AtomArrayStack
291
+ All atoms within a single unit cell.
292
+ The return type depends on the `model` parameter.
293
+
294
+ Notes
295
+ -----
296
+ To expand the structure beyond a single unit cell, use
297
+ :func:`repeat_box()` with the return value as its
298
+ input.
299
+
300
+ Examples
301
+ --------
302
+
303
+ >>> import os.path
304
+ >>> file = PDBFile.read(os.path.join(path_to_structures, "1aki.pdb"))
305
+ >>> atoms_in_unit_cell = get_symmetry_mates(file, model=1)
306
+ """
307
+ return pdb_file.get_symmetry_mates(model, altloc, extra_fields, include_bonds)