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 into genes for each transcription factor.
  • genes — <U15 (48358): gene locus IDs indexing the columns of W (and tf_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.npzG. max gene-level TPM, 48,358 × 8,177 (1.5 GB) + gmax_sample_meta.csv (sample→SRA study).
  • athal_gene_tpm.npzA. 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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support