GWAS丨hmp文件与表型处理算法

算法:hmp文件转化与表型匹配

引言

分析过程中,如果已经得到了hmp文件,下一步是将表型数据与hmp中的基因型数据一一对应,保证两者的样品ID信息一致,还需要对数据的格式进行规范化处理,用于后续的GWAS分析。

本文提供一种算法,能够实现对hmp文件和表型数据的关联筛选与校正。


主要步骤与设计思路

  • 读取hmp文件和表型数据
  • 替换hmp文件中的染色体编号格式
  • 两表关联后迭代提取匹配的观测值
  • 基因型和表型文件整理

项目运行环境

  • centos7 linux
  • R4.2.3

具体操作步骤

加载R包与数据

library(tidyverse)

chr_ref <- read.table("01_scripts/chr_num2str.txt",header = T)
df <- read_table(paste0("04_hmp/gene_",job,".hmp.txt"),show_col_types = F)
trait <- read_table(paste0("05_trait/","trait.txt"),show_col_types = F)

读取三个数据文件,其中第一个是染色体ID个不同格式对应信息,第二个是基因型hmp.txt文件,第三个是表型数据文件。

染色体格式转换

  • chr_id_translate 函数
chr_id_translate <- function(data,type){
  # 输入俩参,一为原始数据,二为类型
  if (type == "1_to_chr1A"){
    # 数字转字符型
    old_id <- as.character(data)
    for (k in 1:nrow(chr_ref)){
      if (as.character(chr_ref$chr_num[k]) == old_id){
        return(chr_ref$chr_str[k])
      }
    }
  }else{
    if (type == "chr1A_to_1"){
      # 字符转数字型
      old_id <- as.character(data)
      for (k in 1:nrow(chr_ref)){
        if (as.character(chr_ref$chr_str[k]) == old_id){
          return(chr_ref$chr_num[k])
        }
      }
    }else{
      if (type == "1_to_1A"){
        old_id <- as.character(data)
        for (k in 1:nrow(chr_ref)){
          if (as.character(chr_ref$chr_num[k]) == old_id){
            new <- paste0(chr_ref$atom7[k],chr_ref$atom3[k],sep="")
            return(new)
          }
        }
      }else{
        print("Please input again! type inaviably")
      }
    }
  }
}

该函数提供了一种对染色体格式的快速转换方法,可以对数字型、字符型、全称之间进行快速转换,第一个参数是原始的编号,第二个参数选择转换方式,返回值是一个新的染色体编码值。

  • 批量替换
for (i in 1:nrow(df)){
  df$chrom[i] <- chr_id_translate(
  df$chrom[i],type = "1_to_1A")
}

通过迭代将所有的数值型染色体编号换成数字加字母型。

基因型和表型匹配筛选

  • 数据转换与处理
df2 <- rbind(colnames(df),df)
df_gene <- t(df2)
df_add_gene <- matrix(ncol = ncol(df_gene))
df_add_gene <- df_add_gene[-1,]
df_add_trait <- matrix(ncol = ncol(trait))
df_add_trait <- df_add_trait[-1,]
df_gene <- as.data.frame(df_gene)

对原始数据进行转置,目的是为了让基因型中样品ID按行排布,方便后续筛选,定义一个新的数据框用于储存迭代输出信息。

  • 迭代提取匹配观测值
for (i in 1:nrow(df_gene)){
  id_gene <- df_gene$V1[i]
  for (k in 1:nrow(trait)){
    id_trait <- trait$ID[k]
    if (id_gene == id_trait){
      my_gene <- df_gene[i,]
      my_trait <- trait[k,]
      df_add_gene <- rbind(df_add_gene,my_gene)
      df_add_trait <- rbind(df_add_trait,my_trait)
    }else{
      next
    }
  }
}

通过上述方法可以找出两个表格中完全匹配的样品,生成的df_add_gene是所有匹配到的基因型文件,df_add_trait是所有对应的表型文件。后续可以直接拿来做GAPIT分析。

结果输出与保存

out_gene <- rbind(df_gene[1:11,],df_add_gene)
out_genet <- t(out_gene)
gene_final <- as.data.frame(out_genet)
write.table(gene_final,paste0("./06_out_gene/",job,".gene.hmp.txt"),
            quote = F,sep = "\t",col.names = F,row.names = F)
trait_final <- as.data.frame(df_add_trait)

write.table(trait_final,paste0("./07_out_trait/",job,".trait.txt"),
            quote = F,sep = "\t",col.names = T,row.names = F)
print(paste0(job," hmp and trait formate finished!"))

重新合并头文件并转置,恢复原有结构,然后分别将两个结果保存到对应文件夹中。

本文由mdnice多平台发布

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GWAS数据库是一种综合性数据资源,用于存储人类基因组关联研究(GWAS)的结果。GWAS是通过比较大量患病人群和正常人群的基因组数据,寻找与特定疾病或表型特征相关的基因变异。 在GWAS数据库中,可以下载VCF(Variant Call Format)文件,这是一种常用的基因组变异数据文件格式。VCF文件包含了在GWAS研究中鉴定的单核苷酸多态性(Single Nucleotide Polymorphisms,SNPs)和其他变异类的信息。 通过下载VCF文件,研究人员可以进行以下方面的分析: 1. 变异位点信息:VCF文件提供了每个变异位点的位置、基因组坐标、基因等信息。这有助于寻找与特定疾病或表型特征关联的具体变异位点。 2. 群体频率:VCF文件中会包含不同群体中该变异位点的频率信息,研究人员可以分析不同群体中的遗传变异差异,以及变异在不同人群中的分布情况。 3. 基因注释信息:VCF文件还提供了对变异位点的基因注释信息,如变异位点所在的基因、相关功能区域、该变异位点可能的影响等。这有助于研究人员理解变异位点与疾病或表型特征之间的功能联系。 4. 数据比对与整合:研究人员可以将下载的VCF文件与其他基因组数据进行比对和整合,如基因表达数据、蛋白质交互数据等,以全面理解变异位点与疾病或表型特征之间的关系。 总之,通过下载GWAS数据库的VCF文件,研究人员可以获取到与特定疾病或表型特征相关的基因组变异信息,为进一步的研究提供数据基础。这些数据对于深入了解疾病的遗传基础和个体差异具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信分析笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值