Skip to main content

R

Using SEGUL API in R

We recommend to use the R package rextendr to interact with SEGUL API. Check out rsegul to see how to use rextendr to interact with SEGUL API. A comprehensive list of available SEGUL functions and how to use them is available in the SEGUL API documentation.

Step-by-step guide

Install Rust

Follow the Rust installation guide to install Rust.

Install rextendr

install.packages("rextendr")

Load rextendr

library(rextendr)

Check Rust installation

rust_sitrep()

# Rust infrastructure sitrep:
# ✔ "rustup": 1.26.0 (5af9b9484 2023-04-05)
# ✔ "cargo": 1.75.0 (1d8b05cdd 2023-11-20)
# ℹ host: aarch64-apple-darwin
# ℹ toolchain: stable-aarch64-apple-darwin
# ℹ targets: aarch64-apple-darwin, aarch64-apple-ios, aarch64-apple-ios-sim, aarch64-linux-android, armv7-linux-androideabi,
# i686-linux-android, x86_64-apple-darwin, x86_64-apple-ios, and x86_64-linux-android

Write SEGUL code in R

For example, to call the alphabet function from the segul crate:

use segul::helper::alphabet;

fn alphabet() -> String {
alphabet::DNA_STR_UPPERCASE.to_string()
}

In R, you can use the rust_source function from rextendr to call the SEGUL function.

segul_code <- r"(
use segul::helper::alphabet;

#[extendr]
fn alphabet() -> String {
alphabet::DNA_STR_UPPERCASE.to_string()
}
)"

rust_source(code = segul_code, dependencies = list(segul = "*"))

Call SEGUL function in R

alphabet()

# [1] "?-ACGTNRYSWKMBDHV."