Computase
Computase is a local Python library for small, well-defined DNA and RNA sequence calculations:
- nucleotide composition, GC bounds, and GC skew
- DNA or RNA reverse complements
- translation with selectable NCBI genetic-code tables
- six-frame candidate ORF enumeration
- IUPAC motif searches on either strand
The Python API is the primary interface. The same operations are also available through the optional Model Context Protocol (MCP) interface for local agent workflows. Computation runs locally; input sequences are not sent to a service.
Install
For most Python environments:
pip install computase
For a project managed with uv:
uv add computase
Python 3.11 or newer is required.
Quick start
from computase.seq import translate_sequence
sequence = ">synthetic-cds\nATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG\n"
result = translate_sequence(sequence, table_id=1)
print(result.model_dump())
Representative output (computase_version matches the installed release):
{'computase_version': '<installed version>', 'parameters': {'table_id': 1, 'stop_handling': 'translate-through'}, 'protein': 'MAIVMGR*KGAR*', 'table_id': 1, 'table_name': 'Standard', 'stop_handling': 'translate-through', 'codon_count': 13, 'stopped_early': False}
Results are typed Pydantic models. They record the Computase version and effective parameters, but never echo the full input sequence.
See the Python examples for concise, runnable examples of all five sequence operations.
Capabilities and validation
| Scientific task | Python function | Contract and validation evidence |
|---|---|---|
| Composition, GC content bounds, and GC skew | summarize_sequence |
Preserves IUPAC uncertainty; checked against the GenBank HBB coding sequence and composition/property invariants |
| DNA/RNA reverse complement | reverse_complement |
Preserves the input alphabet and IUPAC symbols; checked against an M13 reference sequence and the reverse-complement involution property |
| NCBI genetic-code translation | translate_sequence |
Uses a selected NCBI table and requires complete codons; checked against an NCBI translation example and table-specific codons |
| Six-frame candidate ORF enumeration | enumerate_orfs |
Reports forward-reference coordinates and explicit start, stop, and nesting policies; checked with synthetic fixtures spanning all six frames and coordinate round trips |
| IUPAC motif search | scan_motif |
Supports ambiguous symbols, overlapping matches, and either strand; checked against the pUC19 EcoRI site and interval/property tests |
These checks establish the documented conventions and regression boundaries; they do not establish correctness for every biological interpretation or use case. If a result differs from an independent reference, use the scientific correctness report with a minimized, non-sensitive sequence.
Scientific scope and conventions
- Inputs are raw nucleotide strings or a single FASTA record, not multi-record files.
- Coordinates are 0-based and end-exclusive on the normalized forward reference, after FASTA headers and whitespace are removed.
- Strand is reported separately;
normalized_sequence[start:end]reproduces each reported forward span. - ORFs are sequence candidates, not gene predictions.
- IUPAC GC bounds preserve uncertainty rather than assigning probabilities.
- Sequence length is capped at 5,000,000 nucleotides; motif and result limits are enforced.
- Computase 0.1.x does not fetch records, align sequences, or annotate genes.
Optional MCP interface
stdio
With uv installed, uvx can run the MCP server without installing Computase
into the current environment:
{
"mcpServers": {
"computase": {
"command": "uvx",
"args": ["computase"]
}
}
}
If Computase was installed with pip into an environment available to the MCP
client, use computase as the command and omit the arguments. For a uv-managed
project, run uv run computase from the project root; configure the MCP client
with uv as the command and ["run", "computase"] as the arguments.
The five tools are computase_summarize_sequence, computase_reverse_complement, computase_translate_sequence, computase_enumerate_orfs, and computase_scan_motif.
Streamable HTTP
uvx computase --transport streamable-http --host 127.0.0.1 --port 8000
Connect an MCP client to http://127.0.0.1:8000/mcp. HTTP binds to localhost by default.
Do not expose the Computase HTTP server directly to a public network. Non-loopback deployment requires a separately managed TLS boundary that authenticates every request and enforces request-size, concurrency, and rate limits.
Companion Skill
The repository and source distribution include a Computase companion Skill that teaches agents when and how to choose the five MCP tools. Its usage examples cover longer workflows. These Skill files are not installed by the Python wheel.
Development
Use uv sync --locked --extra dev, then run:
uv lock --check
uv run --locked ruff format --check src tests evaluations scripts
uv run --locked ruff check src tests evaluations scripts
uv run --locked mypy src tests evaluations scripts
uv run --locked pytest -q
uv run --locked python -m evaluations.runner
See CONTRIBUTING.md for reference-vector requirements.
Citation
If Computase contributes to your work, cite the software metadata in CITATION.cff. GitHub also exposes this through Cite this repository.
License
Computase is licensed under the MIT License.
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 computase-0.1.1.tar.gz.
File metadata
- Download URL: computase-0.1.1.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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 |
a97fe6bf06c30208284e6a43b6be296fcab488b77d82afb2d5f2769d870924cd
|
|
| MD5 |
a5b74a4cca5caea2ccd05a5f45f20210
|
|
| BLAKE2b-256 |
74aa8465cf8682320f625292b55710f939585f3be84214b9c2eaf7706fdf97e1
|
File details
Details for the file computase-0.1.1-py3-none-any.whl.
File metadata
- Download URL: computase-0.1.1-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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 |
3f785975702169002fca106559cbf3d182838bd448c9241a2734b027aabd5740
|
|
| MD5 |
9021efb2f6cbf998087d8f8f0297dce7
|
|
| BLAKE2b-256 |
a592d0642c5a153e2a824a5ccd11cc5f21fa4f2ce3274c1e55e6767adfd04dd4
|