← All .science files
pmid:41390915
SpatialRNA: a Python package for easy application of Graph Neural Network models on single-molecule spatial transcriptomics dataset.
Ruqian Lyu · Annika Vannan · Jonathan A Kropski · Nicholas E Banovich · Davis J McCarthy
Bioinformatics (Oxford, England) · 2026 doi:10.1093/bioinformatics/btaf659
Paper
complete
Experiment
complete
Data
partial
Analysis
partial
Execution
absent
Execution evidence has not yet been added to this .science file. Explore its methods, data and open questions to plan the next step.
Record details sci_version · id · kind · revision · content_hash · schema · created_at · updated_at · generator
paper object · 10 fields
authors array · 5 items
claims array · 3 items
[0] object · 6 fields
evidence array · 1 item
[0] object · 3 fields
[1] object · 6 fields
[2] object · 6 fields
evidence array · 1 item
[0] object · 3 fields
gaps array · 0 items
experiment object · 8 fields
steps array · 3 items
[0] object · 13 fields
parameters object · 0 fields
inputs array · 1 item
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
[1] object · 13 fields
parameters object · 0 fields
inputs array · 1 item
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
[2] object · 13 fields
parameters object · 0 fields
inputs array · 1 item
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
materials array · 0 items
instruments array · 0 items
reagents array · 0 items
conditions object · 0 fields
gaps array · 0 items
data object · 3 fields
assets array · 2 items
[0] object · 15 fields
structure object · 4 fields
[1] object · 15 fields
structure object · 15 fields
sample_accessions array · 45 items
gaps array · 2 items
analysis object · 4 fields
methods array · 2 items
[0] object · 10 fields
dsl_operations array · 2 items
missing_operations array · 0 items
parameters object · 0 fields
data_shapes array · 1 item
[1] object · 10 fields
dsl_operations array · 0 items
missing_operations array · 0 items
parameters object · 0 fields
data_shapes array · 0 items
evidence object · 3 fields
targets array · 0 items
gaps array · 1 item
capability object · 3 fields
requirements array · 1 item
[0] object · 6 fields
assay_families array · 9 items
gaps array · 0 items
readiness object · 8 fields
axes object · 3 fields
method object · 5 fields
required_operations array · 2 items
missing_operations array · 0 items
capability object · 4 fields
data object · 6 fields
accessions array · 1 item
resolved_accessions array · 1 item
statements array · 1 item
can_run object · 3 fields
dsl_operations array · 2 items
assets array · 2 items
steps array · 1 item
must_build object · 5 fields
dsl_operations array · 0 items
converters array · 0 items
readers array · 0 items
capabilities array · 0 items
data_gaps array · 1 item
gaps array · 0 items
review object · 5 fields
machine_critique object · 5 fields
reader object · 5 fields
evidence_check object · 2 fields
usage object · 3 fields
stages array · 1 item
[0] object · 4 fields
gaps array · 3 items
provenance object · 7 fields
entities array · 3 items
activities array · 3 items
[0] object · 4 fields
used array · 3 items
[0] object · 3 fields
[1] object · 3 fields
[2] object · 3 fields
[1] object · 4 fields
agents array · 2 items
lineage object · 4 fields
gaps array · 7 items
assays array · 1 item
[0] object · 11 fields
required_operations array · 2 items
source_hashes object · 1 field
evidence array · 1 item
Complete file
{"sci_version": "1.2", "schema": "https://corpus.bntrg.co.uk/sci/1.0/sci.schema.json", "id": "pmid:41390915", "kind": "science-record", "revision": 3, "content_hash": "sha256:d2ef983e40981c62f5d84697ac531cc7380857ad47b436f63ebd555396db667a", "created_at": "2026-11-01T20:31:24Z", "updated_at": "2026-11-01T22:15:10Z", "generator": {"name": "corpus-assay-engine", "run_id": "reading-sci-2026-11-01"}, "paper": {"state": "complete", "title": "SpatialRNA: a Python package for easy application of Graph Neural Network models on single-molecule spatial transcriptomics dataset.", "doi": "10.1093/bioinformatics/btaf659", "pmid": "41390915", "authors": ["Ruqian Lyu", "Annika Vannan", "Jonathan A Kropski", "Nicholas E Banovich", "Davis J McCarthy"], "journal": "Bioinformatics (Oxford, England)", "year": 2026, "abstract": "SUMMARY: Image-based spatial transcriptomics (iST) deliver gene expression measurements of RNA transcripts in tissue slices with single-molecule resolution and spatial context preserved. Modern Graph Neural Network (GNN) models are promising methods for capturing the complex molecular and cellular phenotypes in tissues at single-transcript and single-cell levels. A key application of GNNs is the detection of spatial domains or niches, that is, groups of molecules and/or cells that collaboratively work together to produce complex phenotypes. Due to the vast number of detected transcripts in (iST) dataset, applying GNNs on RNA molecule graphs is not trivial. We present a Python package, SpatialRNA, for easy (sub)graph generation from tissue samples and provide comprehensive tutorials for convenient and efficient application of Graph Neural Network models under the PyG framework. This highly scalable tool comprehensively segments tissue into spatial domains, aiding in biological interpretation of iST data and its underlying molecular microenvironments.\nAVAILABILITY AND IMPLEMENTATION: The SpatialRNA package is freely accessible from online repository https://github.com/ruqianl/spatialrna and can be installed via pip. Comprehensive tutorials, guidance on parameter selection, and complete workflows of case studies are available from the documentation website https://ruqianl.github.io/spatialrna_docs/, and uploaded on Zenodo with a DOI 10.5281/zenodo.17339575.", "claims": [{"id": "claim-method", "statement": "We found that the SpatialRNA-workflow recovered true cell types robustly with different numbers of sampled edges across radius 1 and 3 [adjusted rand index (ARI) score > 0.9; Fig. 12, available as supplementary data at Bioinformatics online], which was on par with FICTURE (Si et al. 2024).", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:41390915", "locator": "sections[10] \"4 Comparing workflow variations and other methods on simulation data\" paragraph 2", "quote": "We found that the SpatialRNA-workflow recovered true cell types robustly with different numbers of sampled edges across radius 1 and 3 [adjusted rand index (ARI) score > 0.9; Fig. 12, available as supplementary data at Bioinformatics online], which was on par with FICTURE (Si et al. 2024)."}], "state": "complete"}, {"id": "claim-data-access", "statement": "Supplementary data is available at Bioinformatics online.", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:41390915", "locator": "sections[15] \"Supplementary data\" paragraph 2", "quote": "Supplementary data is available at Bioinformatics online."}], "state": "complete"}, {"id": "claim-target-result", "statement": "We present a Python package, SpatialRNA, for easy (sub)graph generation from tissue samples and provide comprehensive tutorials for convenient and efficient application of Graph Neural Network models under the PyG framework.", "kind": "qualitative", "target": null, "evidence": [{"asset": "source:pmid:41390915", "locator": "sections[0] \"Abstract\" paragraph 1", "quote": "We present a Python package, SpatialRNA, for easy (sub)graph generation from tissue samples and provide comprehensive tutorials for convenient and efficient application of Graph Neural Network models under the PyG framework."}], "state": "complete"}], "gaps": []}, "experiment": {"state": "complete", "objective": "We present a Python package, SpatialRNA, for easy (sub)graph generation from tissue samples and provide comprehensive tutorials for convenient and efficient application of Graph Neural Network models under the PyG framework.", "steps": [{"id": "read_published_estimate", "order": 1, "name": "Read the published estimate from the source", "kind": "other", "state": "complete", "blocked_on": null, "description": "The claim, method and evidence span published with the source article.", "duration_hours": null, "parameters": {}, "inputs": ["source:pmid:41390915"], "outputs": ["the published estimate and its evidence"], "instruments": [], "reagents": []}, {"id": "obtain_source_data", "order": 2, "name": "Obtain the source data from the named repository", "kind": "data-preparation", "state": "complete", "blocked_on": null, "description": "The GEO series accession resolves and its sample accessions are listed. This lane did not download the dataset or read its licence.", "duration_hours": null, "parameters": {}, "inputs": ["data:geo:GSE250346"], "outputs": ["the source data with its repository provenance"], "instruments": [], "reagents": []}, {"id": "run_analysis", "order": 3, "name": "Run the published analysis", "kind": "analysis", "state": "complete", "blocked_on": null, "description": "Apply the paper's statistical method to the resolved series and compare the result with the published target.", "duration_hours": null, "parameters": {}, "inputs": ["data:geo:GSE250346"], "outputs": ["the replicated result and its comparison"], "instruments": [], "reagents": []}], "materials": [], "instruments": [], "reagents": [], "conditions": {}, "gaps": []}, "data": {"state": "partial", "assets": [{"id": "source:pmid:41390915", "role": "manuscript", "format": "xml", "media_type": "application/xml", "uri": "https://doi.org/10.1093/bioinformatics/btaf659", "sha256": "sha256:0a4b973ac3e60e4a5206461111cb3255ebda708cec06b7d9306b41988922a2e7", "bytes": 28423, "access": "open", "state": "resolved", "reader": null, "reader_status": "reader_required", "identifier": "10.1093/bioinformatics/btaf659", "version": null, "note": "Full article fetched from PMC; the checksum covers the rendered section body, not the original XML bytes.", "structure": {"pmcid": "PMC12777972", "source": "europe_pmc_fulltext", "coverage": "whole_body", "text_hash_scope": "rendered_section_body"}}, {"id": "data:geo:GSE250346", "role": "raw", "format": "geo-series", "media_type": "application/vnd.ncbi.geo-series+json", "uri": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE250346", "sha256": null, "bytes": null, "access": "open", "state": "resolved", "reader": null, "reader_status": "reader_required", "identifier": "GSE250346", "version": null, "note": "Supplementary data is available at Bioinformatics online.", "structure": {"repository": "GEO", "access_route": "GEO accession URL", "access_statement_verbatim": "Supplementary data is available at Bioinformatics online.", "access_statement_kind": "data_availability_statement", "sample_accessions": ["GSM7990532", "GSM7990533", "GSM7990534", "GSM7990535", "GSM7990536", "GSM7990537", "GSM7990538", "GSM7990539", "GSM7990540", "GSM7990541", "GSM7990542", "GSM7990543", "GSM7990544", "GSM7990545", "GSM7990546", "GSM7990547", "GSM7990548", "GSM7990549", "GSM7990550", "GSM7990551", "GSM7990552", "GSM7990553", "GSM7990554", "GSM7990555", "GSM7990556", "GSM7990557", "GSM7990558", "GSM7990559", "GSM8505448", "GSM8505449", "GSM8505450", "GSM8505451", "GSM8505452", "GSM8505453", "GSM8505454", "GSM8505455", "GSM8505456", "GSM8505457", "GSM8505458", "GSM8505459", "GSM8505460", "GSM8505461", "GSM8505462", "GSM8505463", "GSM8505464"], "sample_count": 45, "group_sizes": null, "group_sizes_basis": null, "platform": "33762", "taxon": "Homo sapiens", "title": "Image-based spatial transcriptomics identifies molecular niche dysregulation associated with distal lung remodeling in pulmonary fibrosis [Xenium]", "resolution_checked_at": "2026-11-01T20:16:08Z", "resolution_check": "identifier_resolution_only_no_download_no_licence_read", "downloaded": false, "licence_read": false}}], "gaps": ["asset:data:geo:GSE250346 not downloaded", "asset:data:geo:GSE250346 licence not read"]}, "analysis": {"state": "partial", "methods": [{"id": "method-1", "family": "image_quantification", "specific": "segmentation", "label": "Image analysis / quantification", "dsl_operations": ["segment_objects", "quantify_intensity"], "missing_operations": [], "expressible": true, "parameters": {}, "data_shapes": ["image_stack"], "evidence": {"score": 0.8, "band": "high", "quote": "segmentation"}}, {"id": "method-2", "family": null, "specific": null, "label": "adjusted rand index (ARI) score", "dsl_operations": [], "missing_operations": [], "expressible": null, "parameters": {}, "data_shapes": [], "evidence": {"score": 1.0, "band": "verbatim", "quote": "We found that the SpatialRNA-workflow recovered true cell types robustly with different numbers of sampled edges across radius 1 and 3 [adjusted rand index (ARI) score > 0.9; Fig. 12, available as supplementary data at Bioinformatics online], which was on par with FICTURE (Si et al. 2024)."}}], "targets": [], "gaps": ["method.reader_named_unmapped"]}, "capability": {"state": "complete", "requirements": [{"capability_id": "capability:computational_analysis", "label": "Computational analysis platform", "assay_families": ["meta_analysis", "machine_learning", "survival_analysis", "statistical_regression", "pca", "molecular_docking", "network_analysis", "differential_expression", "gwas"], "availability_state": "owned", "tier_unlocked": "R1", "candidate": "Automated Assays Laravel application and simulated adapters"}], "gaps": []}, "readiness": {"state": "complete", "tier": "R1", "blocking_axis": "none", "blocked_on": "nothing:replicable_now", "axes": {"method": {"tier": "R1", "expressible": true, "required_operations": ["segment_objects", "quantify_intensity"], "missing_operations": [], "basis": "The paper names the method it used and the corpus's method extractor maps it onto the DSL catalogue: segmentation."}, "capability": {"tier": "R1", "capability_id": "capability:computational_analysis", "availability_state": "owned", "basis": "The computational analysis is owned. The physical bench the paper used is not, so a physical validation cannot be run here."}, "data": {"tier": "R1", "reachable": true, "accessions": ["GSE250346"], "resolved_accessions": ["GSE250346"], "statements": ["Supplementary data is available at Bioinformatics online."], "basis": "The paper names GSE250346 in GEO and the accession resolves in the repository. No dataset was downloaded and no licence was read."}}, "can_run": {"dsl_operations": ["segment_objects", "quantify_intensity"], "assets": ["source:pmid:41390915", "data:geo:GSE250346"], "steps": ["run_analysis"]}, "must_build": {"dsl_operations": [], "converters": [], "readers": [], "capabilities": [], "data_gaps": ["data:geo:GSE250346"]}, "gaps": []}, "review": {"state": "partial", "machine_critique": {"kind": "extraction_review", "reader": {"model": "MiniMax-M3.1-Flash", "provider": "minimax", "provider_family": "minimax", "read_at": "2026-11-01T20:08:18Z", "independence": "single_reader"}, "evidence_check": {"method": "verbatim", "availability": "verbatim"}, "calls": 5, "usage": {"prompt_tokens": 8240, "completion_tokens": 1547, "cached_tokens": 264}}, "human_critique": null, "stages": [{"id": "extraction", "state": "complete", "reader": "MiniMax-M3.1-Flash", "provider": "minimax"}], "gaps": ["review.independent_reader", "review.machine_critique", "review.human_critique"]}, "execution": {"state": "absent", "status": "not_run", "mode": null, "runs": [], "gaps": ["execution.not_run"]}, "provenance": {"entities": [{"id": "pmid:41390915", "type": "paper", "label": "pmid:41390915"}, {"id": "source:pmid:41390915", "type": "manuscript", "label": "PMID 41390915 full text"}, {"id": "data:geo:GSE250346", "type": "dataset", "label": "GEO GSE250346"}], "activities": [{"id": "activity-reading-sci-2026-11-01", "type": "classification", "used": [{"id": "pmid:41390915", "type": "paper", "label": "pmid:41390915"}, {"id": "source:pmid:41390915", "type": "manuscript", "label": "PMID 41390915 full text"}, {"id": "data:geo:GSE250346", "type": "dataset", "label": "GEO GSE250346"}], "agent": "agent:corpus-assay-engine"}, {"id": "activity-read-41390915", "type": "extraction", "used": ["source:pmid:41390915"], "agent": "agent:minimax-reader"}, {"id": "activity-resolve-GSE250346", "type": "accession_resolution", "used": ["data:geo:GSE250346"], "agent": "agent:corpus-assay-engine"}], "agents": [{"id": "agent:corpus-assay-engine", "type": "software", "label": "Corpus assay engine"}, {"id": "agent:minimax-reader", "type": "software", "label": "MiniMax literature reader"}], "source_run_id": "reading-sci-2026-11-01", "dsl_catalogue_fingerprint": "343fb30756ba6ec3", "capability_table_fingerprint": "2cb3e42f047d2ecf", "snapshot_id": "ba34b49490d9bfaf"}, "lineage": {"parent_id": "pmid:41390915", "parent_hash": "sha256:0c71dfd7ec1dd8ff29e61a9c9660b56fd2a4df557f6e42ef1844b70309db9e62", "fork_of": null, "generation": 2}, "gaps": ["asset:data:geo:GSE250346 licence not read", "asset:data:geo:GSE250346 not downloaded", "execution.not_run", "method.reader_named_unmapped", "review.human_critique", "review.independent_reader", "review.machine_critique"], "assays": [{"role": "analysis", "definition_id": "image_quantification", "definition_version": "f2132e96ae6c7a4e", "definition_digest": null, "required_operations": ["segment_objects", "quantify_intensity"], "support_state": "supported", "source_hashes": {"dsl_catalogue": "f2132e96ae6c7a4e"}, "confidence": 0.8, "evidence": ["segmentation"], "order_basis": "analysis_only", "id": "assay:1"}]}