Skip to main content

Developing Python Library using SEGUL API

We recommend to use PyO3 and Maturin to develop python library using SEGUL API. The PyO3 and Maturin documentation provides a comprehensive guide on how to use the tools. You can also checkout pysegul to see how we use SEGUL API in Python.

Quick Guideline​

Install Rust and Maturin​

  1. Install Rust
  2. Install Maturin

Create a new Rust project​

cargo new segul-python --lib

cd segul-python

Create Python project​

maturin new

Add SEGUL API as a dependency​

cargo add segul

Or add it manually in your Cargo.toml file:

[dependencies]
segul = "0.*"

Find out more about available SEGUL functions and how to use them in the SEGUL API documentation.

Add Python binding​

Add the following code in your src/lib.rs:

use pyo3::prelude::*;

use segul::helper::alphabet::DNA_STR_UPPERCASE;

// pyO3 recommend the same function name as the module name
#[pymodule]
fn segul_python(_py: Python, m: &PyModule) -> PyResult<()> {
m.add_function(wrap_pyfunction!(alphabet, m)?)?;
Ok(())
}

// Wrap SEGUL API function using pyO3 `pyfunction` macro
#[pyfunction]
fn alphabet() -> String {
DNA_STR_UPPERCASE.to_string()
}

Build the Python library​

maturin develop

Test the Python library​

import segul_python

print(segul_python.alphabet())