snp

作者: EZ | 来源:发表于2019-11-12 18:53 被阅读0次
    1. 保留ALT列只突变为一个碱基的行
      1.1 查看snp原文件ALT列的内容
    $ grep -v "#" Summit.sorted.markdup.snp.vcf | awk '{print$5}' | sort | uniq -c
     256872 A
        517 *,A
         82 A,*  
         89 A,C
        121 A,G
        112 A,T
     213232 C
        339 *,C
         35 C,*
         45 C,A
         59 C,G
        133 C,T
     213296 G
        290 *,G
         37 G,*
         44 G,A
         28 G,C
        109 G,T
     258061 T
        507 *,T
         89 T,*
         49 T,A
         34 T,C
         32 T,G
    
    

    1.2 删除ALT列大于一个突变的行
    1.21查找不同突变的类型

    在nptepad++ 中使用正则表达式查找目标行
    .*[AGCT*]{1},[AGCT*]{1}(?!y).*\n
    计数2751次匹配
    总数等于1.1中非单突变的数量
    
    $ grep -v "#" Summit.sorted.markdup.snp.vcf | awk '{print$5}' | wc -l
    944212 #所有突变的行数 不用写NR>1 因为 表头一行前有 #
    
    grep -v "#" Summit.sorted.markdup.snp.vcf | awk  '{if (length($5)==1){print
    $0}}'| wc -l
    941461  # 突变为单碱基的行数
    
    grep -v "#" Summit.sorted.markdup.snp.vcf | awk  '{if (length($5)==3){print $0}}'| wc -l
    2751 #非单突变的行数
    

    1.22 删除非单突变

    cat Summit.sorted.markdup.snp.vcf |sed 's/.*[AGCT*]{1},[AGCT*]{1}(?=\t).*\n//' |grep -v "#" | wc -l
    944212    #使用sed不能删除非单突变
    
    使用notepad++ 删除非单突变的行后得到过滤后的文件Summit.snp.filtered.vcf
    $ grep -v "#" Summit.snp.filtered.vcf | awk '{print$5}' | wc -l
    941461 #与原文件单突变数量一样
    grep -v "#" Summit.snp.filtered.vcf | awk '{print$5}' | sort | uniq -c
     256872 A
     213232 C
     213296 G
     258061 T #得到的不同碱突变基的类型
    

    1.2.3 #查看GT类型

    $ grep -v "#" Summit.snp.filtered.vcf | awk '{print$10}' | awk -F ":" '{print $1}'|sort|uniq -c
     643351 0/1 #杂合突变
     298110 1/1 #纯合突变
    
    1. Summit.snp.filtered.vcf 注释
      2.1 注释前需要构建注释数据库
      下载在对应的注释文件及参考基因组组,
      基因组命名及位置,参考snpeff官方操作说明
      /path/to/snpEff/data/mm37.61/ genes.gtf.gz #注释文件位置,命名为genes.*
      /path/to/snpEff/data/mm37.61/sequences.fa #参考基因组位置,好像只能命名为sequences.fa ,sequences.fna报错
      /path/to/snpEff/data/genomes/mm37.61.fa #参考基因组也可保存在与mm37.61同级的genomes 文件夹下,命名 mm37.61.fa ,mm37.61也是运行snpeff时的参考注释数据名称。
      snpEffectPredictor.bin 为构建数据库生成的文件
    cd /path/to/snpEff
    java -jar snpEff.jar build -gff3 -v  数据库名称
    

    2.1 注释
    Prunusavium 为构建的注释数据库

    $ java -Xmx4g -jar /home/Pomgroup/gdp/app/snpeff_v4.4/snpEff/snpEff.jar Prunusavium ./Summit.snp.filtered.vcf > Summit.snp.ann.vcf && echo "well done" || echo "failure"
    $ grep -v "#" Summit.snp.filtered.vcf |wc -l
    941461
    grep -v "#" Summit.snp.filtered.ann.vcf |wc -l
    941461  #每行都得到注释
    
    
    

    注释成功。
    2.2 注释后文件的统计

    cat Summit.snp.filtered.ann.genes.txt | awk 'NR > 2{print $4}' | sort | uniq -c
       6050 0
        148 1
         11 2
         10 3
      66985 protein_coding
       1580 pseudogene  
    #  在BioType 这一列,为空的不显示内容,内容在两个\t 中间
     cat Summit.snp.filtered.ann.genes.txt | awk -F"\t" 'NR > 2{print $4}' | sort | uniq -c
       6219 (空内容)
      66985 protein_coding
       1580 pseudogene
      指定分隔符 \t
    

    查看snp 注释后的增加的内容

    $ sed 's/AC.*;//' Summit.snp.filtered.ann.vcf |grep -v "#" |awk -F "[\t=]" '{print $8}' | sort | uniq -c
     940708 ANN
        348 LOF
        405 NMD
    $ sed 's/AC.*;//' Summit.snp.filtered.ann.vcf |grep -v "#" | grep "ANN" |awk -F "[\t=]" '{print $8}' | sort | uniq -c
     940708 ANN
    
    

    转换颠换情况

    $ grep -v "#" Summit.snp.filtered.ann.vcf |awk -F "\t" '{print $4$5}' |sort|uniq -c
      48116 AC
     137168 AG
      56626 AT
      53174 CA
      28661 CG
     148040 CT
     147454 GA
      28239 GC
      53395 GT
      56244 TA
     136877 TC
      47467 TG
                 #REF ALT
    

    转换类型为


    转换类型
    颠换类型

    相关文章

      网友评论

        本文标题:snp

        本文链接:https://www.haomeiwen.com/subject/zvwqictx.html