news 2026/6/25 20:59:33

使用geneHapR做单倍型分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用geneHapR做单倍型分析

1、以hmp文件为例

chr1_hmp<- read.delim("data/Haplotype/chr1.hmp.txt", check.names=F, header=T)chr1_hmp<- chr1_hmp[,-c(1,5:11)]# 去掉无用的列chr1_hmp_df<- chr1_hmp %>% tidyr::separate(alleles, into=c("REF","Alt"), sep="/")# 将alleles拆分为REF、ALT列chr1_hmp_df<- data.frame(CHR=chr1_hmp_df$chrom, POS=chr1_hmp_df$pos, REF=chr1_hmp_df$REF, Alt=chr1_hmp_df$Alt, INFO="NA", chr1_hmp_df[,-c(1:4)])# 创建新的数据框hap_data<- chr1_hmp_df %>% dplyr::filter(CHR=="1", POS<=20000&POS>=1)# 取一定范围内的数据# 从表格形式的基因型数据开始单倍型分析hapResult<- table2hap(hap_data, hapPrefix="Hap", hetero_remove=TRUE,# 移除包含杂合位点的样本na_drop=TRUE)# 移除包含基因型缺失的样本hapSummary<- hap_summary(hapResult, hapPrefix="Hap")# 官方可视化热图plotHapTable(hapSummary,# 单倍型结果hapPrefix="Hap",# 单倍型名称前缀angle=45,# 物理位置的角度displayIndelSize=0,# 图中展示最大的Indel大小title="Haplotype", ALLELE.color="white")

# 自定义热图hapSummary_df<- hapSummary[c(5:nrow(hapSummary)),]%>% dplyr::select(-c("Accession"))heatmap_data<- hapSummary_df %>%# 创建副本,保留原始频率as_tibble()%>% mutate(row_id=row_number())%>%# 转换为长格式pivot_longer(cols=-c(Hap, freq, row_id),# 排除这些列names_to="position_name",# 原始列名values_to="allele"# 等位基因)%>%# 从列名中提取位置信息mutate(# 提取位置数字(假设列名是pos1, pos2, pos3或类似格式)position=as.numeric(gsub("\\D+","", position_name)),# 提取数字# 如果列名没有数字,则使用列索引position=ifelse(is.na(position), as.numeric(factor(position_name, levels=unique(position_name))), position), hap=Hap)%>%# 排序和选择arrange(desc(freq), hap, position)%>% select(hap, position, allele, freq)%>% ungroup()# 创建热图p3<- ggplot(heatmap_data, aes(x=factor(position), y=reorder(hap, freq), fill=allele))+ geom_tile(color="white", size=0.8, width=0.9, height=0.9)+ geom_text(aes(label=allele), color="white", fontface="bold", size=4)+ scale_fill_brewer(palette="Set1")+ scale_y_discrete(labels=function(x){# 在y轴标签上添加频率freq_values<- heatmap_data %>% distinct(hap, freq)%>% arrange(desc(freq))%>% pull(freq)paste0(x," (", sprintf("%s", freq_values),")")})+ labs(title="Haplotype heatmap",#subtitle = "Visualization of alleles at each polymorphic site",x="Variant Position", y=NULL, fill="Allele")+ theme_minimal(base_size=12)+ theme(axis.text.x=element_text(face="bold", angle=45, color="black"), axis.text.y=element_text(face="bold", color="black"), panel.grid=element_blank(), legend.position="bottom", plot.title=element_text(face="bold", hjust=0.5), plot.subtitle=element_text(hjust=0.5, color="black"))+ guides(fill=guide_legend(nrow=1, byrow=TRUE))print(p3)

# LD heatmapolor.rgb<- colorRampPalette(rev(c("white","red")),space="rgb")assign("name_gap",0.2, envir=.GlobalEnv)p<- plot_LDheatmap(hap=hapResult,# 单倍型结果add.map=FALSE,# 是否添加基因模式图gff=NULL,# 注释信息Chr=NULL,# 染色体名称start=NULL,# 基因的起始位置end=NULL, title=NULL, color=olor.rgb(20), newpage=F)LDheatmap::LDheatmap(gdat=p, title=NULL, text=FALSE,# 单元格不显示数字SNP.name=F)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 22:14:46

JAVA环境下,如何编写一个完整的大文件上传解决方案示例?

大文件传输解决方案设计书 一、需求分析 作为甘肃IT行业软件公司的项目负责人&#xff0c;我全面分析了公司产品部门对大文件传输功能的刚性需求&#xff1a; 核心功能需求&#xff1a; 支持100GB级别单文件传输完整的文件夹传输&#xff08;含层级结构&#xff09;高稳定性断…

作者头像 李华
网站建设 2026/6/14 22:16:47

PHP如何实现网页大文件上传的示例?

文件管理系统毕业设计&#xff1a;从"大文件上传"到"毕业即失业"的求生指南 大家好&#xff0c;我是一名即将毕业的信息安全专业大三学生&#xff0c;正在为毕业设计和找工作焦头烂额。最近在做一个文件管理系统的毕业设计&#xff0c;顺便当作品找工作用…

作者头像 李华
网站建设 2026/6/14 22:14:58

历届图灵奖与诺贝尔奖获得者经典著作清单

历届图灵奖与诺贝尔奖获得者经典著作清单 一、 ACM 图灵奖获得者经典著作 (105本)序号作者书名1Donald Knuth计算机程序设计艺术 (Vol 1-4)2Donald Knuth具体数学3Donald Knuth超实数4Edsger W. Dijkstra编程训练5Edsger W. DijkstraSelected Writings on Computing: A Persona…

作者头像 李华
网站建设 2026/6/14 22:15:59

贪心算法着色是什么?优缺点与实现步骤详解

贪婪算法着色是解决图着色问题的一种简单而高效的启发式方法。它不追求全局最优解&#xff0c;而是在每一步都做出当前看起来最好的选择&#xff0c;为每个顶点分配一种颜色&#xff0c;同时确保相邻顶点颜色不同。这种方法虽然不能保证使用最少的颜色&#xff0c;但在实际应用…

作者头像 李华
网站建设 2026/6/19 9:15:15

9 款 AI 写论文哪个好?实测封神:虎贲等考 AI 凭真材实料 C 位出圈

毕业季的论文战场&#xff0c;AI 工具已成刚需&#xff0c;但 “9 款 AI 写论文哪个好” 的灵魂拷问&#xff0c;让无数毕业生陷入选择困境。作为深耕论文写作科普的测评博主&#xff0c;我耗时三周&#xff0c;以计算机、汉语言文学、临床医学、工商管理 4 个跨专业论文为测试…

作者头像 李华
网站建设 2026/6/21 14:55:12

PHP驼峰命名法详解:大驼峰小驼峰区别与正确用法

在PHP开发中&#xff0c;命名规范直接影响代码的可读性和维护性&#xff0c;其中驼峰命名法是最基础也最重要的约定之一。作为有多年团队协作经验的开发者&#xff0c;我发现遵循统一的命名规范能显著减少沟通成本&#xff0c;提升代码质量。本文将从实际应用出发&#xff0c;分…

作者头像 李华