Skip to main content

Pypi Releases Downloads CI Python

sanger

A lightweight toolkit for Sanger sequencing data: chromatogram visualization, alignment & mutation calling, quality control, base-calling, trimming, assembly and export — usable as a CLI, a Python library, or an MCP server for LLM agents.

Quick start

pip install sanger
sanger mut -q read.ab1 -s ref.fa -o out --plot
from sanger import Chromatogram, parse_fasta

cg = Chromatogram.from_abi("./data/B5-M13R_B07.ab1")
print(cg.length, cg.mean_quality, cg.gc_percent)   # 1141 50.2 52.0
ref = parse_fasta("./data/ref.fa")
print(cg.qc())                                    # QC metrics (CRL, SNR)
print(cg.to_vcf(ref))                             # variant calling -> VCF
cg.plot(region=(55, 90))                          # render a region

Examples

The gallery below is produced from the bundled real ABI sample (data/B5-M13R_B07.ab1 vs data/ref.fa) by python -m scripts.make_readme_examples.

Mutation calling — the SNP T61A is highlighted and annotated.

Mutation calling

Quality control — per-base Phred quality, CRL and Mott trimming.

Quality profile

Side-by-side panels — chromatogram + GC% + quality on a shared axis.

Side-by-side

Feature overlay — primers, amplicon and SNPs on the trace.

Feature overlay

Re-called bases — mixed/heterozygous sites are marked (M/W/K).

Re-called bases

Assembly — pileup depth and consensus against a reference.

Assembly

Installation

The default install pulls only numpy, click and rich-click — no C compiler and no plotting library required. Parsing, QC, alignment (a bundled Cython Smith-Waterman with a NumPy fallback), analysis and export all work out of the box.

pip install sanger

Optional extras:

pip install "sanger[plot]"     # matplotlib -> chromatogram figures
pip install "sanger[viewer]"   # DNA Features Viewer integration
pip install "sanger[agent]"    # MCP server for LLM agents
pip install "sanger[all]"      # everything

The bundled Cython Smith-Waterman accelerator (sanger._swalign, self-contained, no ssw dependency) is compiled automatically when a C compiler is present at build time; otherwise the NumPy fallback is used.

From source:

git clone git@github.com:y9c/sanger.git
cd sanger
make init       # install dependencies
make test       # run the test-suite

Command-line interface

Built on rich-click, with themed command groups (sanger --help):

sanger mut            mutation calling & reporting
sanger qc             per-read quality-control metrics
sanger track          split / join / slice chromatogram trace files
sanger edit           trim, strip primers, reverse-complement
sanger basecall       re-call bases from raw four-channel traces
sanger assemble       reference-guided pileup & consensus
sanger analyze        sequence biology (translate, motifs, restriction)
sanger export         FASTA / VCF / JSON / batch summary
sanger plot           chromatogram rendering (+ features / DNA viewer)

Examples:

sanger mut -q read.ab1 -s ref.fa -o out --plot        # mutation report + figure
sanger qc r1.ab1 r2.ab1                               # QC table
sanger track split read.ab1 -c 20,40 -f tsv           # split traces
sanger edit trim read.ab1 -c 0.05 -o out              # Mott quality trim
sanger edit strip-primers read.ab1 -f AAAA -r CCCA    # primer removal
sanger basecall call read.ab1 -r 0.45                 # re-call bases
sanger basecall hetero read.ab1                       # mixed/heterozygous sites
sanger assemble consensus a.ab1 b.ab1 -r ref.fa       # reference-guided consensus
sanger analyze rest read.ab1                          # restriction sites
sanger analyze translate read.ab1 -f 1                # protein translation
sanger export vcf -q read.ab1 -s ref.fa               # VCF of variants
sanger export batch *.ab1 -o out -f csv               # batch QC table
sanger plot dnaviewer read.ab1 --start 50 --end 100   # with DNA Features Viewer

Python API

The high-level Chromatogram object is the easiest way to work with the toolkit; the low-level modules remain available for custom work.

from sanger import Chromatogram, parse_fasta

cg = Chromatogram.from_abi("./data/B5-M13R_B07.ab1")
ref = parse_fasta("./data/ref.fa")
Common operations

Mutation calling & quality filtering

from sanger.quality import QualityFilter

snps = cg.call_mutations(ref)
confident = QualityFilter(min_base_qual=20, min_local_qual=20).filter(snps)
print([f"{s.ref_base}{s.ref_pos}{s.cf_base}" for s in confident])

QC metrics (incl. continuous read length)

m = cg.qc()
print(m["mean_qual"], m["trim_start"], m["trim_end"], m["crl"], m["snr"])

Re-call bases from raw traces + mixed/heterozygous sites

res = cg.basecall()
print(res.sequence)
for pos, major, minor, frac in res.heterozygotes(min_ratio=0.2):
    print(pos, major, minor, frac)

Trim / reverse-complement / orientation

trimmed = cg.trim().trim_leading_ns()     # Mott trim then drop leading Ns
rc      = cg.reverse_complement()
ori     = cg.detect_orientation(ref)      # +1 forward, -1 reverse-complement

Sequence-level analysis

print(cg.analyze("translate", frame=1))            # protein translation
print(cg.analyze("restriction"))                    # {'EcoRI': [27], ...}
print(cg.analyze("motif", motif="AATT"))            # motif positions

Export

print(cg.to_fasta())
print(cg.to_vcf(ref))
cg.export("out")                                    # write FASTA to disk

Feature overlay (for external tools)

from sanger import ChromatogramFeature
from sanger.features import plot_features

feat = ChromatogramFeature(start=90, end=130, strand=+1, label="primer F")
fig, ax = cg.plot(region=(80, 140))
plot_features(cg.to_record, ax, features=[feat])

Side-by-side with another tool's output (shared x-axis)

from sanger.composite import side_by_side

def my_panel(ax, trace_x, peaks, seq, record, start=None):
    ax.bar(range(len(seq)), [1.0] * len(seq), color="0.66")
    ax.set_ylabel("my tool signal")

fig, (ax_chrom, ax_panel) = side_by_side(cg.to_record, my_panel, region=(10, 40))

Consensus / assembly from many reads

from sanger import parse_abi
from sanger.assembly import pileup, consensus

reads = [parse_abi(f) for f in ["a.ab1", "b.ab1", "c.ab1"]]
table = pileup(reads, ref, quality_threshold=20)
print(consensus(table))

Plot together with DNA Features Viewer (needs sanger[viewer])

from sanger import ChromatogramFeature
from sanger.dnalink import plot_combined

feats = [ChromatogramFeature(start=90, end=130, strand=+1, label="primer F")]
fig, (ax_feat, ax_chrom) = plot_combined(cg.to_record, features=feats, region=(55, 90))

Chromatogram object

A terse, idiomatic workflow in one object:

from sanger import Chromatogram

cg = Chromatogram.from_abi("./data/B5-M13R_B07.ab1")
cg.length, cg.mean_quality, cg.gc_percent, cg.channels   # 1141 50.2 52.0 GATC
cg.qc()                            # QC metrics (CRL, SNR)
cg.basecall()                      # re-call bases from raw traces
cg.call_mutations(ref)             # variant calling
cg.trim().trim_leading_ns()        # quality trimming
cg.reverse_complement()            # reverse-strand view
cg.analyze("restriction")          # restriction-site scan
cg.plot(region=(55, 90))           # render a region
cg.to_fasta(), cg.to_vcf(ref)      # export
cg.export("out")                   # write to disk

Agent / MCP

sanger ships a Model Context Protocol server so LLM agents and MCP clients can call the toolkit as tools:

pip install "sanger[agent]"     # adds mcp>=2
sanger-mcp                        # run the MCP server over stdio
python -m sanger.mcp_server       # identical
Tool Purpose
read_chromatogram(path) parse an ABI → summary (length, GC%, quality, CRL)
qc_metrics(path) full per-read QC metrics (incl. CRL, signal, SNR)
call_mutations(query ab1, subject fa) variants vs a reference (SNPs/indels)
re_call_bases(path) re-call bases from raw traces + heterozygotes
analyze_sequence(path, kind) translate / motifs / restriction / GC
trim_read(path, mode) quality-trim a read
export_sequence(path, outdir) write FASTA or VCF
plot_chromatogram(path, out, start, end) render a chromatogram PNG

Register it in an MCP client's config, e.g.:

{ "mcpServers": { "sanger": { "command": "sanger-mcp" } } }

ChangeLog

  • Replace the external ssw aligner with a bundled Cython Smith-Waterman (+ NumPy fallback) — no external alignment dependency.
  • Reverse-complement the chromatogram file (inspired by Snapgene).
  • Add per-base quality filtering, continuous read length (CRL), signal/SNR QC.
  • Add base-calling from raw four-channel traces + heterozygote (mixed-base) calling.
  • Add feature overlay API and DNA Features Viewer integration.
  • Add split / join / slice trace operations with provenance (offset).
  • Add reference-guided pileup & consensus (assembly module).
  • Add FASTA / VCF / JSON / batch export.
  • Fix false-positive mutations from lowercase reference bases (case-insensitive).
  • Build the CLI with rich-click (themed groups, short options, --version).

TODO

  • call mutation by alignment and plot Chromatogram graphic
  • add a doc
  • change x-axis by peak location
  • fix bug that chromatogram switches position after trim
  • wrap as a CLI app
  • return quality score in output (quality module + report)
  • fix selected base not being centred (center_region)
  • fix plot_chromatograph rendering bug (full-region bounds, channels)
  • add projection/assembly (assembly module)
  • preserve trimmed-origin positions when slicing/joining (offset provenance)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sanger-0.1.4.tar.gz (133.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sanger-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl (245.1 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

sanger-0.1.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (245.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

sanger-0.1.4-cp314-cp314-macosx_11_0_arm64.whl (152.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

sanger-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl (246.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

sanger-0.1.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (246.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

sanger-0.1.4-cp313-cp313-macosx_11_0_arm64.whl (151.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sanger-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl (249.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

sanger-0.1.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (249.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

sanger-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (152.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sanger-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl (242.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

sanger-0.1.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (242.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

sanger-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (152.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sanger-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl (237.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

sanger-0.1.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (237.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

sanger-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (152.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file sanger-0.1.4.tar.gz.

File metadata

  • Download URL: sanger-0.1.4.tar.gz
  • Upload date:
  • Size: 133.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sanger-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d7d2adf292efdbfcd571362c8a1df4be5070ab6270a29180e4976eeb7f1f97e8
MD5 2e711813f3ddc124634f73010970b1ab
BLAKE2b-256 2b168ea2cb1dfbc241f53a35e82d0e4b68c549878012045b734d3b7206ba8336

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4.tar.gz:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3a367e257ed081d4f57a4b5668cf6772d5209ce8a7c918cd7fc22634a1ca124a
MD5 01a9e09458789c49a20d89012f7671cb
BLAKE2b-256 0984772e6b79d157408dabd7fd248f3686b064c379199f2061d18b5d3a68ab96

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 c2cd23363bde87b4539cb7edb13b520ba34e39d8ccfde87617eec211c53587cf
MD5 df1aa13bd5ec6aa9ee124948d41194e4
BLAKE2b-256 2007a71bc390aa0e9f44a7e9087a471b16f0fc1943e55ce25b0a3ab85cf20aff

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5c29195fb80a7f69cfed8a83e97a3fa6bb079af9bd8f7ae7748bc7b316300b4
MD5 3168efd253e94f7f2d9daac1ecefac12
BLAKE2b-256 a1eb26cdbb94080a41f4aa97590783fb274682069c2df990d83d5db616ad5e9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 23de9eaf381553336ac6048bc7c6dbb54953f7b9d96c5abdcc21b62dc34eb4bb
MD5 999a34dd53f499d499a0127f7e65a24f
BLAKE2b-256 b0635775c3a77bc71912567be1004773358a2764347e73445a469d3170b38e99

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 fd191e0e0d8f488be6cdf572a1bf95485f5311837e209667c654040d49e18782
MD5 ec0f71c0b2dddb4a91e0696e3af04276
BLAKE2b-256 5efdd16d1cdb56e911123f87b22018cada122652c939a3357d6481309ab28ff9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bafd9a2143ff1836dd28928146e77513278ea6c626e412ff42d5f0d1275e2e04
MD5 707c2b3affe2f9f9521f49c3960b82d8
BLAKE2b-256 29771ebf3376adba0c752c5e639dcedee1b03ab8e7f20f2c8c52a122d7fb50e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 79d97577a8188b79357693ba7a7eb397c145a273031649ab43507b08d24780a5
MD5 c79dba8d239a618fd8c1983d5acac8b9
BLAKE2b-256 cbf6e983255f6402d9e980806ef6284e2c1af6b79bba21b2a00eb9f3f9232b44

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 10c3fc261787d389f1c47f88eabb10d06458fd738a2e5749acae8dab45764040
MD5 0a05941d2d589c0ef839c65f4c831b66
BLAKE2b-256 d3f5ea1d36d1196f5fe48d795fd049136a9696acf84ed40d4557746d3d8a23c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6bb0d6f2a705ab13f1ed0659e22607daf86985e79b9dd7fd2fa733479723ae19
MD5 80fabe7550cfd6a86d6a83e1f1911b74
BLAKE2b-256 e09132b35d53c218b4fee04b72bc525b54c83f9f381301451446c173be9a48d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a81049de74036c9b132eb572bec395f74d55a36ac695c2092be71b34436ec0b9
MD5 6bf3dc475fe596dcbe11033a14cec67c
BLAKE2b-256 191e43a8df7a404324fddff6ee48a0c27cb38989797e14c2ba495273a195968f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ad8bea1e943fd3cfef493ca0aac74d9ab328a0966224b8715658a78476a37aee
MD5 3280bc0ff642acc4d0e2fa06373a3738
BLAKE2b-256 c68162a3d1a2d94fa18a0413e7bc2f5c6da4604d4ce9a132603772088215e8db

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3eb2aeb471642d1945c6624dcd8cee80e4e9f11adef7658cf9e5023f1e1e62c
MD5 a35bddcc1e510b73368ae08f1ce7ee66
BLAKE2b-256 0a2c25412d219d9b1bb4f09da220a9b686a38873edc37c28c740218db318ff32

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c464385a0b9c0d590940ea8ccd5ae65eec8073db93d98514a3f65775b87c4917
MD5 90087d0066e03be9b4b73649e3f4aae4
BLAKE2b-256 1c18032f28d9727dc52043f67d365962359df26caa21382559a09018cf928246

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 c8a8651d14007c35f0c608aa093f121d47a4971591d3aed16f197e6971cc8838
MD5 5f9e8a043adc2165490e32d54a795ed5
BLAKE2b-256 4659bb44d85c217677a2d226549215e0088144949ef091f4eddb1ab401d0c0bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sanger-0.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sanger-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90d9d37a4585e51c523e341357e4a694cfdd9b2f5a4dcdad15e90a53acbbf16e
MD5 fc38bd9d357e4fbca1f5f658c304c36e
BLAKE2b-256 a3577148b2cff032cc87af45d1bc259727f431add5ee686bf5908f5f282d523f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sanger-0.1.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: pypi.yml on y9c/sanger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.5

21 files

This release

0.1.4 This release

16 files

0.1.3

11 files

0.1.2

9 files

0.1.1

1 file

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page