Skip to main content

Simplified in-silico protein cutting

CI

Modeling protein hydrolysis and release of peptides by endoproteases requires complex, compute-intensive simulations, typically taking into account the 3D structure of both the enzymes and the target protein. Furthermore, despite recent advancements in folding, such structures can still be difficult to predict starting from the protein's acido-aminic sequence.

This repository contains the code for an alternative approach, originally published in Tonda et al. (2017), In silico modeling of protein hydrolysis by endoproteases: a case study on pepsin digestion of bovine lactoferrin, Food & Function, Vol. 8, Issue 12, DOI: 10.1039/C7FO00830A. The idea is to just consider the linear sequence of amino-acids, and then simulate the behavior of an enzyme starting from the frequency of cuts observed during previous experiments, plus other information, for example the presence of disuflide bonds. The final peptides obtained by the simulation aim to be qualitatively coherent with real-world experiments, even though the exact absolute quantities might be different.

If you use this software in your publications, please cite the original paper (see Citing this software below).

What is this software?

In a nutshell, this software simulates the action of an enzyme on several copies of a protein (protein structure given in input). The model is not specific to any one enzyme: it works for any endoprotease, as long as cleavage frequency data is available for it. The enzyme's behavior is assumed to be stochastic, and during the simulation it will cut bonds with a certain probability, depending on the four amino-acids to the left (positions traditionally labeled as P4, P3, P2, P1) and right (P1', P2', P3', P4') of a bond. Here below is the flowchart of the algorithm.

Flow chart of the simulation

The sample configuration shipped with this package models pepsin, using probabilities computed from analyses performed by Hamuro et al., 2008 and Powers et al., 1977, which was the case study for the original Tonda et al., 2017 paper.

Most people will want the Python package, described next. Under the Python hood, there is a core written in C++, for speed. The C++ core, CLI, and file formats behind it are documented further down, in C++ core.

Python package

You can install this software as the seqcleave package, with:

pip install seqcleave

To install from a checkout of this repository instead (e.g. to test local changes), run pip install . from the repository root; that will also compile the extension automatically, via scikit-build-core.

You can check whether everything works fine by running the case study, loading the configuration for pepsin enzyme cleaving the protein bovine lactoferrin:

import seqcleave

# load complete configuration as a dictionary
config = seqcleave.example_config()
# set the random seed for reproducibility
config["randomSeed"] = 42
# reduce initial quantity of the first protein (pepsin) to speed up the computation
config["proteins"][0]["quantity"] = 10

# launch the simulation (it might take a few seconds)
df = seqcleave.simulate(config)
# the DataFrame contains the quantity of different peptides at each instant of time 
print(df)
# if an output filename is specified, the result is also saved as a CSV file
#df = seqcleave.simulate(config, output="peptides.csv")

The output should be:

    time  time2  enzyme  a  aca  acaf  acafltr  ad  aedvgdva  ...  
0      0      0     1.0  0    0     0        0   0         0  ...     
1    114     10     1.0  0    0     0        0   0         0  ...      
2    165     20     1.0  0    0     0        0   ..   ...    ...                            ...                 ...                    ...         
68  9951    680     1.0  5    4     2        0   2         1  ...      

[69 rows x 1015 columns]

seqcleave.simulate() also accepts a JSON file in input. The configuration includes the protein sequence(s), the cutting probability for each bond, and several other parameters used in the simulation:

print(seqcleave.example_config())

Output:

{
 'parameters': {'randomSeed': None,
                'maxTime': 1200000,
                'maxDH': 0.1,
                'maxAttemptsPerTime': 1,
                'maxAttempts': 1000,
                'initialEnzyme': 1.0,
                'enzymeAlwaysDying': False,
                'enzymeDyingRatio': 1.0},
 'proteins': [{'name': 'lactoferrin',
               'quantity': 500,
               'disulfideBonds': [9,
                                  19,
                                  ...
                                  545],
               'sequence': 'aprknvrwctisqpewfkcrrwqwrmkklga...'}],
 'cuts': {'f': {'y': 0.65,
                'f': 0.85,
                    ...
                'g': 0.28},
          'l': {'y': 0.68,
                'f': 0.84,
                    ...
                'g': 0.07},
          ...
          'k': {'i': 0.02, 'g': 0.02},
          'h': {'p': 0.05}},
 'alterations': {
    'f': {'left': {'2': 0.068, '3': 0.065, '4': 0.178},
          'right': {'2': 0.076, '3': 0.138, '4': 0.138}},
                ...
    'p': {'left': {'2': 0.002, '3': 0.137, '4': 0.194},
          'right': {'2': 0.013, '3': 0.027, '4': 0.207}}},
 'terminalAlterations': {'left': {'2': 0.3333, '3': 0.3333},
                         'right': {'2': 0.3333, '3': 0.3333}}
}

The information related to the enzyme and the protein are also accessible separately:

seqcleave.lactoferrin_protein()   # -> just the "proteins" entry (sequence, disulfideBonds, quantity)
seqcleave.pepsin_cuts()           # -> just the enzyme data ("cuts", "alterations", "terminalAlterations")

# e.g. pepsin's cleavage data against a different protein:
config = {
    "parameters": {"maxDH": 0.1},
    "proteins": [{"sequence": "your own sequence here", "quantity": 100}],
    **seqcleave.pepsin_cuts(),
}

See Configuration format (dictionary and JSON) below for the full schema simulate() accepts (as a Python dictionary or a JSON file).

For full control, it is also possible to use the lower-level EndoproteaseModel class directly — a near 1-to-1 binding of the C++ class, with plain read/write attributes for every simulation parameter:

from seqcleave import EndoproteaseModel
import pandas as pd

model = EndoproteaseModel()
model.read_json("data/lactoferrin.json")   # or model.read_config({...}) for a native dict
model.max_dh = 0.05
model.run()
df = pd.DataFrame(model.compute_time_series())

The simulation returns a pandas.DataFrame (named df in the examples above), tracking the quantity of each type of peptide generated by the simulation over time. See Output format below for more detailed information.

Configuration format (dictionary and JSON)

Simulations — whether run through the Python package or the CLI — are configured entirely from a JSON file or Python dictionary, no need to modify the source code to change the protein(s), probabilities, or simulation parameters. Comments (// and /* */) are supported by the loader and stripped before parsing, so configuration files can be annotated just like code; lactoferrin.json in the original repository is heavily commented and is the best starting point for writing your own JSON.

The file has four top-level sections:

  • parameters: simulation-wide settings
    • randomSeed is the seed for the random number generation; fixing it to an integer value (e.g. 42) will ensure repeatable result; null is the option for a time-based seed
    • maxTime is the maximum number of cutting iterations (approximately corresponding to instants of time), once reached the simulation will stop
    • maxDH is the maximum degree of hydrolysis, once reached the simulation will stop
    • maxAttemptsPerTime controls the amount of cutting attempts that the enzyme will perform per iteration before going to the next iteration; sometimes, especially when only small peptides with strong bonds are available, the enzyme will not manage to cut
    • maxAttempts once this number of failed attempts is reached, the simulation will stop; the enzyme did not find anything to cut
    • initialEnzyme / enzymeAlwaysDying / enzymeDyingRatio are all experimental parameters to regulate enzyme activity decaying over time; we recommend leaving them at the default values (initialEnzyme : 1.0, enzymeAlwaysDying : False, enzymeDyingRatio : 1.0)
  • proteins: an array of proteins to simulate, each with a name, a quantity (number of copies), a sequence (the amino-acid chain), and disulfideBonds (1-indexed positions the enzyme finds harder to cut — despite the name, not all of them are strictly disulfide bonds, some can be glycosylations).
  • cuts: base probability of cutting a bond, keyed by the amino-acid to the left (P1) and right (P1') of the bond, e.g. "cuts": { "f": { "y": 0.65, "f": 0.85, ... }, ... } means that the probability of the enzyme cutting a f-y bond is 0.65 (65%), while a f-f bond will be cut with a 0.85 (85%) probability. Bonds not listed default to probability 0.0 and therefore will never be cut.
  • alterations / terminalAlterations: position-dependent adjustments to the base probability for amino-acids found further away from the bond (P2-P4 / P2'-P4'), and multipliers applied near either end of a peptide chain (typically more difficult to cut for an enzyme).

In the original code, configuration files were XML; the format was switched to JSON (parsed with nlohmann/json) for easier editing. If you are curious, the original sample file, data/lactoferrin.xml, is kept in the repository as a reference.

Output format

The result of a seqcleave.simulate() is a pandas.DataFrame table (and possibly a CSV file), tracking the quantity of each peptide over the course of the simulation. Columns are time (iteration count), time2 (number of cuts so far), enzyme (currently always 1.0, reserved for future developments), followed by one column per distinct peptide produced during the simulation, in alphabetical order. Each row gives the count of each peptide at that point in the simulation. The full CSV is usually large (~70 MB for the default lactoferrin example). We recommend using a separate analysis script rather than manual inspection, to extract meaningful information from it.

C++ core

The Python package wraps a C++ core, which can also be built and run standalone as a CLI. This section is for building from source or working on the C++ code directly — most users won't need it.

Repository structure

data/                sample input (lactoferrin.json), a small test script, and a
                      scaled-down variant used for quick smoke tests / CI
scripts/              utility scripts (e.g. the old XML -> JSON converter)
cpp/                  C++ source code: the core, the CLI, and the pybind11 bindings
cpp/thirdparty/       vendored dependencies (nlohmann/json, spdlog, pybind11_json)
src/seqcleave/       the Python package (pure-Python wrapper; the compiled
                      extension lands here too once built, see "Python package" above)
tests/                pytest suite for the Python package (see "Running the tests" above)
pyproject.toml        Python packaging config (scikit-build-core)

The original code is in C++, and is contained in the cpp/ subfolder. A Python package (seqcleave) wrapping it via pybind11 lives in src/seqcleave/ (a "src-layout" Python package, following the convention expected by Python's packaging tools — not to be confused with cpp/, which holds the C++ sources).

Building the C++ code

You will need CMake (3.15+) and a C++17 compiler. The code has no external dependencies to install: nlohmann/json (JSON parsing) and spdlog (logging) are vendored, header-only, directly in cpp/thirdparty/, so no network access or package manager is required at build time.

cd cpp
mkdir build && cd build
cmake ..
cmake --build .

This produces an executable called protein-cutting (protein-cutting.exe on Windows) in the build directory. Any generator CMake supports should work (Unix Makefiles, Ninja, Visual Studio, ...); on Windows with MinGW/Ninja, for example: cmake -G Ninja ...

The code should be cross-compiling on any platform with ISO C++ and CMake support (tested on Ubuntu 14.04/16.04 originally, and on Windows with MinGW-w64).

Running a simulation (CLI)

To run a simulation, you need a JSON file describing the protein(s) and the cut probabilities (see Configuration format above). A sample file, data/lactoferrin.json, is provided: it contains the structure of bovine lactoferrin and simulates cutting 500 copies of the protein, using probabilities taken from Hamuro et al., 2008 and Powers et al., 1977 (see above for the DOIs).

./protein-cutting --input lactoferrin.json

This can take a while (minutes to tens of minutes, depending on your hardware and on the quantity of proteins simulated), and writing the final result to disk can itself take a long time — don't quit at that point.

Argument Description
--input <file.json> Required. The JSON configuration file describing the simulation.
--output <file.csv> Where to write the results. Default: statistics.csv.
--verbose Prints debug-level detail to the console (shorthand for --log-level debug).
--log-level <level> Sets the console log level explicitly: trace, debug, info, warn, error, or off. Default: info.
--log-file <file.log> Additionally writes a full trace-level debug log to the given file. No file is ever written unless this is explicitly given.

By default the program only prints progress/warning/error messages to the console (info level) — no per-position debug trace, which used to flood the console/log files in earlier versions of this code.

Project status / roadmap

  • ✅ Configuration format switched from XML to JSON.
  • ✅ Logging rewritten (leveled, quiet by default, opt-in file output) in preparation for reuse from other languages.
  • ✅ Model and parameter names generalized (EndoproteaseModel, enzyme* fields) — the simulation was never pepsin-specific, and now neither is its naming.
  • ✅ Repository reorganized (cpp/ for the C++ core, src/seqcleave/ for the Python package).
  • ✅ pybind11 bindings, a simulate() convenience API, and a working pip install . (via scikit-build-core).
  • ✅ A pytest suite (tests/) covering the Python API, a fixed-seed regression check, and a seed-independent structural invariant.
  • ✅ CI (.github/workflows/ci.yml): builds the CLI and runs the pytest suite on Linux, macOS, and Windows on every push/PR.
  • ✅ seqcleave published on PyPI, with prebuilt wheels (via cibuildwheel) for Linux, Windows, and macOS (Intel + Apple Silicon).
  • ⌛ Replace list of proteins in the configuration file with a dictionary indexed with human-readable protein names (e.g. lactoferrin).
  • ⌛ Add verbosity regulation to the seqcleave.simulate() function; at the moment, it is completely silent.
  • ⌛ Or at least, add section of the README where we explain how to see the logs on Python.
  • ⌛ Change the name of the seqcleave.example_config() to seqcleave.config_pepsin_lactoferrin(), as we might eventually add more examples.
  • ⌛ Add more examples.

Citing this software

If you use this software in your publications, please cite:

Tonda, Alberto and Grosvenor, Anita J. and Clerens, Stefan and Le Feunteun, Steven, "In silico modeling of protein hydrolysis by endoproteases: a case study on pepsin digestion of bovine lactoferrin", Food & Function, 2017, DOI: 10.1039/C7FO00830A

BibTeX entry
@article{tonda2017insilico,
    author = {Tonda, Alberto and Grosvenor, Anita and Clerens, Stefan and Le Feunteun, Steven},
    title = {In silico modeling of protein hydrolysis by endoproteases: a case study on pepsin digestion of bovine lactoferrin},
    journal = {Food \& Function},
    volume = {8},
    number = {12},
    pages = {4404-4413},
    year = {2017},
    month = {12},
    abstract = {This paper presents a novel model of protein hydrolysis and release of peptides by endoproteases. It requires the amino-acid sequence of the protein substrate to run, and makes use of simple Monte-Carlo in silico simulations to qualitatively and quantitatively predict the peptides that are likely to be produced during the course of the proteolytic reaction. In the present study, the model is applied to the case of pepsin, the gastric protease. Unlike pancreatic proteases, pepsin has a low substrate specificity and therefore displays a stochastic behavior that is particularly challenging to model and predict. Two versions of the model are studied and compared with peptidomic data obtained during pepsin hydrolysis of bovine lactoferrin. The first version of the model takes into account cleavage probabilities according to the amino acids in position P1–P1′ only, whereas the second version also accounts for the influence of neighbor amino acids (P4, P3, P2, P2′, P3′, P4′) and peptide terminal ends. The second version of the model was able to reproduce many real-world features of the reported behavior of pepsin, such as the peptide size distribution, or the quantity of free amino-acids. More remarkably, 50\% of the experimentally monitored peptides (44/87) lay within the 120 most abundant simulated peptides. The presented methodology has the advantage of being applicable not only to different proteins, but to different enzymes as well, as long as cleavage frequency data are available.},
    issn = {2042-6496},
    doi = {10.1039/c7fo00830a},
    url = {https://doi.org/10.1039/c7fo00830a},
    eprint = {https://pubs.rsc.org/fo/article-pdf/8/12/4404/5512608/c7fo00830a.pdf},
}

License

Copyright (c) 2017-2026, Alberto Tonda <alberto.tonda@gmail.com>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

nlohmann/json (vendored in cpp/thirdparty/nlohmann/) is authored by Niels Lohmann and distributed under the MIT license. spdlog (vendored in cpp/thirdparty/spdlog/) is authored by Gabi Melman and distributed under the MIT license. pybind11_json (vendored in cpp/thirdparty/pybind11_json/) is authored by Martin Renou and distributed under the BSD 3-Clause license. pybind11 itself and scikit-build-core are build-time-only dependencies (not vendored, resolved automatically by pip from pyproject.toml), both distributed under permissive licenses (BSD-style and Apache 2.0, respectively). The original tinyxml library (no longer used, kept out of the repository) was authored by Lee Thomason, Yves Berquin, and Andrew Ellerton.

In case you need help, advice, or you notice a bug, please contact Alberto Tonda <alberto.tonda@gmail.com> or open a Pull Request on GitHub.

Metadata

Release files for seqcleave 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seqcleave 0.1.1
File Size Uploaded
seqcleave-0.1.1.tar.gz 463.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for seqcleave 0.1.1
File
seqcleave-0.1.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
seqcleave-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
seqcleave-0.1.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
seqcleave-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
seqcleave-0.1.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
seqcleave-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
seqcleave-0.1.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
seqcleave-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
seqcleave-0.1.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
seqcleave-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
seqcleave-0.1.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
seqcleave-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
seqcleave-0.1.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
seqcleave-0.1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
seqcleave-0.1.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
seqcleave-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 5.6 MB

Release files / seqcleave-0.1.1.tar.gz

Download URL seqcleave-0.1.1.tar.gz
Size 463.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0a4c7541a00a036946198af42ef63b2810c8e43f32198d9f535a7e0e8511c896
BLAKE2b-256 checksum
How to use checksums
4dbe15d0fc94e673002b6a3d0b1eebfb60cca4584a1774253704507a145c8d49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp312-cp312-win_amd64.whl

Download URL seqcleave-0.1.1-cp312-cp312-win_amd64.whl
Size 451.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e79db51372e9df2d862595963ea4012554054429cb70461acc2daa1a40e06dc5
BLAKE2b-256 checksum
How to use checksums
83f6210918aecf23236091d6baeb94f5bee5f1180c26e9e91fa059edf46ee3d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL seqcleave-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 332.0 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ad2b8f94014d38398fada70572fd872670c837961cbd8b4c5d64e2abdab9472c
BLAKE2b-256 checksum
How to use checksums
a8fab28c9c6367b8b13036db1b95f46600edf44db7980fd4b460803b7f7abc62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL seqcleave-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Size 244.2 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
52480cba6fc0f39bd9ed50120012cc953be3de89c5e087af5e3fdb01e8921bdc
BLAKE2b-256 checksum
How to use checksums
b9293f8da9d7f03c5c0419a67d10093cb99d2f38065de4bcca6f6234d89c351f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL seqcleave-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl
Size 271.6 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
841a51fdad2f1871c66b8bf6a50048c6a7b6d5cd836f3da6bc1d5b1c2354e86f
BLAKE2b-256 checksum
How to use checksums
b8d506e53f8b513823757c7a8ec7c446e82c722d14032f64b166fae5c68202e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp311-cp311-win_amd64.whl

Download URL seqcleave-0.1.1-cp311-cp311-win_amd64.whl
Size 450.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5830df38e59ee208ebc396baa635542abf732a30433d91bfc5381513e91dd065
BLAKE2b-256 checksum
How to use checksums
ae2d60bdb40776d5c882ed0b90058f218fb104d1aa0ac5d8f6ef4daaf9f83c87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL seqcleave-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 332.1 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c06a01796687e32cf22aed917af9f1ed73091233e383bee6a8db2169992766f8
BLAKE2b-256 checksum
How to use checksums
566102b65583fa12ab79db6b42ae6c74a7eea50ed7c09c5b4863d33bd1a55d29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL seqcleave-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Size 243.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8c1f3ba52dc4b14f46f1814ed807cc7d21a6f96f68e64e3174d8ea9ebe1faeac
BLAKE2b-256 checksum
How to use checksums
e9e7f75058ddf23536008ef59628b379a2ab46f148a2c700bd59db4f476c57b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL seqcleave-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 271.5 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a0673e8571191991df625ab7295d168c75e2f118370af643d2608ee1869f2edb
BLAKE2b-256 checksum
How to use checksums
bb870429c2d2d8873ba09225fb0e6270cd003ce68843ee088089efc4e83d24b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp310-cp310-win_amd64.whl

Download URL seqcleave-0.1.1-cp310-cp310-win_amd64.whl
Size 448.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
33ddcbdf093b63be20babb8a48094dcd04fa2128448552fba985a0ff57a0c5c6
BLAKE2b-256 checksum
How to use checksums
a0eb28f196561d975ff70bc1154e9bb91c4f4ef3af2708f9664bbea3af6ee361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL seqcleave-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 331.1 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
206b92536dcb889d49e615b937b925c7884d9e3d58d9942d20b780ae02b6c712
BLAKE2b-256 checksum
How to use checksums
f6de31439fab9aab7cb5d175ab82901facd1f398d22a6f2b24b8a36e5246cecf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL seqcleave-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Size 242.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
289819be27bf062872d73ac062ee88be1590c19c0296a93821f851dbb0b25ba8
BLAKE2b-256 checksum
How to use checksums
1417d61a5312115d63387ec63bc84ea99636fbffd36a8af1cafdae7c4794eb09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL seqcleave-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Size 270.2 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c1b97ae5874fccf9dbba6fde9a31c2f4e8f7ef92e7a418f2aa600c6b1d6f30a8
BLAKE2b-256 checksum
How to use checksums
f239c6c14905e5fe385e0e4879633c517e73ac9947c749082adb1e57466b2e06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp39-cp39-win_amd64.whl

Download URL seqcleave-0.1.1-cp39-cp39-win_amd64.whl
Size 449.6 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
dd15b30309697ce5c422a3b30af22bb5a3845bb067fbe1ebaa1b6bf96423dba4
BLAKE2b-256 checksum
How to use checksums
51f2fce8d2ec9a943654c4352f6a0faffc9e62f45d9c19af5d83f783265107fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL seqcleave-0.1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 331.4 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9f3e1bdf62fa77cd5cc10d7a0a7e5feb0289a1add333eb405ec0d24ab7891adb
BLAKE2b-256 checksum
How to use checksums
cf33b54fd0b828191d80667941072d0268e2635cc14b83358c3ab3350de799a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL seqcleave-0.1.1-cp39-cp39-macosx_11_0_arm64.whl
Size 242.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4b0556fc27bf30318ef14298bad16282bc3e301e0fb848225b9e2b32e3782978
BLAKE2b-256 checksum
How to use checksums
b33177f37e23992607bbdd16b1bf1cd43926729dc2784dc97e0bf24e7e8005bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / seqcleave-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL seqcleave-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl
Size 270.3 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c40bb55c0b5e2aabc44c100af6db289eb4311ba16a30695fff1ecc8af1fd88ff
BLAKE2b-256 checksum
How to use checksums
9c764205341c0e91fb6038dd6bba464b59bd0022f83e6a5d8648fe1b4de4c81d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

17 release files

0.1.0

17 release files

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