重測序關系矩陣構建方式匯總

樣本間親緣關系矩陣(kinship matrix)和同源性矩陣(IBS matrix)構建的方式

1. 可以使用plink的–make-rel計算個體之間的親緣關系(強調個體之間的遺傳相似性)

/opt/software/plink --bfile vcf_bfile--make-rel --out relatedness_matrix # 得到親緣關系距離矩陣:
# relatedness_matrix.rel

2. kinship

# 利用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

/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(1-IBS)(個體對間均值)

計算所有個體兩兩之間的IBS(1-IBS)均值,反映群體內遺傳相似性、遺傳距離。

python3 /home/huguang/script/GWAS/group_dis.py distance_matrix group_labels # 具體group_dis.py代碼如下
import sys
import numpy as np
import pandas as pd
from itertools import combinationsdef compute_intergroup_distances(distance_matrix, group_labels):"""計算組間遺傳距離矩陣(組間平均距離)參數:distance_matrix: 全樣本的遺傳距離矩陣 (n x n)group_labels: 樣本分組標簽列表 (length = n),例如 [0,0,1,1,2,2]返回:group_dist_matrix: 組間距離矩陣 (k x k),k為組數"""# 參數檢查assert distance_matrix.shape[0] == distance_matrix.shape[1], "距離矩陣必須是方陣"assert len(group_labels) == distance_matrix.shape[0], "標簽數與矩陣維度不匹配"groups = np.unique(group_labels)k = len(groups)group_dist_matrix = np.zeros((k, k))# 計算每對組間的平均距離for i, j in combinations(range(k), 2):# 獲取組i和組j的樣本索引idx_i = np.where(group_labels == groups[i])[0]idx_j = np.where(group_labels == groups[j])[0]# 提取子矩陣submatrix = distance_matrix[np.ix_(idx_i, idx_j)]# 計算平均距離(可替換為中位數等其他統計量)avg_dist = np.nanmean(submatrix)# 對稱賦值group_dist_matrix[i, j] = avg_distgroup_dist_matrix[j, i] = avg_dist# 對角線(組內距離)特殊處理for i in range(k):idx = np.where(group_labels == groups[i])[0]submatrix = distance_matrix[np.ix_(idx, idx)]group_dist_matrix[i, i] = np.nanmean(submatrix[np.triu_indices(len(idx), k=1)])return group_dist_matrix# 示例用法
if __name__ == "__main__":full_matrix = pd.read_csv(sys.argv[1], sep='\t', header=None, index_col=None,  engine='c').to_numpy()groups = pd.read_csv(sys.argv[2], sep="\t", header=None, index_col=None).iloc[:, 0].to_numpy()# 計算組間距離矩陣result = compute_intergroup_distances(full_matrix, groups)print("組間遺傳距離矩陣:")print(np.round(result, 4))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79452.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker 部署前、后端分離項目詳細步驟(從打包到部署)

在平常的開發工作中,一個項目經歷需求、開發、測試、上線等步驟。在開發測試完成后,我們需要部署測試環境、生產環境等,那么我們用 docker 方式應該怎么部署呢?前后端分離的項目又該如何部署呢?那么,今天我…

大語言模型理解一般需求到在專業領域中最大限度地發揮其效能的演變軌跡

在人工智能技術飛速發展的當下,大語言模型(LLM)憑借其強大的語言處理能力和廣泛的應用潛力,成為了各行業關注的焦點。從最初的文本生成、簡單問答,到如今在專業領域的深度應用,大語言模型與用戶的交互模式正…

mindyolo填坑

1、按照gitee上的文檔跑預測代碼,跑不通 更改: 將predict.py復制到跟目錄。如果是cpu(本地測試比較常見),那么正確的命令行是: python predict.py --device_targetCPU --config ./configs/yolov7/yolov7.…

Python集合全解析:從基礎到高階應用實戰

一、集合核心特性與創建方法 1.1 集合的本質特征 Python集合(Set)是一種??無序且元素唯一??的容器類型,基于哈希表實現,具有以下核心特性: ??唯一性??:自動過濾重復元素??無序性??&#xff…

【javascript】競速游戲前端優化:高頻操作與并發請求的解決方案

文章目錄 前言一、性能痛點分析二、核心技術方案1.Web Worker2.Promise高級控制3.智能隊列系統4.游戲化節流設計 三、最佳實踐選擇 前言 在競速類網頁游戲中,玩家高頻點擊與服務器實時交互會引發兩大核心挑戰: 客戶端性能瓶頸:頻繁操作導致…

Linux操作系統系統編程:x86-64架構下的系統調用

在Linux操作系統里,系統編程如同精密儀器的核心部件,掌控著系統運行的關鍵。而 x86-64 架構下的系統調用,更是連接用戶空間程序與內核的關鍵橋梁。你可以把用戶空間的程序想象成一個個 “工匠”,它們有著各式各樣的需求&#xff0…

理解數據湖

目錄 一、數據湖的定義與相關概念 二、數據湖出現的背景 三、數據湖關鍵技術 (一)存儲技術

前端應用開發技術歷程的簡要概覽

前端應用開發技術詳解 一、萌芽期&#xff08;1990s - 2004&#xff09; 技術特征 HTML 3.2 / HTML 4.01 是主流版本。 樣式用 CSS1/CSS2&#xff0c;但大部分樣式寫在 <style> 標簽甚至行內。 動態效果主要通過 JavaScript 控制 DOM&#xff0c;兼容性極差。 代表事…

交換機配置DHCP

交換機配置DHCP 背景先關閉路由器的DHCPconsole口連接到交換機配置交換機 背景 路由器的dhcp分配IP地址變慢&#xff0c;怎么處理 先關閉路由器的DHCP 查看路由器中DHCP地址池范圍; 關閉路由器的DHCP console口連接到交換機 協議Serial端口COMX波特率9600流控無 配置交換機…

解決Flutter項目中Gradle構建Running Gradle task ‘assembleDebug‘卡頓問題的終極指南

解決Flutter項目中Gradle構建Running Gradle task ‘assembleDebug‘卡頓問題的終極指南 前言 在開發Flutter應用時,經常會遇到Gradle構建卡在Running Gradle task assembleDebug階段的問題。本文將分享如何通過配置華為云鏡像和使用自定義腳本下載依賴的方法解決這些問題。…

AI驅動文字冒險游戲

github地址&#xff1a;https://github.com/thornbsj/ImmenseSimGame 雖然游戲比較簡陋&#xff0c;但是由于筆者不想對游戲做過多的“劇透”&#xff0c;因此本文只粗略講一下大致邏輯以及部分代碼&#xff0c;有興趣的朋友可以看上面的倉庫獲得更詳細的部分。 一、狀態機改…

springboot中有關數據庫信息轉換的處理

現代項目一般都是前后端分離的&#xff0c;前端只負責展示數據&#xff0c;不負責對數據處理&#xff0c;所以所有數據處理工作都由后端進行 比如在仿京東中的status&#xff0c;審核信息展示&#xff0c;數據庫中是以0/1顯示&#xff0c;但是前端需要以"審核/未審核&quo…

提示詞版本化管理:AI開發中被忽視的關鍵環節

當我的提示詞"消失"在團隊協作中 上周五下午&#xff0c;我經歷了一場小型"災難"。作為一名AI產品經理&#xff0c;我花了整整三天精心打磨的客服機器人提示詞&#xff0c;在周末更新后突然"失效"了。機器人不再能夠準確識別用戶意圖&#xff0…

Centos Ubuntu RedOS系統類型下查看系統信息

文章目錄 一、項目背景二、頁面三、說明四、代碼1.SysInfo2.EmsSysConfig3.HostInformationController4.HostInfo 一、項目背景 公司項目想展示當前部署系統的&#xff1a;操作系統&#xff0c;軟件版本、IP、主機名。 二、頁面 三、說明 說明點1&#xff1a;查詢系統類型及…

阿里云自動備份網站,阿里云自動備份網站的方法

阿里云提供了多種自動備份網站的方法&#xff0c;適用于不同場景和需求&#xff0c;用戶可根據自身技術能力和業務要求選擇合適的方案。以下是幾種主流的自動備份方法及操作要點&#xff1a; 一、基于云服務器ECS的自動快照備份 適用場景&#xff1a;適用于基于ECS部署的網站…

輸入輸出(python)

open&#xff08;&#xff09;需要和close&#xff08;&#xff09;配合使用 with open () as 不需要用close&#xff08;&#xff09;函數 在python3.0中的一些變動&#xff1a; eval 是編程語言中用于動態執行字符串形式代碼的內置函數 &#xff0c;名稱源于英文 “evaluate”…

Arduino邏輯控制詳細解答,一點自己的想法記錄

一、邏輯控制的基礎概念與核心語法 1.1 邏輯控制的基本原理 邏輯控制是嵌入式系統中最常見的功能之一,其核心在于通過條件判斷(if-else)、循環(for/while)和布爾運算(&&/||)實現對硬件的精確控制。例如,通過按鍵狀態切換LED亮度、根據傳感器數據調整電機轉速…

字符串的相關方法

1. equals方法的作用 方法介紹 public boolean equals(String s) 比較兩個字符串內容是否相同、區分大小寫 示例代碼 public class StringDemo02 {public static void main(String[] args) {//構造方法的方式得到對象char[] chs {a, b, c};String s1 new String(chs);…

JAVA基礎:Collections 工具類實戰指南-從排序到線程安全

在 Java 開發中&#xff0c;集合類幾乎貫穿每一個項目&#xff0c;而Collections工具類提供了一系列強大的方法&#xff0c;用于操作和增強集合的功能。無論是排序、查找還是線程安全的封裝&#xff0c;Collections工具類都是提升代碼效率和質量的重要工具。 一、Collections …

ReLU函數及其Python實現

ReLU函數及其Python實現 文章目錄 ReLU函數及其Python實現1. ReLU函數定義2. Python實現3. 在深度學習中的應用總結 1. ReLU函數定義 ReLU&#xff08;Rectified Linear Unit&#xff0c;修正線性單元&#xff09;函數是深度學習中常用的激活函數之一。它的定義非常簡單&#…