license: cc-by-4.0
language:
- en
tags:
- biology
- genomics
- gene-regulatory-network
- protein-protein-interaction
- soybean
- plant-genomics
pretty_name: SoyGRN — soybean GRN models, inferred networks, and expression data
SoyGRN: trained models and inferred networks for soybean transcriptome-scale GRN inference
Reusable data and model release for the paper "Transcriptome-scale gene regulatory network inference in soybean: GPU-scalable tree ensembles versus a masked-expression foundation model" (Genome Biology). This is the deposited resource referenced by the manuscript's Availability of data and materials declaration and Supplementary Tables S1–S2. Analysis code is on GitHub: https://github.com/k821209/soygrn
All identifiers are Wm82.a6 (Phytozome Gmax_880_v6.0) gene loci for soybean and Araport11 for
Arabidopsis. Protein embeddings throughout are mean-pooled ESM-2 esm2_t12_35M_UR50D (480-d).
Trained models
grn_fm_W.npz — SoyGRN-FM (the network is the weight tensor)
The trained masked-expression foundation model. NumPy archive:
W— float32, shape (3419 TF × 48358 target): the signed regulator→target weight tensor; this single tensor is the entire GRN (no other reg→target path in the model).tf_idx— int64 (3419): row → index intogenesfor each transcription factor.genes— <U15 (48358): gene locus IDs indexing the columns ofW(andtf_idx).
Read out the network as the top-30 regulators per target by |W[:,j]| · std(ψ(activity)), sign from
sign(W); or apply the invariance re-ranking (Supplementary Source Code S1, grn_fm_invar.py,
γ=3) to reproduce edges_fm_invar.tsv.
import numpy as np
z = np.load("grn_fm_W.npz", allow_pickle=True)
W, tf_idx, genes = z["W"], z["tf_idx"], z["genes"]
tf_names = genes[tf_idx] # 3419 TF locus IDs
# top-10 regulators of a target gene j:
j = list(genes).index("Glyma.01G000100")
top = np.argsort(-np.abs(W[:, j]))[:10]
for r in top: print(tf_names[r], W[r, j]) # weight sign = activation(+)/repression(-)
ppi_fm_intact.pt — PPI foundation model (PyTorch)
Symmetric Siamese network over ESM-2 embeddings, trained on all 27,422 Arabidopsis IntAct
experimental-physical interactions (no holdout). This is the model applied zero-shot to soybean
in the paper (AUROC 0.953 on the ortholog-transferred gold). dict with state_dict + config.
Order-invariant: sigmoid(model(emb_a, emb_b)) = interaction probability. Architecture in
code/grn_ppi_fm_final.py (class PPIFM).
binding_promcnn.pt — TF→promoter binding model (PyTorch)
The best binding recoverer (leave-TF-out AUROC 0.825): promoter 1D-CNN (max+mean pool) + ESM-2 TF
embedding, trained on all 15,000 Arabidopsis FunTFBS binding pairs. Input = 10-channel 500 bp
promoter (4 one-hot ACGT + 6 z-scored dinucleotide DNA-shape: twist, roll, propeller, slide, rise,
tilt) and the TF ESM-2 embedding. dict with state_dict + config. Architecture in
code/grn_binding_cnn_final.py (class PromCNN).
Inferred soybean networks (TF, target, score[, sign]; tab-separated, header row)
| File | Method | Edges | Signed |
|---|---|---|---|
edges_clr.tsv |
CLR | 680,381 | no |
edges_grnboost_all.tsv |
GRNBoost2 | 4,000,000 | no |
edges_fm_invar.tsv |
SoyGRN-FM (invariance re-ranked, top-30/target) | 1,450,740 | yes (+1 activation / −1 repression) |
Protein embeddings & ortholog map
gmax_prot_esm.npz— soybean proteome ESM-2 embeddings (emb,genes); inputs to the PPI/binding models for soybean.glyma_to_athal_rbh.tsv— soybean↔Arabidopsis reciprocal-best-hit ortholog map (12,939 pairs; columns: glyma, athal, bitscore), used for cross-species PPI/binding transfer.
Large primary inputs (deposited separately as Zenodo files; not in this folder due to size)
gmax_gene_tpm.npz— G. max gene-level TPM, 48,358 × 8,177 (1.5 GB) +gmax_sample_meta.csv(sample→SRA study).athal_gene_tpm.npz— A. thaliana compendium, 27,572 × 29,089 (3.2 GB) +athal_sample_meta.csv.athal_prot_esm.npz— Arabidopsis proteome ESM-2 embeddings (training inputs for PPI/binding models).
Per-sample SRA run accessions and study (BioProject) IDs are in the *_sample_meta.csv tables.
Public input resources (PlantTFDB/PlantRegMap FunTFBS & GO, IntAct, STRING v12, JASPAR, the Wm82.a6
reference) are obtained from their original providers under their own licences and are not
re-deposited here. See Supplementary Table S1 for the full inventory.
Code
All analysis code (35 Python scripts: inference, evaluation, GO coherence, binding & PPI recovery,
the two model-training scripts above, figures) is at https://github.com/k821209/soygrn. See
Supplementary Table S2 for per-model hyperparameters. grn_fm_W.npz is produced by grn_fm.py;
ppi_fm_intact.pt by grn_ppi_fm_final.py; binding_promcnn.pt by grn_binding_cnn_final.py.
Manifest
SHA-256 checksums for all deposited files are in SHA256SUMS.txt.
Citation
If you use these models or networks, please cite the paper (DOI on publication) and this deposit.