Testing for Network Specificity in Brain-Behavior Associations Using Ordinal Dominance Curves.
The 5 matches
- [1] § Methods › Null Hypothesis ↔ R/NETDOM.R, lines 1–52 · score 0.54 · linear regression model, network map, outside, variable, NETDOM
- [2] § Methods › Network Enrichment Testing Framework › NETDOM Overview ↔ Python/example.ipynb, lines 52–73 · score 0.54 · Freedman Lane procedure, regression model, phenotype, matrix, location, permutation
- [3] § Methods › Null Hypothesis ↔ R/NEST.R, lines 1–49 · score 0.52 · linear regression model, network map, outside, variable, enrichment
- [4] § Methods › Plasmode Simulations ↔ Python/example.ipynb, lines 52–73 · score 0.51 · Freedman Lane, regression model, linear model, covariates, vector, fit
- [5] § Methods › Data › Adolescent Brain Cognitive Development Study ↔ Python/example.ipynb, lines 14–36 · score 0.51 · medial wall, sex, age, demographic, vertex, Brain
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Jupyter notebook · 105 lines · 5 KB · no license · 3 matches
- # %% [markdown]
- # #### Step 1: Prepare the data
- # %% [markdown]
- # import necessary libraries for loading the data:
- #
- # nibabel for reading and writing neuroimaging data.
- # numpy for numerical operations and array handling.
- # %%
- import nibabel as nb
- import numpy as np
- # %% [markdown]
- # This cell loads and preprocesses the brain imaging data and phenotype (demographic) information:
- #
- # - Brain imaging data (cifti_data) is loaded from a .nii file.
- # - Network labels (network_label) are loaded and filtered to remove unspecified indices (-1).
- # - Binary vectors (net_6, net_7) are created for two specific networks, indicating vertex membership.
- # - Phenotype data (age, sex) is loaded and combined into a single array (phenotype).
- # %%
- # load brain imaging data
- cifti_data = nb.load('./Dataset/HCP_WB_Tutorial_1.0/Q1-Q6_R440.All.sulc.32k_fs_LR.dscalar.nii').get_fdata(dtype=np.float32) # (replace with code to load your data)
- network_labels = np.load('./Dataset/network_label_yeo7.npz')['arr_0'] # (replace with code to load your network labels)
- idx = network_labels!=-1 # identify which locations should be ignored (e.g., medial wall)
- network_label = network_labels[idx] # remove labels outside idx
- X = cifti_data[:,idx] # subset image (X) locations to idx
- # generate binary vector for each network, 0-> specific vertex does not belong to the network, 1-> specific vertex belongs to the network.
- net_7 = np.where(network_label!=7,0,1) # create a binary vector with 1's at locations corresponding to network 7 and 0's at locations outside network 7
- # Phenotype of interest (y) and covariates (Z)
- y = np.load('./Dataset/R440_age.npz')['arr_0'] # replace with code to load your phenotype (e.g., age)
- Z = np.load('./Dataset/R440_gender.npz')['arr_0'] # replace with code to load other covariates/confounders (e.g., sex)
- # %% [markdown]
- # Print the shapes of the processed data arrays to verify their dimensions, ensuring they are correct for subsequent analysis. In this example, the sample size is 440 and number of vertices is 58606.
- # %%
- X.shape, y.shape, Z.shape, net_7.shape
- # %% [markdown]
- # #### Step 2: Import the NEST package after the installation.
- #
- # The package can be installed via 'pip install nest-sw'
- # %%
- from NEST import nest
- # %% [markdown]
- # #### Step 3: Define the following dictionary of arguments passed to the nest method. The args can be defined as follows, assuming vertex-wise linear models will be fit to estimate local brain-phenotype associations (i.e., specifying statFun='lm' in step 4.).
- #
- # - X: N x P matrix (numpy array) of P imaging features (e.g., vertices) for N participants.
- #
- # - y: N-dimensional vector of phenotype of interest (i.e., testing enrichment of X-y associations).
- #
- # - Z: Optional. Specify one or more covariates (matrix with N rows and q columns for q covariates). Default is NULL (no covariates to be included).
- #
- # - FL: Optional (default is False). Set to True to use Freedman-Lane procedure to account for dependence between covariates in permutation.
- #
- # - n_perm: Optional (default is 999, with smallest possible p-value of 1/1000).
- # %%
- args = {
- 'X': X, # brain measurements (dimension N subjects x P image locations).
- 'y': y, # phenotype of interest (dimension N).
- 'Z': Z, # covariates (dimension (N x # number of covariates).
- 'type': 'coef', # what type of test statistic to extract from linear regression model.
- 'FL': False, # Not use Freedman-Lane procedure.
- 'n_perm': 999 # how many permutations to use to obtain null distribution.
- }
- # %% [markdown]
- # ##### Step 4: Apply NEST to test enrichment of brain-phenotype associations in specified network.
- # %%
- pval,ES_obs,ES_null,_ = nest(statFun='lm', # use linear regression to get vertex-level test statistics
- args=args, # arguments specified above (specific to statFun="lm")
- net_maps=net_7, # list of binary indicating locations inside (1) or outside (1) network(s) of interest.
- one_sided=True, # Determines whether the enrichment score calculation should consider only the positive alignment (True) or both directions (False).
- seed=None, # Random seed for reproducible permutation. Default is None.
- )
- # %% [markdown]
- # Print the p-value and observed enrichment score
- # %%
- pval
- # %% [markdown]
- # Print the enrichment scores for null distribution
- # %% [markdown]
- # NEST also supports the use of customized statistical functions for calculating associations.
- # This advanced feature allows for more tailored analysis that fits specific research questions or datasets.
- # To utilize a custom statistical function, specify the arguments `statFun = 'custom'` and `statFun_custom = custom_func`
- # alongside the corresponding arguments required by your function.
- # %%
- pval,ES_obs,ES_null,_ = nest(statFun='custom',args=custom_args,net_maps=net_7,statFun_custom = custom_func) # custom_fun is your customized statistical functions for calculating associations.
- # %%
example.ipynb at commit b5d8213, no license · at the source
Overview
13 affiliations
- Penn Statistics in Imaging and Visualization Endeavor, Department of Biostatistics, Epidemiology, and Informatics, Perelman School of Medicine University of Pennsylvania Philadelphia Pennsylvania USA
- Department of Epidemiology and Biostatistics Temple University College of Public Health Philadelphia Pennsylvania USA
- Penn Lifespan Informatics and Neuroimaging Center, Department of Psychiatry, Perelman School of Medicine University of Pennsylvania Philadelphia Pennsylvania USA
- Lifespan Brain Institute (LiBI) Children’s Hospital of Pennsylvania and Perelman School of Medicine Philadelphia Pennsylvania USA
- Department of Psychiatry, Perelman School of Medicine University of Pennsylvania Philadelphia Pennsylvania USA
- Center for AI and Data Science for Integrated Diagnostics (AI2D), Perelman School of Medicine University of Pennsylvania Philadelphia Pennsylvania USA
- Department of Radiology, Perelman School of Medicine University of Pennsylvania Philadelphia Pennsylvania USA
- Center for Biomedical Image Computation and Analytics (CBICA), Perelman School of Medicine University of Pennsylvania Philadelphia Pennsylvania USA
- Department of Psychological Sciences University of Connecticut Storrs Connecticut USA
- Institute for the Brain and Cognitive Sciences University of Connecticut Storrs Connecticut USA
- Department of Child and Adolescent Psychiatry and Behavioral Science Children’s Hospital of Philadelphia Philadelphia Pennsylvania USA
- Department of Biostatistics Vanderbilt University Medical Center Nashville Tennessee USA
- Section on Developmental Neurogenomics National Institute of Mental Health Intramural Research Program Bethesda Maryland USA
Abstract
Interpreting brain‐behavior relationships through the lens of anatomical parcellations or functional networks is commonplace in human brain mapping. However, statistical approaches for testing whether brain–behavior associations are stronger (i.e., enriched) within a region of interest remain underdeveloped. Here, we propose a permutation‐based approach for network enrichment testing using ordinal dominance curves (NETDOM). In simulation studies, we demonstrate that NETDOM properly controls the type I error rate—unlike other prominent enrichment methods—while exhibiting increased statistical power when enrichment occurs in a subset of in‐network locations. Using data from two large‐scale neurodevelopmental cohorts, we illustrate that NETDOM effectively detects enriched associations between structural and functional brain measures and neurocognitive performance.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 5 matches between paragraphs and lines of code.
smweinst/NEST
b5d8213773af7f177b3da315863f735ddd88a2aa, 23 January 2025Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
17 files
- Python/
NEST.py , Python, 109 lines - Python/
checkArgs.py , Python, 45 lines - Python/
enrichScore.py , Python, 57 lines - Python/
example.ipynb , Jupyter, 105 lines, 3 matches - Python/
example.py , Python, 28 lines - Python/
pvalFun.py , Python, 6 lines - Python/
statFun_gam_deltaRsq.py , Python, 55 lines - Python/
statFun_lm.py , Python, 73 lines - R/
NEST.R , R, 184 lines, 1 match - R/
checkArgs.R , R, 54 lines - R/
enrichScore.R , R, 44 lines - R/
pvalFun.R , R, 10 lines - R/
statFun.gam.deltaRsq.R , R, 86 lines - R/
statFun.gam.mvwald.R , R, 95 lines - R/
statFun.lm.R , R, 92 lines - R/
statFun_helper.R , R, 29 lines - README.md, Text, 10 lines
Nhillman19/NETDOM
cca7fbc1331ec15049913c6a7f10db3686f85086, 15 April 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
10 files
- R/
NETDOM.R , R, 242 lines, 1 match - R/
checkArgs.R , R, 54 lines - R/
enrichScore.R , R, 44 lines - R/
pvalFun.R , R, 10 lines - R/
statFun.gam.deltaRsq.R , R, 87 lines - R/
statFun.gam.mvwald.R , R, 95 lines - R/
statFun.lm.R , R, 107 lines - R/
statFun.lm.fast.R , R, 109 lines - R/
statFun_helper.R , R, 30 lines - README.md, Text, 8 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 25 scripts, each with its path and the digest of its content;
- 5 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data Availability Statement
Neuroimaging and behavioral data were obtained from the Philadelphia Neurodevelopmental Cohort (PNC) and Adolescent Brain Cognitive Development (ABCD) study. Access to PNC data can be requested at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 14 authors, 7 keywords, 7 MeSH terms, 5 funders, 80 references.
Cite
This paper
Hillman, N., Weinstein, S. M., Bagautdinova, J., Sun, K. Y., Cieslak, M., Salo, T., Fan, Y., Keller, A. S., Alexander‐Bloch, A. F., Vandekar, S. N., Raznahan, A., Satterthwaite, T. D., Shou, H., & Shinohara, R. T. (2026). Testing for Network Specificity in Brain-Behavior Associations Using Ordinal Dominance Curves. Human brain mapping, 47(5), e70493. https://
BibTeX
@article{hillman2026test
author = {Hillman, Noah and Weinstein, Sarah M. and Bagautdinova, Joëlle and Sun, Kevin Y. and Cieslak, Matthew and Salo, Taylor and Fan, Yong and Keller, Arielle S. and Alexander‐Bloch, Aaron F. and Vandekar, Simon N. and Raznahan, Armin and Satterthwaite, Theodore D. and Shou, Haochang and Shinohara, Russell T.},
title = {{Testing for Network Specificity in Brain-Behavior Associations Using Ordinal Dominance Curves}},
journal = {Human brain mapping},
year = {2026},
month = apr,
volume = {47},
number = {5},
pages = {e70493},
publisher = {Wiley},
issn = {1065-9471},
doi = {10.1002/
url = {https://
pmid = {41872989},
pmcid = {PMC13081700}
}
RIS
TY - JOUR
AU - Hillman, Noah
AU - Weinstein, Sarah M.
AU - Bagautdinova, Joëlle
AU - Sun, Kevin Y.
AU - Cieslak, Matthew
AU - Salo, Taylor
AU - Fan, Yong
AU - Keller, Arielle S.
AU - Alexander‐Bloch, Aaron F.
AU - Vandekar, Simon N.
AU - Raznahan, Armin
AU - Satterthwaite, Theodore D.
AU - Shou, Haochang
AU - Shinohara, Russell T.
TI - Testing for Network Specificity in Brain-Behavior Associations Using Ordinal Dominance Curves
T2 - Human brain mapping
J2 - Hum Brain Mapp
PY - 2026
DA - 2026/
VL - 47
IS - 5
SP - e70493
SN - 1065-9471
PB - Wiley
DO - 10.1002/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1002/
"type": "article-journal",
"title": "Testing for Network Specificity in Brain-Behavior Associations Using Ordinal Dominance Curves",
"container-title": "Human brain mapping",
"author": [
{
"family": "Hillman",
"given": "Noah"
},
{
"family": "Weinstein",
"given": "Sarah M."
},
{
"family": "Bagautdinova",
"given": "Joëlle"
},
{
"family": "Sun",
"given": "Kevin Y."
},
{
"family": "Cieslak",
"given": "Matthew"
},
{
"family": "Salo",
"given": "Taylor"
},
{
"family": "Fan",
"given": "Yong"
},
{
"family": "Keller",
"given": "Arielle S."
},
{
"family": "Alexander‐Bloch",
"given": "Aaron F."
},
{
"family": "Vandekar",
"given": "Simon N."
},
{
"family": "Raznahan",
"given": "Armin"
},
{
"family": "Satterthwaite",
"given": "Theodore D."
},
{
"family": "Shou",
"given": "Haochang"
},
{
"family": "Shinohara",
"given": "Russell T."
}
],
"container-title-short":
"volume": "47",
"issue": "5",
"page": "e70493",
"DOI": "10.1002/
"PMID": "41872989",
"PMCID": "PMC13081700",
"ISSN": "1065-9471",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
1
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s41467-026-74153-2 [code]
- Regional, functional and transcriptomic decoding of multidimensional brain structure alterations in obsessive-compulsive disorder.Journal: Nature communicationsIn common: statsmodels, NiBabel, scikit-learn, 1 other tool, 8 references
- [2] doi:10.1038/s41467-026-73668-y [code]
- Convergent and divergent brain-cognition development in early adolescence.Journal: Nature communicationsIn common: NiBabel, scikit-learn, NumPy, 8 references
- [3] doi:10.7554/elife.103097 [code]
- Canonical neurodevelopmental trajectories of structural and functional manifolds.Journal: eLifeIn common: mgcv, statsmodels, NiBabel, 2 other tools, 6 references
- [4] doi:10.1002/advs.202523009 [code]
- Personalized Network-Guided Neuromodulation Enhances Human Working Memory.Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)In common: mgcv, statsmodels, scikit-learn, 1 other tool, 5 references
- [5] doi:10.1038/s41562-026-02447-y [code]
- Feature selection leads to divergent neurobiological interpretations of brain-based machine learning biomarkers.Journal: Nature human behaviourIn common: 8 references
- [6] doi:10.1038/s41467-026-73072-6 [code]
- Mapping the spatiotemporal continuum of structural connectivity development across the human connectome in youth.Journal: Nature communicationsIn common: mgcv, statsmodels, NiBabel, 1 other tool, 5 references
- [7] doi:10.1038/s41467-026-73262-2 [code]
- Robust but independent sex differences in human brain function, structure, and behavior.Journal: Nature communicationsIn common: 6 references, author Armin Raznahan
- [8] doi:10.1038/s41467-026-75959-w [code]
- Charting higher-order models of brain function beyond pairwise interactions.Journal: Nature communicationsIn common: statsmodels, NiBabel, scikit-learn, 1 other tool, 5 references
- [9] doi:10.1038/s41467-026-72940-5 [code]
- Cerebellar growth is associated with domain-specific cerebral maturation and socio-linguistic behavior.Journal: Nature communicationsIn common: statsmodels, NiBabel, scikit-learn, 1 other tool, 4 references
- [10] doi:10.1002/hbm.70605 [code]
- BrainEnrich: Revealing Biological Insights for Imaging-Derived Phenotypes Through Transcriptomic Enrichment.Journal: Human brain mappingIn common: NiBabel, scikit-learn, NumPy, 5 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 2 repositories of the authors' code, each at its verified commit and with its license, 25 scripts, and 5 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:4ce34aef781b9025…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
