# MapleOmics reproducible gene workflow — 2026-09-05

This is a workflow demonstration using the site's existing example, **Atru.chr5.769_Atru** (*Acer truncatum*). It demonstrates consistent identifiers and exports across Gene, Ortholog, expression, PPI and genome BLAST. It is not evidence for a newly discovered gene function.

## Run or verify

Requires Python 3.9 or later and no third-party packages. Live reproduction requires internet access and submits one small BLAST search (a 1,223 nt genomic interval, one target). No login, random sampling, raw-read download or database write is involved.

From this extracted directory:

```sh
python3 reproduce.py fresh_results
python3 reproduce.py --verify fresh_results
# Or verify the included snapshot without network access:
python3 reproduce.py --verify snapshot
```

Use a new output directory for each live run. A failed HTTP request or a failed check stops the script; partially saved responses remain for inspection. Results may change with future site updates. The snapshot records UTC retrieval times, exact API URLs, the BLAST request and SHA-256 checksums. The outer ZIP checksum is published beside the download link.

## Saved example results

- Gene and Ortholog both identify **OG0013284**: 14 members across 14 species, including the query and 13 other members. `orthogroup_members.tsv` retains species codes and source-qualified IDs; bare gene IDs alone are not globally unique.
- `expression_tpm.tsv` contains 10 tissue/stage summaries. For this snapshot Leaf is 123.9969 TPM and Root 6.3949 TPM. These are descriptive tissue averages, not a controlled differential-expression comparison. The generic Seed entry and individual seed stages are separate labels, not replicates.
- `ppi_returned_subset.tsv` contains the 100 incident interaction records returned by the API (scores 374–892). The endpoint returns at most the 100 highest-scoring records before any display filter. This is neither a complete network export nor experimental validation of physical interactions.
- `query.fasta` is the genomic interval chr5:7,622,960–7,624,182 (+), 1,223 nt, without flanks. It is not a spliced CDS. BLAST parameters are `blastn`, `genome`, E-value `1e-5`, `max_target_seqs=1`. The saved hit covers the same 1,223 nt at 100% identity. This identity check does not validate a PCR assay or establish specificity at other search thresholds.
- The description referring to *Acer yangbiense* is a similarity annotation. The record's species remains *Acer truncatum*. Annotation and orthology are computational evidence, not experimental proof of function.

The script checks species-qualified identity, the agreement of orthogroups, species labels and unique tissue labels in expression, incident PPI endpoints, genomic length, and the full-length BLAST match and coordinates. `manifest.json` records all raw response hashes and derived-file hashes. The six `.json` responses remain unchanged; the TSVs are convenience exports.

## Browser entry points

- [Gene and expression](https://www.mapleomics.com/gene.html?gene=Atru.chr5.769_Atru)
- [Ortholog search](https://www.mapleomics.com/gene.html?gene=Atru.chr5.769_Atru&view=ortholog)
- [PPI viewer](https://www.mapleomics.com/ppi.html?protein=Atru.chr5.769)
- [BLAST](https://www.mapleomics.com/blast.html)
- [Data sources and limitations](https://www.mapleomics.com/data.html)
- [API documentation](https://www.mapleomics.com/api.html)

## Scope and reuse

This bundle contains public website responses and a small reproduction script, not raw sequencing data, full expression matrices or a frozen database release. Ribo differential/TE, WGBS signal interpretation, and the separate GWAS cohort are outside this example. Consult original dataset references and their reuse terms; public API access alone does not establish a redistribution license for every upstream dataset. No new upstream license is asserted here.
