| name | genetic-environmental-connectome |
| description | Genetic and environmental architecture of human functional connectome using extended twin modeling. Separates measurement error from non-shared environment to estimate true connectivity heritability. Keywords: functional connectome, twin modeling, heritability, genetic architecture, brain connectivity. |
Genetic and Environmental Architecture of Human Functional Connectome
An extended twin modeling framework that accurately estimates the genetic and environmental contributions to functional connectivity by separating measurement error from true non-shared environmental variance, revealing the true heritability of brain functional networks.
Metadata
- Source: arXiv:2604.24614v1
- Authors: Tanu Raghav, Daniel Guerrero, Uttara Tipnis, Jinyi He, Tian Ge, Shashwath Meda, Vince Calhoun, Godfrey Pearlson, Jingyu Liu
- Published: 2026-04-27
- Category: Behavioral Genetics / Neuroimaging
Core Methodology
Key Innovation
Classical twin models confound measurement error with non-shared environment, leading to underestimation of heritability. This work introduces an Extended Twin Model (ETM) that:
- Uses repeated measures to estimate measurement error
- Separates true non-shared environment from noise
- Provides accurate heritability estimates for functional connectivity
- Reveals distinct genetic architectures for different brain networks
Technical Framework
1. Extended Twin Model Structure
Traditional Model: Extended Model:
Phenotype = G + C + E Phenotype = G + C + E_true + Error
↓
(Uses repeated measures
to estimate Error)
Path Diagram:
A1 (Additive Genetic)
↗
/ C (Common Environment)
/ ↓
FC1 ←───────┼──────→ FC2
\ ↑
\ E_true
↘ (True Non-shared Env)
E_m (Measurement Error)
↑ ↑
Rep1 Rep2
(Repeated Measures)
2. Variance Decomposition
The model decomposes functional connectivity variance into:
- A (Additive Genetic): Shared genetic factors
- C (Common Environment): Shared environmental factors
- E_true (True Non-shared Environment): Real individual differences
- E_m (Measurement Error): Technical and physiological noise
3. Model Specification
ACE Model with Error:
Var(FC) = a² + c² + e_true² + e_m²
Where:
- a² = Additive genetic variance
- c² = Common environment variance
- e_true² = True non-shared environment variance
- e_m² = Measurement error variance
4. Connectome-Wide Analysis
- Edge-wise: Heritability for each functional connection
- Network-wise: Aggregate by functional networks (DMN, FPN, etc.)
- Graph metrics: Heritability of global network properties
Implementation Guide
Prerequisites
- R with
OpenMx package for structural equation modeling
- Python with
nilearn, scipy for preprocessing
- Resting-state fMRI data from twin samples
- Repeated measures (minimum 2 scans per subject)
Step-by-Step Implementation
Step 1: fMRI Preprocessing
import nibabel as nib
from nilearn import image, signal, connectivity
import numpy as np
def preprocess_fmri(func_file, atlas):
"""
Preprocess resting-state fMRI and extract time series.
Args:
func_file: Path to 4D fMRI nifti file
atlas: Parcellation atlas (e.g., AAL, Schaefer)
Returns:
time_series: [n_regions, n_timepoints] extracted signals
fc_matrix: [n_regions, n_regions] correlation matrix
"""
img = nib.load(func_file)
time_series = connectivity.extract_time_series(img, atlas)
time_series = signal.clean(
time_series.T,
detrend=True,
standardize=True,
low_pass=0.1,
high_pass=0.01,
t_r=2.0
).T
fc_matrix = np.corrcoef(time_series)
fc_matrix = np.arctanh(fc_matrix)
return time_series, fc_matrix
Step 2: Extended Twin Model in R
library(OpenMx)
etm_model <- function(data, zygosity) {
a <- mxMatrix(type = "Full", nrow = 1, ncol = 1,
free = TRUE, values = 0.5, name = "a")
c <- mxMatrix(type = "Full", nrow = 1, ncol = 1,
free = TRUE, values = 0.3, name = "c")
e <- mxMatrix(type = "Full", nrow ncol
free values name
m mxMatrixtype nrow ncol
free values name
cov_mz mxAlgebra
a ta t e te m tm
name
cov_dz mxAlgebra
a ta t m tm
name
model mxModel
a e m
cov_mz cov_dz
mxDatadata type
mxExpectationNormal
covariance
mxFitFunctionML
mxRunmodel
fit_connectome_wide fc_data zygosity
n_edges ncolfc_data
results data.frame
edge n_edges
h2 numericn_edges
c2 numericn_edges
e2 numericn_edges
m2 numericn_edges
i n_edges
edge_data fc_data i
fit tryCatch
etm_modeledge_data zygosity
error e
fit
resultsh2i fitoutputestimate
resultsc2i fitoutputestimate
resultse2i fitoutputestimate
resultsm2i fitoutputestimate
results
Step 3: Python Wrapper
import rpy2.robjects as ro
from rpy2.robjects import pandas2ri
import pandas as pd
import numpy as np
class ExtendedTwinModel:
"""
Python wrapper for Extended Twin Model analysis.
"""
def __init__(self):
pandas2ri.activate()
ro.r('library(OpenMx)')
def fit(self, fc_data, zygosity, n_repeats=2):
"""
Fit extended twin model to functional connectivity data.
Args:
fc_data: [n_subjects, n_edges] functional connectivity
zygosity: [n_subjects] 1=MZ, 2=DZ twin pairs
n_repeats: Number of repeated measurements
Returns:
results: DataFrame with heritability estimates
"""
r_data = pandas2ri.py2rpy(pd.DataFrame(fc_data))
r_zyg = ro.IntVector(zygosity)
ro.r('''
source('etm_model.R')
fit_result <- fit_connectome_wide(fc_data, zygosity)
''')
results = pandas2ri.rpy2py(ro.r('fit_result'))
return results
def calculate_heritability(self, results):
"""
Calculate proportion of variance explained.
Args:
results: Model output DataFrame
Returns:
heritability_summary: Summary statistics
"""
total_var = results['h2'] + results['c2'] + results['e2'] + results['m2']
summary = {
: np.mean(results[] / total_var),
: np.median(results[] / total_var),
: np.(results[] / total_var > ),
: np.mean(results[] / total_var)
}
summary
etm = ExtendedTwinModel()
fc_data = np.load()
zygosity = np.load()
results = etm.fit(fc_data, zygosity)
heritability_summary = etm.calculate_heritability(results)
()
Step 4: Network-Level Analysis
import seaborn as sns
import matplotlib.pyplot as plt
from nilearn import plotting
def analyze_network_heritability(results, network_mapping):
"""
Aggregate heritability by functional network.
Args:
results: Edge-wise heritability estimates
network_mapping: Dict mapping regions to networks
Returns:
network_h2: Heritability by network
"""
networks = {}
for edge_idx, h2 in enumerate(results['h2']):
region1, region2 = get_edge_regions(edge_idx)
net1 = network_mapping[region1]
net2 = network_mapping[region2]
if net1 == net2:
key = f"within_{net1}"
else:
key = f"between_{net1}_{net2}"
if key not in networks:
networks[key] = []
networks[key].append(h2)
network_h2 = {k: np.mean(v) for k, v in networks.items()}
return network_h2
def plot_heritability_map(results, atlas):
"""Plot heritability on brain surface."""
fig = plotting.plot_connectome(
edge_weights=results['h2'],
node_coords=atlas.coordinates,
node_color='auto',
title='Functional Connectivity Heritability'
)
fig
Key Findings
Heritability Estimates
| Network | Traditional ACE | Extended ETM | Error Variance |
|---|
| Default Mode Network | 0.42 | 0.58 | 0.22 |
| Frontoparietal Network | 0.38 | 0.52 | 0.19 |
| Salience Network | 0.45 | 0.61 | 0.18 |
| Sensorimotor Network | 0.35 | 0.48 | 0.25 |
| Visual Network | 0.40 | 0.55 | 0.20 |
Key Insight: Accounting for measurement error increases heritability estimates by ~40% on average.
Genetic Architecture Patterns
- Heteromodal Networks (DMN, FPN): Highest heritability
- Sensorimotor Networks: Lower heritability, higher environmental influence
- Between-Network Connections: Generally less heritable than within-network
Applications
- Precision Medicine: Identify genetically-informed biomarkers
- Psychiatric Genetics: Understand disorder-related connectivity patterns
- Developmental Studies: Track genetic influences across lifespan
- Neurodegeneration: Distinguish genetic risk from environmental factors
Pitfalls
- Sample Size: Requires large twin samples (>200 pairs) for stable estimates
- Assumptions: Equal environments assumption (EEA) may be violated
- Generalizability: Results specific to resting-state; task FC may differ
- Scanner Effects: Different scanners can inflate measurement error
Related Skills
- functional-connectome-fingerprint
- brain-graph-neural
- dcho-higher-order-brain-connectivity
- dgcl-brain-network-construction
References
@article{raghav2026genetic,
title={The Genetic and Environmental Architecture of the Human Functional Connectome},
author={Raghav, Tanu and Guerrero, Daniel and Tipnis, Uttara and He, Jinyi and Ge, Tian and Meda, Shashwath and Calhoun, Vince and Pearlson, Godfrey and Liu, Jingyu},
journal={arXiv preprint arXiv:2604.24614},
year={2026}
}