-</script><p>See the <a href="http://nbviewer.jupyter.org/github/jgreener64/Bio3DView.jl/blob/master/examples/tutorial.ipynb">Bio3DView.jl tutorial</a> for more information. <a href="https://github.com/BioJulia/BioMakie.jl">BioMakie.jl</a> can also be used to visualise BioStructures objects.</p><h2 id="Design-decisions"><a class="docs-heading-anchor" href="#Design-decisions">Design decisions</a><a id="Design-decisions-1"></a><a class="docs-heading-anchor-permalink" href="#Design-decisions" title="Permalink"></a></h2><p>The relationship between different types in BioStructures is shown below:</p><p><img src="../assets/types.svg" alt="types"/></p><p>The design is based on Biopython, and has the intention of representing the complexity of the data in the PDB without it getting in the way of users. This hierarchical approach differs from some packages that represent structures as lists of either atoms or residues. Note that it is possible to store non-biopolymer molecules in this representation, and there are many such examples in the PDB. In general chemical terms: <a href="../api/#BioStructures.MolecularStructure"><code>MolecularStructure</code></a> is analogous to ensemble, <a href="../api/#BioStructures.Model"><code>Model</code></a> to conformation, <a href="../api/#BioStructures.Chain"><code>Chain</code></a> to molecule and <a href="../api/#BioStructures.Residue"><code>Residue</code></a> to monomeric unit when relevant.</p><p>The aim of BioStructures is not so much to read in the rows of a structure file, but to unambiguously represent the molecules contained within the file. This makes operations such as converting between file formats easier, at the cost of some complexity and occasional limits on the ability to read in files with format violations. For example, we have no way to represent multiple copies of the same atom with the same alt loc ID, as they would be placed at the same spot in the hierarchy. Such files often lead to silent errors, however, so we recommend users follow the appropriate format guidelines. The mmCIF format is able to store arbitrary data systematically if required.</p><h2 id="Related-software"><a class="docs-heading-anchor" href="#Related-software">Related software</a><a id="Related-software-1"></a><a class="docs-heading-anchor-permalink" href="#Related-software" title="Permalink"></a></h2><p>Other packages in the Julia ecosystem that deal with structural bioinformatics or related fields include:</p><ul><li><a href="https://github.com/diegozea/MIToS.jl">MIToS.jl</a> - protein sequence and structure analysis.</li><li><a href="https://github.com/m3g/PDBTools.jl">PDBTools.jl</a> - read and write PDB files.</li><li><a href="https://github.com/christophfeinauer/PdbTool.jl">PdbTool.jl</a> - read and work with PDB files.</li><li><a href="https://github.com/chemfiles/Chemfiles.jl">Chemfiles.jl</a> - read and write various chemistry trajectory files.</li><li><a href="https://github.com/jgreener64/Bio3DView.jl">Bio3DView.jl</a> - view molecular structures (see <a href="#Visualising-structures">Visualising structures</a>).</li><li><a href="https://github.com/BioJulia/BioMakie.jl">BioMakie.jl</a> - view molecular structures and sequence alignments.</li><li><a href="https://github.com/MurrellGroup/ProtPlot.jl">ProtPlot.jl</a> - view protein ribbons with Makie.jl.</li><li><a href="https://github.com/m3g/ProteinSecondaryStructures.jl">ProteinSecondaryStructures.jl</a> - parses DSSP and STRIDE outputs.</li><li><a href="https://github.com/BioJulia/MMTF.jl">MMTF.jl</a> - read and write MMTF files. BioStructures.jl builds on top of MMTF.jl.</li><li><a href="https://github.com/jgreener64/ProteinEnsembles.jl">ProteinEnsembles.jl</a> - model ensembles of protein structures.</li><li><a href="https://github.com/jgreener64/Molly.jl">Molly.jl</a> - molecular dynamics in Julia.</li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../examples/">Examples »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.11.4 on <span class="colophon-date" title="Friday 16 May 2025 12:22">Friday 16 May 2025</span>. Using Julia version 1.11.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
0 commit comments