Skip to content

Headless JSON API mode for external tool integration #246

Description

@light-suzuki

Problem

R/qtl2 is the gold standard for biparental QTL mapping, but calling it from external applications (Excel add-ins, Python wrappers, web services) requires either:

  1. Writing intermediate CSV/TSV files and shelling out to Rscript
  2. Using rpy2 which adds complex dependency management
  3. Writing custom R wrapper scripts that parse CLI arguments

Each frontend re-invents this wrapper, leading to fragmentation and maintenance burden.

Feature request

An optional headless/JSON mode that:

  • Accepts input via JSON (or JSON + CSV for large genotype matrices)
  • Returns results as JSON (LOD scores, peaks, support intervals, permutation thresholds)
  • Runs as a single CLI command
  • Could be a thin wrapper package (e.g. churchill-lab/qtl2api)

Use case

ExcelMapBasedQTL (https://github.com/light-suzuki/Genotype) is an Excel VSTO add-in for map-based QTL narrowing of F2 populations. It currently integrates R/qtl2 via a custom r/qtl2_scan.R script. A standardized JSON API would make this integration reproducible across frontends and reduce wrapper code.

Other projects with the same need:

  • QTL IciMapping headless pipeline integration
  • Galaxy workflow system QTL tools
  • Web-based QTL dashboards (Shiny/Streamlit)

Why this matters

  • Reproducibility: a JSON contract is versionable and testable
  • Interoperability: Python, C#, JavaScript frontends all speak JSON natively
  • CI/validation: input/output schemas can be validated without R
  • Lowers barrier: users of Excel/Galaxy/web tools can access R/qtl2 without writing R code

Would the maintainers consider adding or documenting a stable JSON-based headless interface?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions