前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Chip-seq上游分析流程学习(二)

Chip-seq上游分析流程学习(二)

原创
作者头像
凑齐六个字吧
修改2024-11-19 06:59:45
修改2024-11-19 06:59:45
14600
代码可运行
举报
文章被收录于专栏:基因组基因组
运行总次数:0
代码可运行

本次分析步骤包括:环境部署——数据下载——查看数据(非过滤)——数据质控清洗——数据比对

分析步骤
1.数据质控清洗:
fastp质控清洗
代码语言:javascript
代码运行次数:0
复制
# 由于笔者这里存储的有点乱,所以会比较复杂
# 使用者在自行使用的时候,如果觉得设置路径很麻烦就把文件全放一个文件夹下面,先学会再说
# 定义变量,指定工作目录路径
# path路径需要通过pwd确定

# 可以选择写一个shell脚本
# 把下面代码输入进去
#!/bin/bash

# 也可以直接复制这些代码进行运行
path="/home/lm/Z_Projects/chipseq"
# 可以cd路径或者手动cd
# cd ${path}

mkdir clean

cat SRR_Acc_List.txt | while read id;
do
 nohup fastp \
    -i ${path}/fastq/${id}.fastq.gz \
    -o ${path}/clean/${id}.fq.gz \
    -j ${path}/clean/${id}.fastp.json \
    -h ${path}/clean/${id}.fastp.html &
done

# -i 输入的文件名及其文件路径
# -o 输出的fq.gz文件名及其文件路径
# -j 输出的json文件名及其文件路径
# -h 输出的html文件名及其文件路径
  1. :,这是用来获取变量值的标记。当在脚本中写变量名或{变量名}时,会替换它为该变量的实际值。{},大括号在这里用来明确变量的边界。这在变量名可能与其后的文本混淆时特别有用,但在很多情况下它们也被用来提高可读性。
  2. 运行后的情况
  1. 基本统计(Read1 before filtering 和 Read1 after filtering) total reads: 处理前后的总读取数。 total bases: 处理前后的总碱基数。 Q20 bases: 质量值 ≥ 20 的碱基百分比(这表示错误率小于 1%)。 Q30 bases: 质量值 ≥ 30 的碱基百分比(这表示错误率小于 0.1%)。 效果:在质量过滤后,总读数略有减少,但Q20和Q30的百分比通常会有所提高,表明去除了低质量的读取,保留了高质量的数据。
  2. 过滤结果(Filtering result) reads passed filter: 过滤后通过的读取数。 reads failed due to low quality: 因质量低而未通过过滤的读取数。 reads failed due to too many N: 因含有太多未确定碱基(N)而未通过的读取数。 reads failed due to too short: 读取太短而未通过的读取数。 reads with adapter trimmed: 被剪切去除接头的读取数。 bases trimmed due to adapters: 由于接头而被剪切的碱基数。 效果:显示了各种原因导致读取被过滤的详细数量。接头修剪和质量修剪可以显著影响数据质量。
  3. 重复率(Duplication rate) 说明数据中存在的重复读取的比例。高重复率可能表明样本中存在大量PCR或测序过程中的重复,这可能会影响后续分析如峰调用的效果。
  4. 报告文件(JSON and HTML reports) 提供了详细的质量控制报告的链接,这些报告以更直观的方式展示数据质量和处理结果,方便进行深入分析。
trim-galore质控清洗(另一种方法)
代码语言:javascript
代码运行次数:0
复制
# 需要先创建clean文件夹并进入,这样有助于不同文件的归类

path="/home/lm/Z_Projects/chipseq"
# 可以cd路径或者手动cd
# cd ${path}

mkdir clean

ls ./fastq/*.gz |while read fq_res
do
nohup trim_galore -q 25 --phared33 --length 35 -e 0.1 --stringency 5 -o
$path/clean $fq_res &
done
2.bowtie2比对

先要下载比对基因组,数据上传者使用的hg19,笔者打算用GRCh38试一试

下面代码是曾老师总结好的,自行选择即可。值得一提的是,这里的数据是在UCSC网站上进行下载,也可以进入Ensembl官网进行下载,详细内容可见转录组上游分析流程(四)推文。

下载基因组文件

并且还需要去gencode网站中下载基因组注释文件

从这里找,也可以直接输入下载的地址https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_47/

这个版本是最新的

再次提醒,下面代码的具体参数需要自行修改

代码语言:javascript
代码运行次数:0
复制
# 下载基因组文件,这里顺便把另外几个常用的基因组文件及基因组注释文件的下载方式一并展示
cd
mkdir reference
mkdir reference/hg19 reference/hg38 reference/mm10 reference/mm39

# 下载hg19(GRCh37)
cd reference/hg19
## hg19的基因组文件
wget https://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz
gzip -d hg19.fa.gz
## hg19的基因组注释文件
wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_42/GRCh37_mapping/gencode.v42lift37.annotation.gtf.gz
gzip -d gencode.v42lift37.annotation.gtf.gz

# 下载hg38(GRCh38)
cd
cd reference/hg38
## hg38的基因组文件
wget http://hgdownload.cse.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz
gzip -d hg38.fa.gz
## hg38的基因组注释文件
wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_42/gencode.v42.annotation.gtf.gz
gzip -d gencode.v42.annotation.gtf.gz

# 下载mm10(GRCm38)
cd
cd reference/mm10
## mm10的基因组文件
wget ftp://hgdownload.soe.ucsc.edu/goldenPath/mm10/bigZips/mm10.fa.gz
gzip -d mm10.fa.gz
## mm10的基因组注释文件
wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M25/gencode.vM25.annotation.gtf.gz
gzip -d gencode.vM25.annotation.gtf.gz

# 下载mm39(GRCm39)
cd
cd reference/mm39
## mm39的基因组文件
wget ftp://hgdownload.soe.ucsc.edu/goldenPath/mm39/bigZips/mm39.fa.gz
gzip -d mm39.fa.gz
## mm39的基因组注释文件
wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_mouse/release_M32/gencode.vM32.annotation.gtf.gz
gzip -d gencode.vM32.annotation.gtf.gz
下载基因组数据
代码语言:javascript
代码运行次数:0
复制
# 笔者这边稍作了修改
path="/home/lm/Z_Projects/chipseq"
mkdir -p ${path}/reference/hg38  
nohup wget -O ${path}/reference/hg38/hg38.fa.gz http://hgdownload.cse.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz &

# 解压缩
gzip -d hg38.fa.gz

如果很慢的话,可以网页下载到本地,然后上传,不要死磕。建议把本地和服务器都部署一下科学上网,服务器部署会有点难度。

下载基因组注释数据

● GFF3:常用于基因组浏览器和一些注释工具,因为它的格式支持更复杂的基因组结构描述。

● GTF:由于其与转录组分析软件的兼容性,通常用于RNA-seq数据的分析,如转录本的定量和差异表达分析。

代码语言:javascript
代码运行次数:0
复制
# 笔者这边稍作了修改
path="/home/lm/Z_Projects/chipseq"
mkdir -p ${path}/reference/hg38  

nohup wget -O ${path}/reference/hg38/gencode.v47.annotation.gtf.gz https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_47/gencode.v47.annotation.gtf.gz
gzip -d gencode.v47.annotation.gtf.gz

# gff3文件
# nohup wget -O ${path}/reference/hg38/gencode.v47.annotation.gff3.gz https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_47/gencode.v47.annotation.gff3.gz

# 解压缩
gzip -d gencode.v47.annotation.gtf.gz
构建hg38的bowtie2索引文件
代码语言:javascript
代码运行次数:0
复制
# 构建hg38的bowtie2索引文件
mkdir -p index/bowtie2/hg38_res

# --threads设置线程数
bowtie2-build ${path}/reference/hg38/hg38.fa  ${path}/index/bowtie2/hg38_res/hg38 --threads 8
代码语言:javascript
代码运行次数:0
复制
# check一下
ls ./index/bowtie2/hg38_res/ -lh
正式开始比对+输出bam文件
代码语言:javascript
代码运行次数:0
复制
export path="/home/lm/Z_Projects/chipseq"
export bowtie2_index="/home/lm/Z_Projects/chipseq/index/bowtie2/hg38_res/hg38"
mkdir -p ${path}/align

nohup sh -c 'cat SRR_Acc_List.txt | while read id; do
  bowtie2 -p 8 -x ${bowtie2_index} -U ${path}/clean/${id}.fq.gz | samtools sort -O bam -@ 8 -o - > ${path}/align/${id}.bam
  samtools flagstat ${path}/align/${id}.bam > ${path}/align/${id}_flagstat.txt
done' > ${path}/align/bowtie2_run.log 2>&1 &
  1. cat SRR_Acc_List.txt | while read id; do ... done:这个循环会读取 SRR_Acc_List.txt 文件中的每一行,每行包含一个序列样本的 ID。对于文件中的每个 ID,执行循环体中的命令。
  2. bowtie2 -p 8 -x {path}/clean/:使用对指定的单端序列文件进行比对。:指定使用个线程进行比对。{bowtie2_index}:使用预先准备的索引进行比对。-U {id}.fq.gz:指定输入的未配对序列文件。
  3. | samtools sort -O bam -@ 8 -o -:将 bowtie2 的输出(默认为 SAM 格式)通过管道传递给 samtools sort。-O bam:指定输出格式为 BAM。-@ 8:指定使用 8 个线程进行排序。-o -:将排序后的 BAM 输出到标准输出。> {id}.bam:将排序后的 BAM 文件保存到 align 目录下。
  4. samtools flagstat {id}.bam > {id}_flagstat.txt:使用 samtools flagstat 生成比对统计信息,并将结果保存到文本文件中。
  5. 在长脚本的时候,建议设置一下export作为环境变量,这样可以让命令顺利传下去。
既往推文
  1. 转录组上游分析流程(一):https://mp.weixin.qq.com/s/bwUFJ-kBdUTp9WyQRQPnyg
  2. 转录组上游分析流程(二):https://mp.weixin.qq.com/s/Lq9lES4M6ZzzleXfg0iWCw
  3. 转录组上游分析流程(三):https://mp.weixin.qq.com/s/EIoPqIKC4IuOFChCmHlsVQ
  4. 转录组上游分析流程(四):https://mp.weixin.qq.com/s/jYGltNVfdRu-k28Yhxlllg
参考资料
  1. 生信技能树:https://mp.weixin.qq.com/s/KOFd60USQdKY2C4Sc4OIvA
  2. 生信学习日记:https://mp.weixin.qq.com/s/z-qbVZqo-cKT3Tfv4LT6OQ
  3. Tobin笔记:https://mp.weixin.qq.com/s/Uf8GgK4kZAWbRKKoh6IiyA
  4. 老俊俊的生信笔记:https://mp.weixin.qq.com/s/pfRiLhP8ONMNGcUI06IPog

致谢:感谢曾老师以及生信技能树团队全体成员。

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析步骤
    • 1.数据质控清洗:
      • fastp质控清洗
      • trim-galore质控清洗(另一种方法)
    • 2.bowtie2比对
      • 下载基因组数据
      • 下载基因组注释数据
      • 构建hg38的bowtie2索引文件
      • 正式开始比对+输出bam文件
  • 既往推文
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档