• vcf 文件如何修改染色体修改样本名称提取样本


    大家好,我是邓飞。

    对于vcf文件和plink文件是经常用的文件,对于基因型数据的处理,一般分为:

    • 数据质控
    • 数据提取
    • 染色体修改名称
    • 样本修改名称

    今天介绍一下vcf文件的三个处理方法:

    • 1,染色体修改
    • 2,样本名称修改
    • 3,样本提取

    用到的软件是bcftools,用到的系统是Linux

    1. 数据描述

    数据使用GWAS-Cookbook中的GWASdat1中的数据,将数据变为vcf格式。

    相关基因型数据,可以在这里下载:快来领取 | 飞哥的GWAS分析教程更新啦

    将plink的二进制文件,变为vcf的代码:

    plink --bfile ../../gwas_cookbook/GWAS-dat1/1_QC_GWAS/HapMap_3_r3_1 --recode vcf-iid --out test1
    
    
    • 1
    • 2


    vcf预览:

    2. vcf文件修改染色体名称


    整理染色体修改对应关系:

    awk '{print $1}' HapMap_3_r3_1.bim |sort |uniq >chr.txt
    awk '{print $1,"chr"$1}' chr.txt >chr_rename.txt
    
    • 1
    • 2

    整理好的对应关系:

    $ cat chr_rename.txt 
    1 chr1
    10 chr10
    11 chr11
    12 chr12
    13 chr13
    14 chr14
    15 chr15
    16 chr16
    17 chr17
    18 chr18
    19 chr19
    2 chr2
    20 chr20
    21 chr21
    22 chr22
    23 chr23
    25 chr25
    3 chr3
    4 chr4
    5 chr5
    6 chr6
    7 chr7
    8 chr8
    9 chr9
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    代码:

     bcftools annotate --rename-chrs chr_rename.txt -Oz -o test2.vcf.gz test1.vcf 
    gzip -d test2.vcf.gz 
    less -S test2.vcf 
    
    • 1
    • 2
    • 3

    修改后的结果:


    可以看到,已经修改过了。

    3. 修改样本的名称

    样本对应关系txt文件整理:

    awk '{print $2}' HapMap_3_r3_1.fam |head >sname.txt
    awk '{print $1,"new_"$1}' sname.txt >sname_change.txt
    
    • 1
    • 2

    对应关系文件内容:

    $ head sname_change.txt 
    NA06989 new_NA06989
    NA11891 new_NA11891
    NA11843 new_NA11843
    NA12341 new_NA12341
    NA12739 new_NA12739
    NA10850 new_NA10850
    NA06984 new_NA06984
    NA12877 new_NA12877
    NA12275 new_NA12275
    NA06986 new_NA06986
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    代码:

    bcftools reheader -s sname_change.txt test1.vcf -o test3.vcf.gz
    
    • 1

    修改后的vcf:

    4. 提取vcf样本

    代码:

    bcftools view -S sname.txt test1.vcf -Ov > test4.vcf
    
    • 1

    提取后的文件:

    搞定!

  • 相关阅读:
    vue3+antdv 表格封装
    49.集群节点维护—滚动升级-2
    手机充电器成精会怎样?sanag塞那K30,自带插头和数据线的充电宝
    Docker(1)
    pnpm - Failed to resolve loader: cache-loader. You may need to install it.
    用idea工具scala 和 Java开发 spark案例:WordCount
    linux使用操作[3]
    电子日历-参数
    场景应用:利用Redis实现分布式Session
    ABAP 选择屏幕多页签
  • 原文地址:https://blog.csdn.net/yijiaobani/article/details/133757153