GATK入门

GATK入门GATK 入门的最佳姿势虽然 GATK 的功能超级多 但是主要可以归为以下几个方面 诊断和质量控制工具 Diagnosticsa 序列数据处理工具 SequenceData 变异位点探索工具 VariantDisco 变异位点评估工具 VariantEvalu

  1. Add read groups (Picard tools)
    AddOrReplaceReadGroups.jar I=sorted.bam_file O=s1.rg.bam RGLB=genome RGPL=ILLUMINA
    RGPU=GATKv4 RGSM=sample_name VALIDATION_STRINGENCY=LENIENT
    用了picard tools的AddOrReplaceReadGroups.jar加了read group,根据以前百度GATK的经验,了解GATK要求bam文件的header必须包含@RG,所以这一步应该是前面比对时候,没有在参数中增加相应部分。所以如果我在比对的时候增加了这个参数,这一步就可以免了。


  2. Mark duplicates (Picard tools)
    MarkDuplicates.jar INPUT=s1.rg.bam OUTPUT=s2.dedup.bam ASSUME_SORTED=TRUE
    VALIDATION_STRINGENCY=LENIENT METRICS_FILE=s2.dedup.metrics

用picard tools的MarkDuplicates.jar去重。这是因为二代测序有一部桥式PCR扩增底物的过程,在100x以上出现reads重复,很大可能是PCR扩增重复了,所以可以直接去掉。

  1. Index (samtools)
    samtools index s2.dedup.bam
    samtools的index,建立索引,提高检索效率。

  2. Realign reads (create intervals first, then do IndelRealigner) (GATK)
    GenomeAnalysisTK.jar -I s2.dedup.bam -R ref_file -T RealignerTargetCreator -o s3.intervals
    GenomeAnalysisTK.jar -T IndelRealigner -I s2.dedup.bam -R ref_file -targetIntervals s3.intervals -o
    s4.realn.bam
    先建立indel区间文件,然后对该区域进行reads重比对。这一步我没有经验,然后我在GATK的论坛搜索了这个工具,发现原因是indel会导致附近的错配,所以需要借由这一步降低indel附近的假阳性。但是最新的HaplotypeCaller or MuTect2已经不需要了,这些工具的haplotype组装步奏效果类似。这里的UnifiedGenotyper or the original MuTect.还是要的。



  3. Unified genotyper (GATK)
    GenomeAnalysisTK.jar -T UnifiedGenotyper -R ref_file -I s4.realn.bam -glm BOTH -o s5.UG1.vcf -mbq 30 -nt
    使用UnifiedGenotyper寻找variant。论坛搜索发现,现在推荐用HaplotypeCaller,效果更好。
    4


  4. Base score recalibrator (GATK)
    GenomeAnalysisTK.jar -T BaseRecalibrator -I s4.realn.bam -R ref_file -knownSites s5.UG1.vcf -o s6.recal

根据上一步得到vcf文件对第四步得到BAM文件进行碱基重校准,得到校准所需的文件。

  1. Print Reads (GATK)
    GenomeAnalysisTK.jar -T PrintReads -R ref_file -I s4.realn.bam -BQSR s6.recal -o s7.recal.bam
  2. Unified Genotype (GATK)
    GenomeAnalysisTK.jar -T UnifiedGenotyper -R ref_file -I s7.recal.bam -glm BOTH -o s8.UG2.vcf -mbq 30
  3. Base score recalibrator (GATK)
    GenomeAnalysisTK.jar -T BaseRecalibrator -I s4.realn.bam -R ref_file -knownSites s8.UG1.vcf -o s9.recal
  4. Print Reads (GATK)
    GenomeAnalysisTK.jar -T PrintReads -R ref_file -I s4.realn.bam -BQSR s9.recal -o s10.recal.bam
  5. Unified Genotyper (GATK)
    GenomeAnalysisTK.jar -T UnifiedGenotyper -R ref_file -I s10.recal.bam -glm BOTH

基本方法就是以生物学意义的方式计算基因表达量,然后通过统计学分析表达量寻找具有统计学显著性差异的基因,从而

说人话就是,基因A和基因B的平均值之差与两者中较小的比值。选择2-3倍的基因作为结果(为什么是2-3倍,就是大家约定俗成)。

用到的数据来自于一篇文献“A pooled shRNA screen for regulators of primary mammary stem and progenitor cells identifies roles for Asap1 and Prox1”。

install.packages(“R.utils”)

read.delim(files[1], nrow=5)

EntrezID GeneLength Count

sample1 <- read.delim(files[1],header = T)[,c(1,3)]

count.table <- data.frame(sample1)

然后要提供colData,其中colData存放列名要和countData的行名相同。

colData

all(rownames(colData) %in% colnames(count.table))

最后导入数据:

到底用啥:数据集小于30 -> rlog,大数据集 -> VST。还有这个处理过程不是用于差异检验的,在DESeq分析中会自动选择最合适的所以你更不需要纠结了,记得用raw count。

dds <- estimateSizeFactors(dds)

colnames(df)[1:2] <- c(“x”, “y”)

结果就是转换后更加集中了。

同样的可以用Poisson Distance (Witten 2011)计算距离,计算方式如下:

plotPCA(rld,intgroup=c(“condition”))

能够明显的发现不同处理的距离离得很远。

比如可以指定比较对象Basal和PL,可以用mcols查看结果存储的元数据,了解列名的含义。

于是乎结果就和limma差不多了。

为什么要做多重试验矫正?

如果我们选择了所有小于或等于矫正p-value阈值的所有显著性基因,假阳性比例( false discovery rate, FDR)是多少?

Up

head(resSig[ order(resSig$log2FoldChange), ])

Down

head(resSig[ order(resSig$log2FoldChange, decreasing = TRUE), ])

heatmap

大致可以发现同一组的基因颜色是相同的,也就是说表达量相近。

首先对基因表达分析(上)做一个简单的回顾

然后用Salmon建立索引:

salmon index -t athal.fa.gz -i athal_index

tximport可以纠正不同样本基因长度的潜在改变(比如说differential isoform usage);能够用于导入 (Salmon, Sailfish, kallisto)程序的输出文件;能够避免丢弃那些比对到多个基因的同源序列,从而提高灵敏度

install.packages(“readr”)

install.packages(“rsjon”)

reading in files with read_tsv

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

summarizing abundance

summarizing counts

summarizing length

head(txi l e n g h t ) h e a d ( t x i lenght) head(txi lenght)head(txicounts)

我希望通过循环的方式,以每个matrix的两列作为输入做线性拟合, 如下

lm(u[,1]~u[,2])

我忘记了c()会把所有matrix降成一维,这就很尴尬了。这是因为R不支持对非向量集合的循环操作。如果想实现非向量集合的循环,只能曲线救国,如lapply或get,这里介绍get。

for (m in c(“u”,“v”)){

  • z <- get(m) 
  • print(z) 
  • }
    [,1] [,2]
    [1,] 1 9
    [2,] 2 10
    [3,] 3 11
    [4,] 4 12
    [5,] 5 13
    [6,] 6 14
    [7,] 7 15
    [8,] 8 16
    [,1] [,2]
    [1,] 17 23
    [2,] 18 24
    [3,] 19 25
    [4,] 20 26
    [5,] 21 27
    [6,] 22 28















于是,这解决了我昨天晚上遇到的问题。我打算对3个DESeq2的比较table进行过滤,

本来代码长下面这个样子,各种他提示错误:

所以最后的代码长这个样子:

其实可以用list,然后用lapply, 然后分别提取的。

resSigUp <- lapply(list(res1,res2,res3), subset, padj < 0.01 & log2FoldChange >0 )

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231470.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Servlet.service() for servlet [dispatcherServlet] in context with path [] th

    Servlet.service() for servlet [dispatcherServlet] in context with path [] th控制台报错信息Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Requestprocessingfailed;nestedexceptionisjava.lang.NullPointerException]withrootcausee1.controller层没有加@ResponseBody2.Service层实现类未添加注解@Autowired记

    2022年5月8日
    328
  • mac电脑无法读取移动硬盘(mac无法写入移动硬盘)

    起因苹果电脑一般都是容量不大,大点的又贼贵,于是很多机智的小伙伴选择用移动硬盘或U盘来解决。然鹅,很多小伙伴可能会碰到这样的问题:移动硬盘只读且没法写入!这是因为你买的移动硬盘是NTFS格式的,而macOS无法识别NTFS格式。解决方法(不推荐)将移动硬盘或U盘格式化成macOS能识别的格式,但这样移动硬盘或U盘可能无法在Windows电脑上使用!(推荐TuxeraNTFS)借助第三方软件实现NTFS格式的读写对比过其他的NTFS软件,还是觉得Tux

    2022年4月12日
    180
  • 通达信常用颜色及图标「建议收藏」

    通达信常用颜色及图标「建议收藏」颜色代码大全:1)COLOR自定义色格式为COLOR+“RRGGBB”:RR、GG、BB表示红蓝色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制)例如:MA5:MA(CLOS

    2022年8月1日
    22
  • 一些好玩的cmd命令_好玩cmd命令

    一些好玩的cmd命令_好玩cmd命令前言:CMD是什么?在windows环境下,命令行程序为cmd.exe。是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序。类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行。比如输入shutdown-s就会在30秒后关机。总之,它非常有用。很多朋友往往都对黑客比较崇拜,其实黑客也只是比我们知道更多一些我们所不了解的电脑相关命令。在使用中…

    2022年9月22日
    3
  • 堆栈callstack打印

    堆栈callstack打印一、适用java1、Log.d(TAG,Log.getStackTraceString(newThrowable()));//在使用Log.d的场合2、newException(“testprintkstack”).printStackTrace();Note:还有其他方法,可以参考网络

    2025年7月26日
    5
  • token身份认证机制(token怎么获取)

    目录1发展史2Cookie3Session3.1cookie和session的区别4Token4.1传统方式——基于服务器的验证4.2基于服务器验证方式暴露的一些问题4.3基于Token的验证原理4.5Tokens的优势参考文献1发展史1、很久很久以前,Web基本上就是文档的浏览而已,既然是浏览,作为服务器,不需要记录谁在某…

    2022年4月14日
    295

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号