重测序关系矩阵构建方式汇总

样本间亲缘关系矩阵(kinship matrix)和同源性矩阵(IBS matrix)构建的方式

1. 可以使用plink的--make-rel计算个体之间的亲缘关系(强调个体之间的遗传相似性)

bash 复制代码
/opt/software/plink --bfile vcf_bfile--make-rel --out relatedness_matrix # 得到亲缘关系距离矩阵:
# relatedness_matrix.rel

2. kinship

bash 复制代码
# 利用tassel计算
run_pipeline.pl -Xmx1536m-Xms512m -SortGenotypeFilePlugin -inputFile 你的vcf文件 -outputFile outvcf -fileType VCF
run_pipeline.pl-Xmx1536m -Xms512m -importGuess outvcf -KinshipPlugin -methodCentered_IBS -endPlugin -export tassel_kinship.txt -exportType SqrMatrix
# 利用gcta计算
使用 --make-grm-alg 1 或 --make-grm 0
gcta --make-grm --make-grm-alg 1 --out snp.gcta --bfile vcf_bfile snp --autosome-num 90

3. IBS

bash 复制代码
/opt/software/plink --bfile  vcf_bfile --make-bed --out IBS_matrix --maf 0.05 --recode --double-id --allow-extra-chr --chr-set 90  --distance square ibs
要计算遗传距离,使用1-ibs

群体关系矩阵如何构建?

转换方法:平均IBS(个体对间均值)

计算所有个体两两之间的IBS均值,反映群体内遗传相似性。

python 复制代码
#算法示例
import numpy as np

def pairwise_ibs(genotype_matrix):
    n_individuals = genotype_matrix.shape[0]
    ibs_matrix = np.zeros((n_individuals, n_individuals))
    
    for i in range(n_individuals):
        for j in range(i+1, n_individuals):
            ibs_sum = 0
            for snp in range(genotype_matrix.shape[1]):
                ibs_sum += calculate_ibs(
                    genotype_matrix[i, snp, 0], genotype_matrix[i, snp, 1],
                    genotype_matrix[j, snp, 0], genotype_matrix[j, snp, 1]
                )
            ibs_matrix[i, j] = ibs_sum / genotype_matrix.shape[1]
            ibs_matrix[j, i] = ibs_matrix[i, j]  # 对称矩阵
    return ibs_matrix

# 示例基因型矩阵(个体数×SNP数×2等位基因)
genotype_data = np.array([
    [['A', 'A'], ['G', 'G']],  # 个体1
    [['A', 'G'], ['G', 'G']],  # 个体2
    [['T', 'T'], ['A', 'G']]   # 个体3
])
ibs_matrix = pairwise_ibs(genotype_data)
print("群体IBS矩阵:\n", ibs_matrix)
相关推荐
点云SLAM13 小时前
Eigen中Dense 模块简要介绍和实战应用示例(最小二乘拟合直线、协方差矩阵计算和稀疏求解等)
线性代数·算法·机器学习·矩阵·机器人/slam·密集矩阵与向量·eigen库
老歌老听老掉牙3 天前
SymPy 矩阵到 NumPy 数组的全面转换指南
python·线性代数·矩阵·numpy·sympy
星期天要睡觉3 天前
机器学习——CountVectorizer将文本集合转换为 基于词频的特征矩阵
人工智能·机器学习·矩阵
洋曼巴-young3 天前
240. 搜索二维矩阵 II
数据结构·算法·矩阵
何妨重温wdys3 天前
矩阵链相乘的最少乘法次数(动态规划解法)
c++·算法·矩阵·动态规划
Keying,,,,4 天前
力扣hot100 | 矩阵 | 73. 矩阵置零、54. 螺旋矩阵、48. 旋转图像、240. 搜索二维矩阵 II
python·算法·leetcode·矩阵
易木木木响叮当5 天前
有限元方法中的数值技术:行列式、求逆、矩阵方程
线性代数·矩阵
东方佑6 天前
UniVoc:基于二维矩阵映射的多语言词汇表系统
人工智能·算法·矩阵
火车叨位去19496 天前
力扣top100(day01-05)--矩阵
算法·leetcode·矩阵
厦门辰迈智慧科技有限公司7 天前
现代化水库运行管理矩阵建设的要点
运维·网络·物联网·线性代数·安全·矩阵·监测