Brain functional network connectivity interpolation characterizes the neuropsychiatric continuum and heterogeneity.
The 10 matches
- [1] § Methods › Data › Datasets ↔ data/utils.py, lines 24–57 · score 0.94 · Negative Syndrome Scale, invalid diagnostic, verbal learning, cognitive scores, working memory, CMINDS
- [2] § Methods › Data › Datasets ↔ visualization/plot_cognitive_score.ipynb, lines 88–206 · score 0.82 · composite scores, verbal learning, cognitive scores, working memory, PANSS, vigilance
- [3] § Results › sFNC interpolation captures the psychosis continuum and heterogeneity ↔ data/utils.py, lines 24–57 · score 0.76 · verbal learning, FBIRN subjects, cognitive scores, working memory, CMINDS, PANSS
- [4] § Methods › Data › Datasets ↔ data/utils.py, lines 60–89 · score 0.74 · Autism Diagnostic Observation, ADOS scores, Schedule, age, ABIDE, ASD
- [5] § Results › sFNC interpolation captures the psychosis continuum and heterogeneity ↔ visualization/plot_cognitive_score.ipynb, lines 88–206 · score 0.73 · composite scores, verbal learning, cognitive scores, working memory, PANSS, gender
- [6] § Methods › Variational autoencoders ↔ interpolation/interp_dfnc_asd.ipynb, lines 328–410 · score 0.66 · learning rate scheduler, PyTorch, Adam, epochs, optimizer, loss
- [7] § Methods › Variational autoencoders ↔ interpolation/interp_dfnc_sz.ipynb, lines 291–373 · score 0.66 · learning rate scheduler, PyTorch, Adam, epochs, optimizer, loss
- [8] § Results › sFNC interpolation captures the psychosis continuum and heterogeneity ↔ visualization/plot_cognitive_score.ipynb, lines 217–226 · score 0.57 · cognitive scores, composite scores, S23, speed, diagnostic, sFNC
- [9] § Methods › Variational autoencoders ↔ models/ivae.py, lines 133–205 · score 0.57 · decoder parameterized, encoder parameterized, log
- [10] § Results › sFNC interpolation captures the psychosis continuum and heterogeneity ↔ visualization/plot_mse.ipynb, lines 49–78 · score 0.50 · squared errors, MSE, S13, sFNC, patients, FBIRN
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
Python · 306 lines · 12 KB · Apache-2.0 · 3 matches
- import glob
- import mat73
- import numpy as np
- import scipy.io as sio
- import scipy.stats as stats
- def to_one_hot(x, m=None):
- if type(x) is not list:
- x = [x]
- if m is None:
- ml = []
- for xi in x:
- ml += [xi.max() + 1]
- m = max(ml)
- dtp = x[0].dtype
- xoh = []
- for i, xi in enumerate(x):
- xoh += [np.zeros((xi.size, int(m)), dtype=dtp)]
- xoh[i][np.arange(xi.size), xi.astype(int)] = 1
- return xoh
- def load_sz_score(filename):
- """
- Load FBIRN subject measures
- :param filepath: filepath to the dataset
- :return valid_score: valid subject measures
- :return invalid_sub_ind: invalid subject indices
- """
- data_dict = mat73.loadmat(filename)
- keys = ['diagnosis(1:sz; 2:hc)','PANSS(positive)','PANSS(negative)',\
- 'SpeedOfProcessing','AttentionVigilance','WorkingMemory','VerbalLearning',\
- 'VisualLearning','ReasoningProblemSolving','CMINDS_composite', \
- 'age', 'gender(1:male; 2:female)', 'Site'] # PANSS: The Positive and Negative Syndrome Scale
- ind = [data_dict['FILE_ID'].index(i) for i in keys]
- score = data_dict['analysis_SCORE'][:,ind] # FBIRN:311x10
- n_sub = score.shape[0]
- for i in range(n_sub):
- if score[i,0]==2 and score[i,1]==-9999: #for positive PANSS, if CTR has -9999, assign minimal possible score 7
- score[i,1] = 7
- if score[i,0]==2 and score[i,2]==-9999: #for negative PANSS, if CTR has -9999, assign minimal possible score 7
- score[i,2] = 7
- # remove subjects with nan or -9999 entry
- invalid_score_ind = np.argwhere((np.isnan(score)) | (score==-9999))
- invalid_sub_ind = np.unique(invalid_score_ind[:,0])
- invalid_cognitive_score_ind = np.argwhere((np.isnan(score[:,3:])) | (score[:,3:]==-9999)) # remove subjects with cognitive score nan or -9999
- invalid_diagnosis_score_ind = np.argwhere((np.isnan(score[:,:3])) | (score[:,:3]==-9999)) # remove subjects with diagnosis score nan or SZ -9999
- invalid_score_ind = np.hstack([invalid_cognitive_score_ind[:,0], invalid_diagnosis_score_ind[:,0]])
- invalid_sub_ind = np.unique(invalid_score_ind)
- score_valid = np.delete(score, invalid_sub_ind, 0)
- return score_valid, invalid_sub_ind
- def load_asd_score(filename):
- """
- Load ABIDE subject measures
- :param filepath: filepath to the dataset
- :return valid_score: valid subject measures
- :return site_valid: valid site labels
- :return invalid_sub_ind: invalid subject indices
- """
- data_dict = mat73.loadmat(filename)
- keys = ['DX_GROUP', 'ADOS_TOTAL', 'AGE_AT_SCAN', 'SEX'] # DX: 1 ASD, 2 CTR; ADOS: Autism Diagnostic Observation Schedule
- ind = [data_dict['FILE_ID'].index(i) for i in keys]
- site_ind = data_dict['FILE_ID'].index('SITE_ID')
- score_str_list = data_dict['analysis_SCORE_str']
- site_list = [score_str[site_ind] for score_str in score_str_list]
- score = data_dict['analysis_SCORE'][:,ind] # ABIDE1:869
- # set CTR ADOS score to 0
- missing_ados_ind = np.where( (score[:,0]==2) & (np.isnan(score[:,1])) )[0]
- score[missing_ados_ind, 1] = 0
- invalid_score_ind = np.argwhere(np.isnan(score))
- invalid_sub_ind = np.unique(invalid_score_ind[:,0])
- score_valid = np.delete(score, invalid_sub_ind, 0)
- site_valid = np.delete(site_list, invalid_sub_ind)
- return score_valid, site_valid, invalid_sub_ind
- def load_sfnc(filename, nan_sub_ind=None):
- """
- Load sFNC data
- :param filepath: filepath to the dataset
- :param nan_sub_ind: invalid subject indices
- :return sfnc_triu: sFNC upper triangle data
- :return sfnc_raw: raw sFNC data
- """
- if 'ABIDE' in filename:
- data_dict = sio.loadmat(filename)
- else:
- data_dict = mat73.loadmat(filename)
- sfnc = data_dict['sFNC']
- sfnc_matrix_valid = np.delete(sfnc, nan_sub_ind, 0)
- # reshape sFNC
- sfnc_vector_valid = []
- for i in range(sfnc_matrix_valid.shape[0]):
- tmp = sfnc_matrix_valid[i]
- # only use the lower triangular part of the FNC (diagonal is all ones) and upper and lower triangular are mirrored
- tmp = tmp[np.triu_indices(53, 1)]
- sfnc_vector_valid.append(tmp)
- sfnc_vector_valid = np.array(sfnc_vector_valid)
- return sfnc_vector_valid, sfnc_matrix_valid
- def load_dfnc(filepath, nan_sub_ind=None, dataset='FBIRN'):
- """
- Load dFNC data
- :param filepath: filepath to the dataset
- :param nan_sub_ind: invalid subject indices
- :return dfnc_tensor_valid: dFNC data
- """
- filelist = glob.glob(filepath)
- filelist.sort()
- dfnc_list = []
- if dataset.lower() == 'fbirn':
- for f in filelist:
- data_dict = sio.loadmat(f)
- dfnc = data_dict['FNCdyn']
- dfnc_list.append(dfnc)
- elif dataset.lower() == 'abide':
- for f in filelist:
- data_dict = mat73.loadmat(f)
- dfnc = data_dict['FNCdyn']
- dfnc_list.append(dfnc)
- dfnc_tensor = np.array(dfnc_list)
- dfnc_tensor_valid = np.delete(dfnc_tensor, nan_sub_ind, 0)
- return dfnc_tensor_valid
- def vector2matrix(vector):
- """
- Convert a 1378x1 FNC vector to a 53x53 FNC matrix
- :param vector: 1378x1 FNC vector
- :return matrix: 53x53 FNC matrix
- """
- matrix = np.zeros((53, 53))
- matrix[np.triu_indices(53, 1)] = vector
- matrix[np.tril_indices(53, -1)] = matrix.T[np.tril_indices(53, -1)]
- matrix[np.diag_indices(53)] = 1
- return matrix
- def compute_sub_per_state(kmeans_label, n_pt, n_state=5, n_window=137):
- """
- Compute the number of subjects per state
- :param kmeans_label: kmeans label
- :param n_pt: number of patients
- :param n_state: number of states
- :param n_window: number of windows
- :return num_sub_per_state: number of subjects per state
- :return ratio_sub_per_state: ratio of subjects per state
- """
- num_sub_per_state = np.zeros((2,n_state)) # 1st row: patient; 2nd row: control
- for i, j in enumerate(range(0,len(kmeans_label),n_window)):
- if i < n_pt:
- for k in range(5):
- if np.any(kmeans_label[j:j+n_window] == k):
- num_sub_per_state[0,k] += 1
- else:
- for k in range(5):
- if np.any(kmeans_label[j:j+n_window] == k):
- num_sub_per_state[1,k] += 1
- ratio_sub_per_state = num_sub_per_state / np.sum(num_sub_per_state, axis=0)
- return num_sub_per_state, ratio_sub_per_state
- def compute_fnc_per_state(kmeans_label, n_pt, n_state=5, n_window=137):
- """
- Compute the number of FNCs per state
- :param kmeans_label: kmeans label
- :param n_pt: number of patients
- :param n_state: number of states
- :param n_window: number of windows
- :return num_fnc_per_state: number of FNCs per state
- :return ratio_fnc_per_state: ratio of FNCs per state
- """
- num_fnc_per_state = np.zeros((2,n_state)) # 1st row: patient; 2nd row: control
- for i in range(len(kmeans_label)):
- if i < n_pt * n_window:
- num_fnc_per_state[0,kmeans_label[i]] += 1
- else:
- num_fnc_per_state[1,kmeans_label[i]] += 1
- ratio_fnc_per_state = num_fnc_per_state / np.sum(num_fnc_per_state, axis=0)
- return num_fnc_per_state, ratio_fnc_per_state
- def compute_dwell_state(kmeans_label_2d, sorted_state_ind, n_pt, n_hc, n_state=5):
- """
- Compute the occupancy rate per state
- :param kmeans_label_2d: kmeans label
- :param sorted_state_ind: sorted state indices
- :param n_pt: number of patients
- :param n_hc: number of controls
- :param n_state: number of states
- :return dwell_state_mean_pt: mean of occupancy rate for patients
- :return dwell_state_ste_pt: standard error of occupancy rate for patients
- :return dwell_state_mean_hc: mean of occupancy rate for controls
- :return dwell_state_ste_hc: standard error of occupancy rate for controls
- :return dwell_state_pvalue: p-value of t-test between patients and controls
- """
- n = kmeans_label_2d.shape[0]
- dwell_state = np.zeros((n, n_state))
- for i in range(n):
- for k in range(n_state):
- dwell_state[i,k]=len(np.where(kmeans_label_2d[i,:]==k)[0])
- dwell_state_sorted = dwell_state[:, sorted_state_ind]
- dwell_state_mean_pt = np.mean(dwell_state_sorted[:n_pt, :], axis=0)
- dwell_state_std_pt = np.std(dwell_state_sorted[:n_pt, :], axis=0)
- dwell_state_ste_pt = dwell_state_std_pt/np.sqrt(n_pt)
- dwell_state_mean_hc = np.mean(dwell_state_sorted[n_pt:, :], axis=0)
- dwell_state_std_hc = np.std(dwell_state_sorted[n_pt:, :], axis=0)
- dwell_state_ste_hc = dwell_state_std_hc/np.sqrt(n_hc)
- dwell_state_pvalue = np.zeros(n_state)
- for i in range(n_state):
- dwell_state_pt = dwell_state_sorted[:n_pt, i]
- dwell_state_hc = dwell_state_sorted[n_pt:, i]
- _, dwell_state_pvalue[i] = stats.ttest_ind(a=dwell_state_pt, b=dwell_state_hc)
- return dwell_state_mean_pt, dwell_state_ste_pt, dwell_state_mean_hc, dwell_state_ste_hc, dwell_state_pvalue
- def compute_transition_matrix(kmeans_label_2d, sorted_state_ind, n_pt, n_state=5, n_window=137):
- """
- Compute the transition matrix
- :param kmeans_label_2d: kmeans label
- :param sorted_state_ind: sorted state indices
- :param n_pt: number of patients
- :param n_state: number of states
- :param n_window: number of windows
- :return transition_matrix_pt: transition matrix for patients
- :return transition_matrix_hc: transition matrix for controls
- :return transition_matrix: transition matrix
- :return transition_matrix_pvalue: p-value of t-test between patients and controls
- """
- n = kmeans_label_2d.shape[0]
- mapping = {}
- for k in range(n_state):
- mapping[k] = np.where(sorted_state_ind==k)[0][0]
- transition_matrix = np.zeros((n, n_state, n_state))
- for i in range(n):
- for t in range(n_window-1):
- state_t1 = mapping[kmeans_label_2d[i,t]]
- state_t2 = mapping[kmeans_label_2d[i,t+1]]
- if state_t1 != state_t2:
- transition_matrix[i, state_t1, state_t2] += 1
- transition_matrix_pt = np.mean(transition_matrix[:n_pt,:,:], axis=0)/n_window
- transition_matrix_hc = np.mean(transition_matrix[n_pt:,:,:], axis=0)/n_window
- transition_matrix_pvalue = np.zeros((n_state, n_state))
- for i in range(n_state):
- for j in range(n_state):
- _, transition_matrix_pvalue[i,j] = stats.ttest_ind(a=transition_matrix[:n_pt,i,j], b=transition_matrix[n_pt:,i,j])
- return transition_matrix_pt, transition_matrix_hc, transition_matrix, transition_matrix_pvalue
- def find_unique_ind(sorted_state_ind, corr, ratio_fnc_per_state, n_state=5):
- """
- Find unique sorted state indices
- :param sorted_state_ind: sorted state indices
- :param corr: correlation matrix
- :param ratio_fnc_per_state: ratio of FNCs per state
- :param n_state: number of states
- :return unique_sorted_state_ind: unique sorted state indices
- """
- duplicated_dict = {}
- unique_ind = np.unique(sorted_state_ind)
- if len(sorted_state_ind)==len(unique_ind)+1:
- unique_sorted_state_ind = np.copy(sorted_state_ind)
- for i in unique_ind:
- ind = np.where(sorted_state_ind == i)[0]
- if len(ind) > 1:
- duplicated_dict[i] = ind
- missing_ind = list(set(np.arange(n_state)) - set(sorted_state_ind))
- duplicated_ind = list(duplicated_dict.keys())
- for i in duplicated_ind:
- duplicated_ind_loc = duplicated_dict[i]
- for j in missing_ind:
- ind = np.argmax(corr[0, duplicated_ind_loc, j])
- unique_sorted_state_ind[duplicated_ind_loc[ind]] = j
- elif len(sorted_state_ind)==len(unique_ind):
- unique_sorted_state_ind = sorted_state_ind
- else:
- unique_sorted_state_ind = np.argsort(ratio_fnc_per_state[1,:])
- return unique_sorted_state_ind
utils.py at commit 573f1e0, under Apache-2.0 · at the source
Overview
- Tri-institutional Center for Translational Research in Neuroimaging and Data Science, Georgia State University, Georgia Institute of Technology, Emory University, Atlanta, GA, United States
- School of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, GA, United States
- Department of Psychiatry, School of Medicine, Yale University, New Haven, CT, United States
Abstract
Psychiatric and neurodevelopmental disorders such as schizophrenia (SZ) and autism spectrum disorder (ASD) are challenging to characterize in part due to their heterogeneous presentation in individuals, with symptoms now believed to exist on a continuum. Conventional diagnostic and neuroimaging analytical approaches rely on subjective assessment or group differences, but typically ignore progression between groups or heterogeneity within a group. To estimate the neuropsychiatric continuum and heterogeneity, we proposed a functional network connectivity (FNC) interpolation framework based on a variational autoencoder (VAE) using static FNC (sFNC) and dynamic FNC (dFNC) data from controls and patients with SZ or ASD. We demonstrated that VAEs significantly outperformed a linear baseline and a semi-supervised counterpart. For both sFNC and dFNC interpolation, the generated results effectively captured representative and generalizable properties in the original data. The interpolated continua from controls to patients in both SZ and ASD revealed group-wise gradients characterized by reduced positive correlations within the auditory, sensorimotor, and visual networks, as well as between the subcortical and cerebellar domains. In contrast, anti-correlations weakened between the subcortical domain and the sensory domains, and between the cerebellar domain and the sensory domains. Finally, we showed examples of how to generate continuous FNC data following group- or state-based trajectories in the VAE latent space. The proposed framework offers added advantages over traditional methods, including data-driven discovery of hidden relationships, visualization of individual differences, imputation of missing values along a continuous spectrum, and estimation of the stage where an individual falls within the continuum.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 10 matches between paragraphs and lines of code.
XinhuiLi/interpolation
573f1e0714e70a23861b290b550bfce5f6e905f1, 8 April 2026Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
26 files
- data/
dataset.py , Python, 32 lines - data/
utils.py , Python, 306 lines, 3 matches - interpolation/
interp_dfnc_asd.ipynb , Jupyter, 746 lines, 1 match - interpolation/
interp_dfnc_sz.ipynb , Jupyter, 722 lines, 1 match - interpolation/
interp_sfnc_asd.ipynb , Jupyter, 775 lines - interpolation/
interp_sfnc_sz.ipynb , Jupyter, 762 lines - models/
ivae.py , Python, 205 lines, 1 match - models/
ppca.py , Python, 41 lines - models/
utils.py , Python, 19 lines - models/
vae.py , Python, 72 lines - visualization/
plot_cognitive_score.ipy , Jupyter, 248 lines, 3 matchesnb - visualization/
plot_comparison.ipynb , Jupyter, 121 lines - visualization/
plot_confounds.ipynb , Jupyter, 176 lines - visualization/
plot_correlation.ipynb , Jupyter, 64 lines - visualization/
plot_dfnc_latent_space.i , Jupyter, 225 linespynb - visualization/
plot_dynamic_metrics.ipy , Jupyter, 138 linesnb - visualization/
plot_hypopt_dfnc_vae.ipy , Jupyter, 67 linesnb - visualization/
plot_hypopt_sfnc_ivae.ip , Jupyter, 82 linesynb - visualization/
plot_hypopt_sfnc_vae.ipy , Jupyter, 67 linesnb - visualization/
plot_kmeans.ipynb , Jupyter, 34 lines - visualization/
plot_mse.ipynb , Jupyter, 78 lines, 1 match - visualization/
plot_sfnc_latent_space.i , Jupyter, 162 linespynb - visualization/
plot_std.ipynb , Jupyter, 108 lines - visualization/
plot_subgroup.ipynb , Jupyter, 404 lines - repository limit reached (2,000 files or 30 MB): the rest is at the source (2 files)
- LICENSE, License, 201 lines
- README.md, Text, 100 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:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 24 scripts, each with its path and the digest of its content;
- 10 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 and Code Availability
The FBIRN dataset can be accessed 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, 30 September 2026: the first record
Recorded: type, language, journal, volume, pages, dates, 5 authors, 6 keywords, 3 funders, 94 references.
Cite
This paper
Li, X., Geenjaar, E., Fu, Z., Pearlson, G. D., & Calhoun, V. D. (2026). Brain functional network connectivity interpolation characterizes the neuropsychiatric continuum and heterogeneity. Imaging neuroscience (Cambridge, Mass.), 4, IMAG.a.1220. https://
BibTeX
@article{li2026brain,
author = {Li, Xinhui and Geenjaar, Eloy and Fu, Zening and Pearlson, Godfrey D. and Calhoun, Vince D.},
title = {{Brain functional network connectivity interpolation characterizes the neuropsychiatric continuum and heterogeneity}},
journal = {Imaging neuroscience (Cambridge, Mass.)},
year = {2026},
month = apr,
volume = {4},
pages = {IMAG.a.1220},
publisher = {MIT Press},
issn = {2837-6056},
doi = {10.1162/
url = {https://
pmid = {42065117},
pmcid = {PMC13125074}
}
RIS
TY - JOUR
AU - Li, Xinhui
AU - Geenjaar, Eloy
AU - Fu, Zening
AU - Pearlson, Godfrey D.
AU - Calhoun, Vince D.
TI - Brain functional network connectivity interpolation characterizes the neuropsychiatric continuum and heterogeneity
T2 - Imaging neuroscience (Cambridge, Mass.)
J2 - Imaging Neurosci (Camb)
PY - 2026
DA - 2026/
VL - 4
SP - IMAG.a.1220
SN - 2837-6056
PB - MIT Press
DO - 10.1162/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1162/
"type": "article-journal",
"title": "Brain functional network connectivity interpolation characterizes the neuropsychiatric continuum and heterogeneity",
"container-title": "Imaging neuroscience (Cambridge, Mass.)",
"author": [
{
"family": "Li",
"given": "Xinhui"
},
{
"family": "Geenjaar",
"given": "Eloy"
},
{
"family": "Fu",
"given": "Zening"
},
{
"family": "Pearlson",
"given": "Godfrey D."
},
{
"family": "Calhoun",
"given": "Vince D."
}
],
"container-title-short":
"volume": "4",
"page": "IMAG.a.1220",
"DOI": "10.1162/
"PMID": "42065117",
"PMCID": "PMC13125074",
"ISSN": "2837-6056",
"publisher": "MIT Press",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
27
]
]
}
}
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.1162/imag.a.1266 [code]
- Multimodal subspace independent vector analysis effectively captures latent relationships between brain structure and function.Journal: Imaging neuroscience (Cambridge, Mass.)In common: seaborn, scikit-learn, pandas, 3 other tools, schizophrenia / psychosis, 2 references, 2 authors
- [2] doi:10.1038/s41398-026-04278-x [code]
- Aberrant recovery of timescale-aligned amplitude balance links to symptoms and cognition in schizophrenia.Journal: Translational psychiatryIn common: schizophrenia / psychosis, 6 references, author Vince Calhoun
- [3] doi:10.1038/s41467-026-75585-6 [code]
- Brain network dynamics reflect psychiatric illness status and transdiagnostic symptom profiles across health and disease.Journal: Nature communicationsIn common: seaborn, scikit-learn, pandas, 3 other tools, schizophrenia / psychosis, 6 references
- [4] doi:10.64898/2026.08.13.26360304 [code]
- Lifespan brain structural variation reveals shared organization across mental health conditionsJournal: medRxiv (preprint)In common: seaborn, scikit-learn, pandas, 3 other tools, 1 reference, author Vince Calhoun
- [5] doi:10.1186/s40708-026-00312-2 [code]
- Synergistic and redundant information dynamics exhibit dissociable alterations across schizophrenia and neurodevelopmental conditions.Journal: Brain informaticsIn common: seaborn, scikit-learn, pandas, 2 other tools, schizophrenia / psychosis, autism, 3 references
- [6] doi:10.1038/s42003-026-10094-2 [code]
- E/
I imbalance and internal noise cause weak neural representations and face recognition challenges in ASD. Journal: Communications biologyIn common: PyTorch, seaborn, scikit-learn, 4 other tools, autism, 2 references - [7] doi:10.1002/hbm.70496 [code]
- Transdiagnostic Profiles of BOLD Signal Variability in Autism and Schizophrenia Spectrum Disorders: Associations With Cognition and Functioning.Journal: Human brain mappingIn common: seaborn, scikit-learn, pandas, 3 other tools, schizophrenia / psychosis, autism, 2 references
- [8] doi:10.1002/hbm.70599 [code]
- Group Joint ICA (gjICA): A Method for Multimodal Fusion of Concurrent EEG and fMRI Data.Journal: Human brain mappingIn common: NumPy, 3 references, author Vince Calhoun
- [9] doi:10.1002/hbm.70469 [code]
- VarCoNet: A Variability-Aware Self-Supervised Framework for Functional Connectome Extraction From Resting-State fMRI.Journal: Human brain mappingIn common: PyTorch, seaborn, scikit-learn, 4 other tools, autism, 2 references
- [10] doi:10.7554/elife.108109 [code]
- Multimodal MRI marker of cognition explains the association between cognition and mental health in the UK Biobank.Journal: eLifeIn common: seaborn, scikit-learn, pandas, 3 other tools, 3 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: 1 repository of the authors' code, each at its verified commit and with its license, 24 scripts, and 10 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:e066aa1fac37bd5c…
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.
