A Python library containing RNA-related bioinformatics functions and classes
Project description
RNApolis
A Python library and CLI utilities for RNA bioinformatics — parsing PDB/mmCIF structures, annotating secondary structure, and clustering 3D conformations.
pip install rnapolis
- Documentation: https://tzok.github.io/rnapolis-py/
- Notebooks: https://github.com/tzok/rnapolis-py/tree/main/notebooks
Development
This repository uses uv for environment management, locking, and builds.
Install the runtime environment:
uv sync --locked
Install the development tools and run tests:
uv sync --locked --group dev
uv run --no-sync python -m pytest
Install the documentation toolchain and build the site:
uv sync --locked --group docs
uv run --no-sync mkdocs build --site-dir site
Build source and wheel distributions:
uv build
Utilities
annotator
Extracts and classifies RNA secondary structure from 3D coordinates, detecting base pairs (Leontis-Westof + Saenger), stacking, base-ribose, and base-phosphate interactions. Prints dot-bracket to stdout (pseudoknot-ordered; --extended encodes non-canonical pairs) and optionally writes BPSEQ (--bpseq), CSV (--csv), JSON (--json), or GraphViz DOT (--dot). --find-gaps splits chains with missing segments (>2.4 Å gaps).
adapter
Converts base-interaction output from external tools into RNApolis' secondary-structure format, reusing annotator's output options. Supports FR3D, DSSR, RNAView, BPNet, MAXIT, BARNABA, MC-Annotate, and DNATCO; the source tool is auto-detected from file patterns (override with --tool). Usage: adapter <structure> [external files...].
aligner
Aligns two PDB/mmCIF structures with PyMOL and writes trimmed copies containing only matching residues. Requires PyMOL. Usage: aligner -o <out_dir> [-f PDB|mmCIF|keep] <file1> <file2>.
clashfinder
Detects atomic clashes in PDB/mmCIF structures. Flags: --ignore-occupancy, --nucleic-acid-only, --ignore-autoclashes, --require-same-atom-name, --enable-molprobity-mode (include weak clashes), --csv.
distiller
Clusters RNA 3D structures by geometric similarity. Two modes: approximate (default; PCA-reduced feature distances, fast) and exact (all-vs-all nRMSD). Four methods: hierarchical (default), affinity-propagation, facility-location, radius-graph. Accepts file paths as args or via stdin. Outputs JSON (--output-json) and dendrogram/MDS plots (--visualize).
metareader
Extracts mmCIF categories into JSON for quick inspection with tools like jq. --category/-c selects categories (default struct); --list-categories/-l lists available ones.
$ metareader -c refine 8af0.cif.gz | jq -r .refine[0].ls_d_res_high
2.43
molecule-filter
Filters an mmCIF file by entity type (default polyribonucleotide), preserving all interdependent mmCIF categories for the selected chains. --type selects the entity type.
motif-extractor
Reads a secondary structure in BPSEQ (--bpseq) or dot-bracket (--dbn) format and lists its structural elements (single strands, stems, loops, hairpins).
transformer
Copies one column to another within an mmCIF category (e.g. set auth_asym_id from label_asym_id). Usage: transformer <input> <output> --category atom_site --copy-from label_asym_id --copy-to auth_asym_id.
rfam-folder
Folds consensus secondary structures for RNA sequence(s) — a single sequence or a FASTA file. --family targets a specific Rfam family (otherwise the whole DB is searched); --no-fold skips RNAfold; --count limits structures per sequence. Requires Infernal.
unifier
Normalizes a set of PDB/mmCIF files so they share identical residues: standardizes canonical-nucleotide atom names/order, unifies residue identifiers (chain/number/icode), and drops residues whose atom counts differ across files. Usage: unifier -o <out_dir> [-f PDB|mmCIF|keep] <files...>.
splitter
Splits a multi-model PDB or mmCIF file (e.g. NMR ensembles) into one file per model. Usage: splitter -o <out_dir> [-f PDB|mmCIF|keep] <file>.
quick-filter
Filters atoms from a PDB/mmCIF file while preserving non-atom records (headers, ANISOU, etc.). --mode picks nucleic-acid (default) or protein; --keep-ligands/--keep-waters/--keep-ions retain those classes; --altloc, --chains, and --model further restrict output. Prints filtered content to stdout.
na-chain-groups
Quickly groups nucleic-acid chains by spatial proximity. Builds a KD-tree from C1' atoms (one per nucleotide) and merges chains whose atoms are within a distance threshold (default 15 Å). Outputs JSON: single file → [["A","B"],["C"]]; multiple files → {"file": [["A","B"],...]}. Accepts multiple paths as args or reads from stdin. --threshold, --atom, and --model are configurable.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rnapolis-0.16.10.tar.gz.
File metadata
- Download URL: rnapolis-0.16.10.tar.gz
- Upload date:
- Size: 729.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
897e0cdc616ac7e3946553d4defb5dbb7903e98ce1da49e1163839ffb3629227
|
|
| MD5 |
044c7e48c656be118ea608e5a90ec17f
|
|
| BLAKE2b-256 |
20ee9f8bfbf845758636655d919d9bca5d6ffdf2dd07b47e0e3be29d11422e1f
|
File details
Details for the file rnapolis-0.16.10-py3-none-any.whl.
File metadata
- Download URL: rnapolis-0.16.10-py3-none-any.whl
- Upload date:
- Size: 746.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e64952f95aa846e30759f8a2dd1f218665cb64519e39e4e88b3c611b7581531e
|
|
| MD5 |
231c8b65335247998f620e284ad4bf2b
|
|
| BLAKE2b-256 |
803f50c72ab20629c4fe4213b001297fa3072c71db248237d6c19071b7628b2e
|