Connectome Gradient-Based Subtyping of Major Depressive Disorder Reveals Distinct Neurobiological and Transcriptomic Signatures.
The 2 matches
- [1] § 2. Experimental Procedures › 2.3. Functional Gradients Calculation ↔ matlab/@GradientMaps/GradientMaps.m, lines 1–50 · score 0.65 · diffusion embedding, BrainSpace, cosine, Procrustes, components, gradients
- [2] § 2. Experimental Procedures › 2.8. Correlation Analysis Between Functional Gradient Differences and Cell Types ↔ brainspace/null_models/variogram.py, lines 1523–1543 · score 0.55 · nearest neighbors, distance weighted, Brain, maps
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
MATLAB · 317 lines · 14 KB · BSD-3-Clause · 1 match
- classdef GradientMaps
- % obj = BrainSpace(varargin)
- %
- % Class definition and constructor for BrainSpace. The following
- % name-value pairs are allowed as input.
- %
- % - kernel (default: normalized angle)
- % - 'p','pearson'
- % - 'sm','spearman'
- % - 'g','gaussian'
- % - 'na','normalized angle'
- % - 'cs','cosine similarity'
- % - '','none'
- % - a function handle
- % - approach (default: diffusion embedding)
- % - 'dm','diffusion embedding'
- % - 'le','laplacian eigenmap'
- % - 'pca','principal component analysis'
- % - a function handle
- % - alignment (default: none)
- % - 'none',''
- % - 'pa','procrustes analysis'
- % - 'ja','joint alignment'
- % - a function handle
- % - n_components (default: 10)
- % - Any natural number.
- % - random_state (default: nan)
- % - Any valid input for MATLAB's "rng" function or nan for no
- % initialization.
- % - verbose (default: false)
- % - Determines wheter non-warning/error messages will be displayed.
- %
- % For complete documentation, including descriptions of this object's
- % properties and methods please consult our <a
- % href="https://brainspace.readthedocs.io/en/latest/pages/matlab_doc/main_functionality/gradientmaps.html">ReadTheDocs</a>.
- %
- % See also: GRADIENTMAPS.FIT
- properties (SetAccess = private)
- method
- gradients
- aligned
- lambda
- end
- properties (Access = private)
- random_state
- end
- methods
- %% Constructor
- function obj = GradientMaps(varargin)
- % Parse input
- in_fun = @(x) isa(x,'char') || isa(x,'function_handle');
- p = inputParser;
- addParameter(p, 'kernel', 'normalized angle', in_fun);
- addParameter(p, 'approach', 'diffusion embedding', in_fun);
- addParameter(p, 'alignment', 'none', in_fun);
- addParameter(p, 'n_components', 10, @isnumeric);
- addParameter(p, 'random_state', nan);
- addParameter(p, 'verbose', false, @islogical);
- parse(p, varargin{:});
- R = p.Results;
- % Set the properties
- if R.verbose
- disp('Launching BrainSpace, the gradient connectivity toolbox.');
- disp('');
- end
- obj = obj.set( ...
- 'kernel', R.kernel, ...
- 'approach', R.approach, ...
- 'alignment', R.alignment, ...
- 'random_state', R.random_state, ...
- 'n_components', R.n_components, ...
- 'verbose', R.verbose);
- end
- end
- methods(Access = private)
- %% Private methods
- function obj = set(obj,varargin)
- % obj2 = SET(obj,varargin)
- %
- % Private function to set the properties of the BrainSpace
- % object.
- change_string = {};
- for ii = 1:2:numel(varargin)
- switch lower(varargin{ii})
- case 'kernel'
- if isa(varargin{ii+1},'function_handle')
- obj.method.kernel = varargin{ii+1};
- change_string{end+1} = ('Set the kernel to a custom function handle.');
- else
- switch lower(varargin{ii+1})
- case {'none',''}
- obj.method.kernel = 'None';
- case {'p','pearson'}
- obj.method.kernel = 'Pearson';
- case {'sm','spearman'}
- obj.method.kernel = 'Spearman';
- case {'g','gaussian'}
- obj.method.kernel = 'Gaussian';
- case {'cs','cosine','cosine similarity','cossim','cosine_similarity','cosinesimilarity'}
- obj.method.kernel = 'Cosine Similarity';
- case {'na','normalized angle','normalizedangle','normangle','normalized_angle'}
- obj.method.kernel = 'Normalized Angle';
- otherwise
- error('Unknown kernel. Valid kernels are: ''none'', ''pearson'', ''spearman'', ''Gaussian'', ''cosine similarity'', and ''normalized angle''');
- end
- change_string{end+1} = (['Set the kernel to: ' obj.method.kernel '.']);
- end
- case 'approach'
- if isa(varargin{ii+1},'function_handle')
- obj.method.approach = varargin{ii+1};
- change_string{end+1} = ('Set the approach to a custom function handle.');
- else
- switch lower(varargin{ii+1})
- case {'pca','principalcomponentanalysis','principal component analysis'}
- obj.method.approach = 'Principal Component Analysis';
- case {'dm','diffusion embedding','diffusionembedding','diffemb'}
- obj.method.approach = 'Diffusion Embedding';
- case {'le','laplacian eigenmap','laplacian eigenmaps','lapeig','laplacianeigenmaps','laplacianeigenmap'}
- obj.method.approach = 'Laplacian Eigenmap';
- otherwise
- error('Unknown approach. Valid approaches are: ''principal component analysis'', ''diffusion embedding'', and ''laplacian eigenmap''');
- end
- change_string{end+1} = (['Set the approach to: ' obj.method.approach '.']);
- end
- case 'alignment'
- if isa(varargin{ii+1},'function_handle')
- obj.method.kernel = varargin{ii+1};
- change_string{end+1} = ('Set the alignment to a custom function handle.');
- else
- switch lower(varargin{ii+1})
- case {'','none'}
- obj.method.alignment = 'None';
- case {'pa','procrustes','procrustes analysis','procrustesanalysis'}
- obj.method.alignment = 'Procrustes Analysis';
- case {'ja','joint','jointalignment'}
- obj.method.alignment = 'Joint Alignment';
- end
- change_string{end+1} = (['Set the alignment to: ' obj.method.alignment '.']);
- end
- case 'random_state'
- obj.random_state = varargin{ii+1};
- if ~isnan(varargin{ii+1})
- change_string{end+1} = ['Set the random state initialization to: ' num2str(varargin{ii+1}) '.'];
- else
- change_string{end+1} = ['No random state initialization set.'];
- end
- case 'n_components'
- obj.method.n_components = varargin{ii+1};
- change_string{end+1} = ['Set the number of requested components to: ' num2str(varargin{ii+1}) '.'];
- case 'verbose'
- obj.method.verbose = varargin{ii+1};
- change_string{end+1} = ['Verbose display was set to: ' mat2str(obj.method.verbose) '.'];
- otherwise
- error('Unknown property. Valid properties are: ''connectivitymatrix'', ''kernel'', ''approach'', and ''nullmodel''.');
- end
- end
- if obj.method.verbose
- for ii = 1:numel(change_string)
- disp(change_string{ii})
- end
- disp(' ')
- end
- end
- % -------------------------------------
- % -------------------------------------
- % -------------------------------------
- function kernel_data = kernels(obj,data,varargin)
- % Applies kernel to the data. Known kernels are "none", "Cosine
- % Similarity", and "Normalized Angle".
- p = inputParser;
- addParameter(p, 'sparsity', 90, @isnumeric);
- addParameter(p, 'tolerance', 1e-6, @isnumeric);
- addParameter(p, 'gamma', 1/size(data,1), @isnumeric);
- parse(p, varargin{:});
- kernel = obj.method.kernel;
- % Check zero vectors in input data.
- if any(all(data==0))
- error('Input data contains a zero vector. Gradients cannot be computed for these vectors.')
- end
- % Sparsify input data.
- if obj.method.verbose
- disp(['Running with sparsity parameter: ' num2str(p.Results.sparsity)]);
- end
- sparse_data = data;
- sparse_data(data < prctile(data,p.Results.sparsity)) = 0;
- % If a custom function, just run the custom function.
- if isa(kernel,'function_handle')
- kernel_data = kernel(data);
- return
- end
- switch kernel
- case 'None'
- if p.Results.sparsity ~= 0
- warning('Using a none kernel with a matrix sparsification will likely lead to an asymmetric matrix. Consider setting the sparsity parameter to 0.');
- end
- kernel_data = sparse_data;
- case {'Pearson','Spearman'}
- kernel_data = corr(sparse_data,'type',kernel);
- case 'Gaussian'
- if obj.method.verbose
- disp(['Running with gamma parameter: ' num2str(p.Results.gamma) '.']);
- end
- kernel_data = exp(-p.Results.gamma .* squareform(pdist(sparse_data').^2));
- case {'Cosine Similarity','Normalized Angle'}
- cosine_similarity = 1-squareform(pdist(sparse_data','cosine'));
- switch kernel
- case 'Cosine Similarity'
- kernel_data = cosine_similarity;
- case 'Normalized Angle'
- kernel_data = 1-acos(cosine_similarity)/pi;
- end
- otherwise
- error('Unknown kernel method');
- end
- % Check for negative numbers.
- if any(kernel_data(:) < 0)
- if obj.method.verbose
- disp('Found negative numbers in the kernel matrix. These will be set to zero.');
- end
- kernel_data(kernel_data < 0) = 0;
- end
- % Check for vectors of zeros.
- if any(all(kernel_data == 0))
- error(['After thresholding, a complete vector in the kernel ' ...
- 'matrix consists of zeros. Consider using a kernel that ' ...
- 'does not allow for negative numbers (e.g. normalized angle).']);
- end
- if ~issymmetric(kernel_data)
- if max(max(abs(kernel_data - kernel_data'))) < p.Results.tolerance
- kernel_data = tril(kernel_data) + tril(kernel_data,-1)';
- else
- error('Asymmetry in the affinity matrix is too large. Increase the tolerance. Alternatively, are you using a ''none'' kernel with a non-zero sparsity parameter? This may result in errors.');
- end
- end
- end
- % -------------------------------------
- % -------------------------------------
- % -------------------------------------
- function [embedding, lambda] = approaches(obj, data, varargin)
- % [embedding, result] = approaches(obj, data, varargin)
- %
- % Computes the embedded data. This function should not be
- % called directly; it should only be called from the
- % run_analysis method
- %% Check input arguments.
- p = inputParser;
- addParameter(p, 'alpha' , 0.5 , @isnumeric );
- addParameter(p, 'diffusion_time' , 0 , @isnumeric );
- % Parse the input
- parse(p, varargin{:});
- in = p.Results;
- % If a custom function, just run the custom function.
- if isa(obj.method.approach,'function_handle')
- embedding = obj.method.approach(data);
- return
- end
- if ~issymmetric(data)
- if max(max(abs(data - data'))) > eps % floating point issues.
- error('Affinity matrix is not symmetric.')
- else
- data = tril(data) + tril(data,-1)'; % Attempt to force symmetry
- end
- end
- if ~graph_is_connected(data)
- error('Affinity matrix is not a connected graph.');
- end
- %% Embedding.
- % Set the random state for reproducibility.
- if ~isnan(obj.random_state)
- rng(obj.random_state)
- end
- % Run manifold learning
- switch obj.method.approach
- case 'Principal Component Analysis'
- [~, embedding, ~, ~, lambda] = pca(data);
- embedding = embedding(:,1:obj.method.n_components);
- case 'Laplacian Eigenmap'
- [embedding, lambda] = laplacian_eigenmaps(data, obj.method.n_components);
- case 'Diffusion Embedding'
- if obj.method.verbose
- disp(['Running with alpha parameter: ' num2str(in.alpha)]);
- disp(['Running with diffusion time: ' num2str(in.diffusion_time)]);
- end
- [embedding, lambda] = diffusion_mapping(data, obj.method.n_components, in.alpha, in.diffusion_time);
- otherwise
- error('Unknown manifold technique.');
- end
- end
- end
- end
GradientMaps.m at commit 8730de8, under BSD-3-Clause · at the source
Overview
- The Second Affiliated Hospital and Yuying Children’s Hospital, Wenzhou Medical University, Wenzhou 325027, Zhejiang, China, wmu.edu.cn
- Wenzhou Key Laboratory of Structural and Functional Imaging, Wenzhou 325027, Zhejiang, China
- Tongde Hospital of Zhejiang Province, Hangzhou 310012, Zhejiang, China, zjtongde.com
Abstract
Background/
Method: Imaging data were derived from a large‐scale, multicenter MDD imaging database, comprising 1067 patients with MDD and 907 healthy controls (HCs). Based on the principal functional gradient, the Hydra method was employed to distinguish subtypes of MDD. We employed the Mann–Whitney U‐test to compare functional gradient abnormalities across different subtypes of MDD while simultaneously conducting imaging transcriptomics analysis.
Results: Using principal functional gradients, we identified two subtypes of MDD. Compared with HCs, subtype 1 exhibited abnormal functional gradient values in the dorsal attention network (DAN), ventral attention network (VAN), limbic network (LIB), frontoparietal network (FTP), and default mode network (DMN); subtype 2 exhibited abnormal functional gradient values in the visual network (VIS), somatosensory network (SMT), DAN, VAN, and DMN. Transcriptomics revealed that subtype 1 functional gradient abnormalities were significantly correlated with theory mind, 5‐hydroxytryptamine (5‐HT) 1B; subtype 2 functional gradient abnormalities were significantly correlated with motor function, dopamine D2 receptor, and norepinephrine transporter (NET).
Conclusions: Our research deepens the understanding of the biological diversity of MDD, providing a biologically grounded framework for stratifying patients, which may inform the future design of hypothesis‐driven clinical trials targeting specific cognitive or sensorimotor circuits.
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 2 matches between paragraphs and lines of code.
evarol/HYDRA
25c15b2c37cc78105be4afc171f3a75338338057, 21 November 2018Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
5 files
- hydra.m, MATLAB, 635 lines
- hydra_solver.m, MATLAB, 711 lines
- COPYING.txt, License, 181 lines
- LICENSE, License, 674 lines
- README.txt, Text, 143 lines
MICA-MNI/BrainSpace
8730de88ae32c4f88eeaf16ef2a6e53c5c32dc34, 5 May 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
123 files
- brainspace/
__init__.py , Python, 5 lines - brainspace/
_version.py , Python, 3 lines - brainspace/
datasets/ , Python, 15 lines__init__.py - brainspace/
datasets/ , Python, 322 linesbase.py - brainspace/
examples/ , Python, 1 line__init__.py - brainspace/
examples/ , Python, 182 linesplot_tutorial0.py - brainspace/
examples/ , Python, 84 linesplot_tutorial1.py - brainspace/
examples/ , Python, 253 linesplot_tutorial2.py - brainspace/
examples/ , Python, 304 linesplot_tutorial3.py - brainspace/
gradient/ , Python, 18 lines__init__.py - brainspace/
gradient/ , Python, 266 linesalignment.py - brainspace/
gradient/ , Python, 477 linesembedding.py - brainspace/
gradient/ , Python, 334 linesgradient.py - brainspace/
gradient/ , Python, 98 lineskernels.py - brainspace/
gradient/ , Python, 276 linesutils.py - brainspace/
mesh/ , Python, 10 lines__init__.py - brainspace/
mesh/ , Python, 976 linesarray_operations.py - brainspace/
mesh/ , Python, 252 linesmesh_cluster.py - brainspace/
mesh/ , Python, 94 linesmesh_correspondence.py - brainspace/
mesh/ , Python, 110 linesmesh_creation.py - brainspace/
mesh/ , Python, 766 linesmesh_elements.py - brainspace/
mesh/ , Python, 211 linesmesh_io.py - brainspace/
mesh/ , Python, 587 linesmesh_operations.py - brainspace/
null_models/ , Python, 12 lines__init__.py - brainspace/
null_models/ , Python, 308 linesmoran.py - brainspace/
null_models/ , Python, 347 linesspin.py - brainspace/
null_models/ , Python, 2,005 lines, 1 matchvariogram.py - brainspace/
plotting/ , Python, 6 lines__init__.py - brainspace/
plotting/ , Python, 501 linesbase.py - brainspace/
plotting/ , Python, 87 linescolormaps.py - brainspace/
plotting/ , Python, 55 linesdefaults_plotting.py - brainspace/
plotting/ , Python, 45 linessphinx_gallery_scrapper. py - brainspace/
plotting/ , Python, 633 linessurface_plotting.py - brainspace/
plotting/ , Python, 400 linesutils.py - brainspace/
plotting/ , Python, 19 linesutils_qt.py - brainspace/
tests/ , Python, 1 line__init__.py - brainspace/
tests/ , Python, 93 linestest_aligned_lambdas.py - brainspace/
tests/ , Python, 64 linestest_alignment_methods.p y - brainspace/
tests/ , Python, 51 linestest_alignment_options.p y - brainspace/
tests/ , Python, 43 linestest_colormaps.py - brainspace/
tests/ , Python, 187 linestest_copy_methods.py - brainspace/
tests/ , Python, 134 linestest_datasets.py - brainspace/
tests/ , Python, 66 linestest_embedding_validatio n.py - brainspace/
tests/ , Python, 150 linestest_gradient.py - brainspace/
tests/ , Python, 133 linestest_gradient_path_input s.py - brainspace/
tests/ , Python, 37 linestest_issue_133.py - brainspace/
tests/ , Python, 441 linestest_mesh.py - brainspace/
tests/ , Python, 260 linestest_null_models.py - brainspace/
tests/ , Python, 313 linestest_parcellation.py - brainspace/
tests/ , Python, 274 linestest_plotting.py - brainspace/
tests/ , Python, 208 linestest_vtk94_compatibility .py - brainspace/
tests/ , Python, 192 linestest_wrapping.py - brainspace/
utils/ , Python, 3 lines__init__.py - brainspace/
utils/ , Python, 369 linesparcellation.py - brainspace/
vtk_interface/ , Python, 14 lines__init__.py - brainspace/
vtk_interface/ , Python, 142 lineschecks.py - brainspace/
vtk_interface/ , Python, 300 linesdecorators.py - brainspace/
vtk_interface/ , Python, 8 linesio_support/ __init__.py - brainspace/
vtk_interface/ , Python, 254 linesio_support/ freesurfer_support.py - brainspace/
vtk_interface/ , Python, 159 linesio_support/ gifti_support.py - brainspace/
vtk_interface/ , Python, 352 linespipeline.py - brainspace/
vtk_interface/ , Python, 78 lineswrappers/ __init__.py - brainspace/
vtk_interface/ , Python, 328 lineswrappers/ actor.py - brainspace/
vtk_interface/ , Python, 327 lineswrappers/ algorithm.py - brainspace/
vtk_interface/ , Python, 732 lineswrappers/ base.py - brainspace/
vtk_interface/ , Python, 561 lineswrappers/ data_object.py - brainspace/
vtk_interface/ , Python, 80 lineswrappers/ lookup_table.py - brainspace/
vtk_interface/ , Python, 111 lineswrappers/ misc.py - brainspace/
vtk_interface/ , Python, 30 lineswrappers/ property.py - brainspace/
vtk_interface/ , Python, 250 lineswrappers/ renderer.py - brainspace/
vtk_interface/ , Python, 255 lineswrappers/ utils.py - docs/
conf.py , Python, 249 lines - docs/
python_doc/ , Jupyter, 187 linesauto_examples/ plot_tutorial0.ipynb - docs/
python_doc/ , Python, 182 linesauto_examples/ plot_tutorial0.py - docs/
python_doc/ , Jupyter, 92 linesauto_examples/ plot_tutorial1.ipynb - docs/
python_doc/ , Python, 84 linesauto_examples/ plot_tutorial1.py - docs/
python_doc/ , Jupyter, 272 linesauto_examples/ plot_tutorial2.ipynb - docs/
python_doc/ , Python, 253 linesauto_examples/ plot_tutorial2.py - docs/
python_doc/ , Jupyter, 303 linesauto_examples/ plot_tutorial3.ipynb - docs/
python_doc/ , Python, 304 linesauto_examples/ plot_tutorial3.py - matlab/
@GradientMaps/ , MATLAB, 317 lines, 1 matchGradientMaps.m - matlab/
@GradientMaps/ , MATLAB, 142 linesfit.m - matlab/
analysis_code/ , MATLAB, 339 lines@variogram/ variogram.m - matlab/
analysis_code/ , MATLAB, 141 linescompute_mem.m - matlab/
analysis_code/ , MATLAB, 86 linesdiffusion_mapping.m - matlab/
analysis_code/ , MATLAB, 29 linesgraph_is_connected.m - matlab/
analysis_code/ , MATLAB, 94 lineslabelmean.m - matlab/
analysis_code/ , MATLAB, 72 lineslaplacian_eigenmaps.m - matlab/
analysis_code/ , MATLAB, 100 linesmoran_randomization.m - matlab/
analysis_code/ , MATLAB, 106 linesprocrustes_alignment.m - matlab/
analysis_code/ , MATLAB, 105 linesspin_permutations.m - matlab/
example_data_loaders/ , MATLAB, 30 linesload_conte69.m - matlab/
example_data_loaders/ , MATLAB, 18 linesload_gradient.m - matlab/
example_data_loaders/ , MATLAB, 35 linesload_group_fc.m - matlab/
example_data_loaders/ , MATLAB, 28 linesload_group_mpc.m - matlab/
example_data_loaders/ , MATLAB, 19 linesload_marker.m - matlab/
example_data_loaders/ , MATLAB, 20 linesload_mask.m - matlab/
example_data_loaders/ , MATLAB, 29 linesload_parcellation.m - matlab/
plot_data/ , MATLAB, 28 lines@plot_hemispheres/ colorlimits.m - matlab/
plot_data/ , MATLAB, 30 lines@plot_hemispheres/ colormaps.m - matlab/
plot_data/ , MATLAB, 51 lines@plot_hemispheres/ labels.m - matlab/
plot_data/ , MATLAB, 177 lines@plot_hemispheres/ plot_hemispheres.m - matlab/
plot_data/ , MATLAB, 27 lines@plot_hemispheres/ private/ make_surface_plot.m - matlab/
plot_data/ , MATLAB, 68 lines@plot_hemispheres/ private/ plotter.m - matlab/
plot_data/ , MATLAB, 50 lines@plot_hemispheres/ private/ process_views.m - matlab/
plot_data/ , MATLAB, 108 linesgradient_in_euclidean.m - matlab/
plot_data/ , MATLAB, 18 linesscree_plot.m - matlab/
surface_manipulation/ , MATLAB, 164 linesSurfStatReadSurf1.m - matlab/
surface_manipulation/ , MATLAB, 96 linesSurfStatWriteSurf1.m - matlab/
surface_manipulation/ , MATLAB, 29 linescombine_surfaces.m - matlab/
surface_manipulation/ , MATLAB, 122 linesconvert_surface.m - matlab/
surface_manipulation/ , MATLAB, 13 linesfull2parcel.m - matlab/
surface_manipulation/ , MATLAB, 41 linesparcel2full.m - matlab/
surface_manipulation/ , MATLAB, 13 linesread_surface.m - matlab/
surface_manipulation/ , MATLAB, 41 linessplit_surfaces.m - matlab/
surface_manipulation/ , MATLAB, 56 linessurface_to_graph.m - matlab/
surface_manipulation/ , MATLAB, 11 lineswrite_surface.m - matlab/
tests/ , MATLAB, 83 lines@datasets_tests/ datasets_tests.m - matlab/
tests/ , MATLAB, 57 lines@diffusion_mapping_tests / diffusion_mapping_tests. m - matlab/
tests/ , MATLAB, 34 lines@utils_tests/ utils_tests.m - setup.py, Python, 86 lines
- LICENSE, License, 29 lines
- README.rst, Text, 43 lines
Jfortin1/ComBatHarmonization
91f8bf3045381776c79358d2772e6ace135e21ce, 27 July 2021Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
17 files
- Matlab/
scripts/ , MATLAB, 5 linesaprior.m - Matlab/
scripts/ , MATLAB, 5 linesbprior.m - Matlab/
scripts/ , MATLAB, 127 linescombat.m - Matlab/
scripts/ , MATLAB, 27 linesinteprior.m - Matlab/
scripts/ , MATLAB, 18 linesitSol.m - Matlab/
scripts/ , MATLAB, 3 linespostmean.m - Matlab/
scripts/ , MATLAB, 3 linespostvar.m - Testing/
compare.R , R, 45 lines - Testing/
compareToSva.R , R, 75 lines - Testing/
compare_training.R , R, 11 lines - Testing/
createTestData.R , R, 9 lines - Testing/
norm_matlab.m , MATLAB, 20 lines - Testing/
norm_python.py , Python, 123 lines - Testing/
norm_python_training.py , Python, 51 lines - Testing/
norm_r.R , R, 95 lines - Testing/
norm_r_training.R , R, 56 lines - README.md, Text, 119 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:
- 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 139 scripts, each with its path and the digest of its content;
- 2 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
Data of the REST‐meta‐MDD Project are available 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 3, 28 September 2026
- Issue: n/a → 1
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, pages, dates, 2 authors, 4 keywords, 6 MeSH terms, 1 funder, 53 references.
Cite
This paper
Liu, X., & Guo, Z. (2026). Connectome Gradient-Based Subtyping of Major Depressive Disorder Reveals Distinct Neurobiological and Transcriptomic Signatures. Depression and anxiety, 2026(1), 8792696. https://
BibTeX
@article{liu2026connecto
author = {Liu, Xiaozheng and Guo, Zhongwei},
title = {{Connectome Gradient-Based Subtyping of Major Depressive Disorder Reveals Distinct Neurobiological and Transcriptomic Signatures}},
journal = {Depression and anxiety},
year = {2026},
month = sep,
volume = {2026},
number = {1},
pages = {8792696},
publisher = {Wiley},
issn = {1091-4269},
doi = {10.1155/
url = {https://
pmid = {42688891},
pmcid = {PMC13536004}
}
RIS
TY - JOUR
AU - Liu, Xiaozheng
AU - Guo, Zhongwei
TI - Connectome Gradient-Based Subtyping of Major Depressive Disorder Reveals Distinct Neurobiological and Transcriptomic Signatures
T2 - Depression and anxiety
J2 - Depress Anxiety
PY - 2026
DA - 2026/
VL - 2026
IS - 1
SP - 8792696
SN - 1091-4269
PB - Wiley
DO - 10.1155/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1155/
"type": "article-journal",
"title": "Connectome Gradient-Based Subtyping of Major Depressive Disorder Reveals Distinct Neurobiological and Transcriptomic Signatures",
"container-title": "Depression and anxiety",
"author": [
{
"family": "Liu",
"given": "Xiaozheng"
},
{
"family": "Guo",
"given": "Zhongwei"
}
],
"container-title-short":
"volume": "2026",
"issue": "1",
"page": "8792696",
"DOI": "10.1155/
"PMID": "42688891",
"PMCID": "PMC13536004",
"ISSN": "1091-4269",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
2
]
]
}
}
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-71270-w [code]
- Spatiotemporal dynamics of the human cortical functional hierarchy across the lifespan.Journal: Nature communicationsIn common: BrainSpace, GIfTI library for MATLAB, Parallel Computing Toolbox, 8 other tools, fMRI, 5 references
- [2] doi:10.1038/s41467-026-71719-y [code]
- Brain functional-structural gradient coupling reflects development, behavior and genetic influences.Journal: Nature communicationsIn common: BrainSpace, GIfTI library for MATLAB, Parallel Computing Toolbox, 9 other tools, 3 references
- [3] doi:10.1038/s42003-026-10276-y [code]
- The cellular correlates and adolescent reorganisation of cortical myelination networks in the common marmoset.Journal: Communications biologyIn common: BrainSpace, GIfTI library for MATLAB, Optimization Toolbox, 9 other tools, 2 references
- [4] 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: neuroCombat, BrainSpace, GIfTI library for MATLAB, 7 other tools, genetics / omics, 3 references
- [5] doi:10.1038/s41586-026-10631-3 [code]
- A prognostic human brain network for diffuse midline glioma.Journal: NatureIn common: BrainSpace, GIfTI library for MATLAB, Optimization Toolbox, 9 other tools, 1 reference
- [6] doi:10.1038/s41467-026-76812-w [code]
- Assessing molecular, cellular and transcriptomic bases of laminar perfusion and cytoarchitecture coupling in the human cortex.Journal: Nature communicationsIn common: BrainSpace, Nilearn, NiBabel, 7 other tools, genetics / omics, 3 references
- [7] doi:10.1038/s41398-026-04025-2 [code]
- Brain energetic landscapes shape state dysregulation in major depressive disorder: a morphological network controllability perspective.Journal: Translational psychiatryIn common: BrainSpace, GIfTI library for MATLAB, Nilearn, 7 other tools, depression, 2 references
- [8] doi:10.1038/s41467-026-71151-2 [code]
- Common and distinct neural correlates of social interaction processing and theory of mind in narratives.Journal: Nature communicationsIn common: GIfTI library for MATLAB, Optimization Toolbox, Parallel Computing Toolbox, 8 other tools, 1 reference
- [9] doi:10.1111/ene.70678 [code]
- Who Falls After a Stroke? Evidence From a Prospective Stroke Cohort.Journal: European journal of neurologyIn common: GIfTI library for MATLAB, Optimization Toolbox, Parallel Computing Toolbox, 6 other tools, 3 references
- [10] doi:10.7554/elife.103097 [code]
- Canonical neurodevelopmental trajectories of structural and functional manifolds.Journal: eLifeIn common: BrainSpace, Nilearn, NiBabel, 6 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: 3 repositories of the authors' code, each at its verified commit and with its license, 139 scripts, and 2 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:0f61157be42d65d1…
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.
