ChIP-seq实践

news2024/11/28 10:36:04

参考文章:
ChIP-seq实践(H3K27Ac,enhancer的筛选和enhancer相关基因的GO分析)
一文讲明白ChIP-seq:高分文章里为什么做ChIP-seq?
ChIP-seq实践(非转录因子,非组蛋白)
一文读懂 ChIPseq
BED文件格式

一、测序数据质量控制

二、序列比对

比对的目的就是“推本溯源”,把我们的reads比对到参考基因组上,利用Bowtie2或这BWA看看我们过滤后的reads能匹配到基因组的什么位置。测序reads和基因组之间并非完全match上,中间会存在几个mismatch,有可能是因为测序错误,也有可能是存在变异位点。

Bowtie2
BWA
#比对
bwa mem -M /public/slst/home/BIO2083/reference/hg38/bwa_index/hg38 /public/slst/home/BIO2083/Class/Class7_ChIP-seq/rawdata/K562_H3K27ac.fastq.gz > K562_H3K27ac.sam
#转换为bam文件
samtools view -bS K562_H3K27ac.sam > K562_H3K27ac.bam 
#bam文件排序
samtools sort K562_H3K27ac.bam -o K562_H3K27ac_sorted.bam 
samtools sort K562_INPUT.bam -o K562_INPUT_sorted.bam
samtools index K562_H3K27ac_sorted.bam

#分别去除PCR duplicates得到K562_H3K27ac.deduped.bam和K562_INPUT.deduped.bam文件
/public/slst/home/BIO2083/software/bin/java -Xmx16g -jar /public/slst/home/BIO2083/software/bin/picard.jar MarkDuplicates -I K562_H3K27ac_sorted.bam -O K562_H3K27ac.deduped.bam -REMOVE_DUPLICATES true -ASSUME_SORTED true -VALIDATION_STRINGENCY LENIENT -VERBOSITY ERROR -M K562_H3K27ac_metrics.txt
/public/slst/home/BIO2083/software/bin/java -Xmx16g -jar /public/slst/home/BIO2083/software/bin/picard.jar MarkDuplicates -I K562_INPUT_sorted.bam -O K562_INPUT.deduped.bam -REMOVE_DUPLICATES true -ASSUME_SORTED true -VALIDATION_STRINGENCY LENIENT -VERBOSITY ERROR -M K562_INPUT_metrics.txt
/public/slst/home/BIO2083/software/bin/java -Xmx40g
#这部分指定了Java可执行文件的路径。Java是运行Picard工具的必要环境。-Xmx40g 是一个Java虚拟机(JVM)的选项,用于设置最大堆内存大小为40GB。这意味着Picard将能够使用最多40GB的内存来处理数据,这对于处理大型BAM文件非常重要。
-jar /public/slst/home/BIO2083/software/bin/picard.jar
#-jar 选项告诉Java虚拟机要运行一个打包成JAR(Java ARchive)文件的应用程序。
/public/slst/home/BIO2083/software/bin/picard.jar 
#是Picard工具集的JAR文件的路径。
MarkDuplicates
#这是Picard工具集中用于标记重复序列的命令。
-I K562_H3K27ac_sorted.bam
#-I 选项指定输入文件,这里是已经排序的BAM文件K562_H3K27ac_sorted.bam。BAM文件是存储测序读段(reads)的二进制格式文件。
-O K562_H3K27ac.deduped.bam
#-O 选项指定输出文件的名称,这里是处理后的去重BAM文件K562_H3K27ac.deduped.bam。
-REMOVE_DUPLICATES true
#这个选项设置为true,意味着在输出文件中将实际移除重复序列,而不仅仅是标记它们。
-ASSUME_SORTED true
#由于输入文件已经被排序,这个选项设置为true可以告诉Picard跳过排序步骤,从而提高处理速度。
-VALIDATION_STRINGENCY LENIENT
#这个选项设置Picard在验证输入文件时的严格程度。LENIENT模式意味着Picard会对输入文件中的小问题采取宽容态度,不会因这些问题而失败。
-VERBOSITY ERROR
#这个选项控制Picard在运行时输出日志信息的详细程度。ERROR级别意味着只有错误信息会被输出,这有助于减少日志文件的噪音。
-M K562_H3K27ac_metrics.txt
#-M 选项指定一个文件来存储关于重复序列的度量信息,这里是K562_H3K27ac_metrics.txt。这个文件将包含有关输入文件中重复序列的统计信息。

三、Peak calling

Peak calling用MACS寻找基因组中大量短读片段富集的区域。实际上表观组学的数据都会用到Peak calling这个概念,都是抓取特定区域的DNA片段,通过测序定量地看这些区域的reads数量,得到Peak 在基因组上的位置信息、peak 富集信息等等。
测序得到的 DNA 片段匹配映射到参考基因组,这些DNA片段其实是随机的,靶蛋白结合的片段越多,测序获得的数据就越多,那么在该位置检测到 DNA 片段堆叠就会越高,反之如果没有蛋白结合,在该位置就会几乎没有DNA 片段堆叠,将这些DNA片段堆叠用柱状图画出来,就会得到文章里出现的峰图 (Peak)。
横向代表基因组坐标,纵向代表ChIP-seq的信号强度,在文章中可能看到过有的峰图不只是向上的,还有向下的,水平线上方的峰代表正方向的,下方的代表互补链,有的一上一下有些错位,是测序造成的。转录因子的结合和组蛋白修饰,二者的峰形差异很明显:
转录因子结合的特征峰,峰型高,而且窄;而组蛋白修饰结合的特征峰,峰型起伏,而且宽。
macs2 callpeak --nomodel -B --SPMR -g hs -t /public/slst/home/BIO2083/student/hemiaomiao2024222204/Class7_test1/K562_H3K27ac.deduped.bam -c /public/slst/home/BIO2083/student/hemiaomiao2024222204/Class7_test1/K562_INPUT.deduped.bam --outdir /public/slst/home/BIO2083/student/hemiaomiao2024222204/Class7_test1/K562_H3K27ac -n K562_H3K27ac --broad

-t 指定实验组 BAM 文件。
-c 指定对照组 BAM 文件。
-f 指定输入文件格式为 BAM。
-g 指定基因组大小(这里使用 hs 代表人类基因组,但你可能需要根据实际情况调整)。
–qvalue-cutoff 设置 FDR 阈值(这里使用 0.00001,与图片中的 <0.00001 略有不同,但意思相近;你可能需要根据实际需求调整)。
–nomodel 表示不使用模型来估计背景 lambda。
–extsize 设置片段扩展大小(这里使用 147,但你可能需要根据实际情况调整)。
–call-summits 表示只调用峰顶位置。
-o 指定输出文件。
–SPMR:这个选项启用单峰模型(Single Peak Model with Random shift),它通过在每个读段(read)的范围内随机移动读段的起始位置来减少局部聚集效应,从而更准确地检测峰。
-n:指定输出文件的前缀名,所有输出文件将以此前缀命名。
–broad:这个选项表示输出的峰可能是宽泛的(broad peaks),这通常用于检测如H3K27ac这样的组蛋白修饰,这些修饰往往覆盖较宽的基因组区域。


```bash
#去除与blacklist overlap的region并且使⽤FDR < 0.00001进⾏peak筛选
bedtools subtract -a K562_H3K27ac_peaks.broadPeak -b /public/slst/home/BIO2083/reference/hg38/hg38-blacklist.v2.bed -A | perl -alne 'print if $F[8]>=5' > K562_H3K27ac_subtracted.bed

四、Peak annotation与可视化

所谓Peak注释,就是得到了靶蛋白在基因组区域的结合峰位置后,对峰位置进行注释。注释有两类,genomic annotation和nearest gene annotation:

  • genomic annotation是看peak在基因组的位置,在各种基因组区域(基因上下游,5,3端UTR,启动子,内含子区)分布情况;
  • nearest gene annotation是peak相对于转录起始位点(TSS)的距离,不管这个peak是落在内含子或者别的什么位置上,都能够找到一个离它最近的基因(即使它可能非常远),这种主要是应用于基因表达调控,因为启动子区域是重点,所以离TSS最近的基因更有可能被调控,所以这些peak区域附近的基因就作为其候选的调控基因。

目前启动子区域没有明确定义,在基因内部或距离TSS 2.5kb的peak被认为是靶基因。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何写出好证明(支持思想的深入数学写作)

不断的修改和精炼是写作过程中的重要环节&#xff0c;数学写作最终目的是提供对问题的深刻洞察而非仅仅陈述细节。 根据harvey mudd college Francis Su教授的《GUIDELINES FOR GOOD MATHEMATICAL WRITING》讲稿&#xff0c;总结出撰写好的数学证明需要注意以下几个要点&#x…

中英双语介绍DeepSpeed 的 ZeRO 优化

DeepSpeed 的 ZeRO 优化&#xff1a;通俗易懂的原理与实践指南 引言 在深度学习的大规模模型训练中&#xff0c;显存瓶颈是常见的挑战。DeepSpeed 提供了革命性的 ZeRO (Zero Redundancy Optimizer) 优化技术&#xff0c;为大模型训练节省显存、提高效率提供了强有力的工具。…

如何将 GitHub 私有仓库(private)转换为公共仓库(public)

文章目录 如何将 GitHub 私有仓库转换为公共仓库步骤 1: 登录 GitHub步骤 2: 导航到目标仓库步骤 3: 访问仓库设置步骤 4: 更改仓库可见性步骤 5: 确认更改步骤 6: 验证更改注意事项 如何将 GitHub 私有仓库转换为公共仓库 在软件开发领域&#xff0c;GitHub 是一个广受欢迎的…

【webrtc】 mediasoup中m77的IntervalBudget及其在AlrDetector的应用

IntervalBudget 用于带宽控制和流量整形 mediasoup中m77 代码的IntervalBudget ,版本比较老IntervalBudget 在特定时间间隔内的比特预算管理,从而实现带宽控制和流量整形。 一。 pacedsender 执行周期: 下一次执行的时间的动态可变的 int64_t PacedSender::TimeUntilNextPr…

Z2400023基于Java+Servlet+jsp+mysql的酒店管理系统的设计与实现 源码 调试 文档

酒店管理系统的设计与实现 1.摘要2.主要功能3. 项目技术栈运行环境 4.系统界面截图5.源码获取 1.摘要 本文介绍了一个基于Java的酒店管理系统&#xff0c;该系统采用Servlet、JSP、JDBC以及c3p0等技术构建&#xff0c;为酒店提供了一个全面的管理平台。该系统不仅适合酒店进行…

《操作系统 - 清华大学》5 -5:缺页异常

文章目录 1. 缺页异常的处理流程2.在何处保存未被映射的页&#xff1f;3. 虚拟内存性能 1. 缺页异常的处理流程 缺页中断的处理过程: CPU读内存单元&#xff0c;在TLB中根据其虚拟地址匹配物理地址&#xff0c;未命中&#xff0c;读页表; 由于页表项的存在位为0&#xff0c;CP…

C++:多态的原理

目录 一、多态的原理 1.虚函数表 2.多态的原理 二、单继承和多继承的虚函数表 1、单继承中的虚函数表 2、多继承中的虚函数表 一、多态的原理 1.虚函数表 首先我们创建一个使用了多态的类&#xff0c;创建一个对象来看其内部的内容&#xff1a; #include<iostre…

Ubuntu 硬盘分区并挂载

一、什么是挂载 1.挂载的定义 在 Ubuntu&#xff08;或其他 Linux 系统&#xff09;中&#xff0c;挂载&#xff08;Mount&#xff09; 是将一个存储设备或分区连接到系统的文件系统层次结构中的过程。挂载后&#xff0c;你可以通过某个目录&#xff08;挂载点&#xff09;访问…

python-docx -- 读取word页眉、页脚

文章目录 sections介绍访问section添加section页眉、页脚综合案例:sections介绍 word支持section的概念,即一个文档的划分部分,不同的部分均包含相同的页面布局设置,如相同的边距、页面方向等;在每个section中可以定义页眉、页脚来应用于该section下的所有页面;大部分wor…

开源加密库mbedtls及其Windows编译库

目录 1 项目简介 2 功能特性 3 性能优势 4 平台兼容性 5 应用场景 6 特点 7 Windows编译 8 编译静态库及其测试示例下载 1 项目简介 Mbed TLS是一个由ARM Maintained的开源项目&#xff0c;它提供了一个轻量级的加密库&#xff0c;适用于嵌入式系统和物联网设备。这个项…

《生成式 AI》课程 第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)

资料来自李宏毅老师《生成式 AI》课程&#xff0c;如有侵权请通知下线 Introduction to Generative AI 2024 Springhttps://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php 摘要 这一系列的作业是为 2024 年春季的《生成式 AI》课程设计的&#xff0c;共包含十个作业。…

公司金融期末考试题目

公司金融期末考试题 选择题 1.现金折扣和信用条件&#xff08;教材P253&#xff09; 题目类似&#xff1a; 下列不属于信用条件的是&#xff08;&#xff09;。 现金折扣 数量折扣信用期限 折扣期限 给定的信用条件为"1/10&#xff0c;n/40"&#xff0c;则其含义…

【前端】JavaScript中的字面量概念与应用详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;字面量1. 数字字面量2. 字符串字面量3. 布尔字面量4. 空值字面量&#xff08;null&#xff09;5. 对象字面量6. 数组字面量7. 正则表达式字面量8. 特殊值字面量9. 函数字…

Kotlin DSL Gradle 指南

本文是关于 Kotlin DSL Gradle 的指南&#xff08;上篇&#xff09;&#xff0c;介绍了 Gradle 作为 Android 开发构建工具的作用及优势&#xff0c;包括初始配置、生命周期、依赖管理、Task 相关内容。如 Task 的创建、自定义、各种方法和属性&#xff0c;以及文件操作等&…

Web开发:使用stackexchange.redis库对redis进行增删改查

一、安装第三方库 二、官网 StackExchange.Redis |通用型 redis 客户端 三、连接示例 private static string redisConnectionString "localhost:6379,passwordyourpassword,defaultDatabase0,allowAdmintrue,asyncTimeout10000";private static string redisConn…

2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现

目录 第一题握手&#xff0c;这个直接从49累加到7即可&#xff0c;没啥难度&#xff0c;后面7个不握手就好了&#xff0c;没啥讲的&#xff0c;(然后第二个题填空好难&#xff0c;嘻嘻不会&#xff09; 第三题.好数​编辑 第四题0R格式 宝石组合 数字接龙 最后一题:拔河 第…

Django基础之路由

一.前言 前面我们说了django的安装于基础配置&#xff0c;基础知识点我就细分下来&#xff0c;每天和大家讲一点&#xff0c;今天就要和大家说django的基础知识点了&#xff0c;我们今天先来讲路由&#xff0c;内容不多&#xff0c;希望大家记住 二.传统路由 路由就是前面一个…

gitlab ssh-key 绑定

windows环境下配置 gitlab的ssh key&#xff1a; 1.打开本地git bash,使用如下命令生成ssh公钥和私钥对: ssh-keygen -t rsa -C xxxxxx.com 2.一直回车&#xff1b; 3.然后打开公钥文件&#xff1a;C:/Users/Administrator/.ssh/id_rsa.pub文件&#xff0c;复制其中的内容; 4…

26.100ASK_T113-PRO 测试摄像头 输出信息

1.测试代码 读到摄象头参数 输出 video_test.c #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <unistd.h> #include <stdio.h> #include <string.h> #include <linux/type…

【人工智能】深入解析GPT、BERT与Transformer模型|从原理到应用的完整教程

在当今人工智能迅猛发展的时代&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域涌现出许多强大的模型&#xff0c;其中GPT、BERT与Transformer无疑是最受关注的三大巨头。这些模型不仅在学术界引起了广泛讨论&#xff0c;也在工业界得到了广泛应用。那么&#xff0c;G…