chip-seq识别增强子,超级增强子

1. 首先下载SRR数据(这里举一个例子,其他的类似)

ascp -QT -l 10m -P33001 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR137/037/SRR13755437/SRR13755437.fastq.gz .
ascp -QT -l 10m -P33001 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR155/099/SRR15567099/SRR15567099.fastq.gz .

2. 使用fastqc做质量检查

3. 解压

gunzip SRR13755437.fastq.gz
gunzip SRR15567099.fastq.gz

4. bowite2建立索引

bowtie2-build hg19.fa hg19

5. bowite2比对(这里批量比对)

新建一个脚本

cd ./data/chip-seq/raw
touch bowtie.sh

脚本内容

#!/bin/bash

REFERENCE="/student2/data/chip-seq/references/hg19"
FASTQ_FILES=("SRR13755437.fastq" "SRR13755438.fastq" "SRR15567099.fastq" "SRR15567100.fastq")

for FASTQ in "${FASTQ_FILES[@]}"
do
    SAMPLE_NAME=$(basename "$FASTQ" .fastq)
    #打印当前处理的文件
    echo "Processing $SAMPLE_NAME"

    bowtie2 -p 5 -t -x $REFERENCE -U $FASTQ | samtools sort -O bam -o ./${SAMPLE_NAME}.bam

    #检查命令是否成功执行
    if [ $? -eq 0 ]; then
        echo "$SAMPLE_NAME processing completed successfully."
    else
        echo "Error processing $SAMPLE_NAME."
    fi
done

echo "ALL samples processed."

6. 构建index文件

为了在igv里查看peak,需要把bam文件先构建index,即生成bam.bai文件:

samtools index SRR13755437.bam SRR13755437.bam.bai
samtools index SRR15567099.bam SRR15567099.bam.bai

7. 用deeptools里的bamcovera工具将bam文件标准化

bamCoverage -b SRR13755437.bam -o SRR13755437.bw -p 10 --normalizeUsing RPKM
bamCoverage -b SRR15567099.bam -o SRR15567099.bw -p 10 --normalizeUsing RPKM

将生成的bw文件(标准化后的导入)导入IGV

8. 使用macs3获得chip-seq富集区

macs3 callpeak -c SRR15567099.bam -t SRR13755437.bam -m 10 30 -p 1e-5 -f BAM -g hs -n HMEC_rep1 --call-summits

-c:对照组

-t:处理组

--format:输入的文件类型

--:输出的文件前缀名称

关于宽峰和窄峰:

生成:

9. ROSE筛选super-enhancer

(1)第一步先安装rose(可以参考下面的链接)

(2)安装后,准备文件:peaks的gff文件,这个peak是MACS3 call peak 之后生成的peaks文件

第1列:染色体位置(chr#)

第2列:每个增强子区域的特定id

第4列:区域起始位置

第5列:区域终止位置

第7列:正负链信息(+, -, .)

第9列:每个增强子区域的特定id

上面没有要求的列,内容可以为空或者原来的内容,但是一定要有这列,如果第2列和第9列的内容不同,ROSE将使用第2列的值。

awk '{print $1"\t"$4"\t"" ""\t"$2"\t"$3"\t"" ""\t"$6"\t"" ""\t"$4}' HMEC_rep1_peaks.narrowPeak > HMEC_rep1_peaks3.gff
python ./bin/ROSE_main.py -g HG19 -i ./data/HMEC_rep1_peaks3.gff -r ./data/SRR13755437.bam -c ./data/SRR15567099.bam -o roseresult -s 12500 -t 2500

运行过程中如果报以下错误:

Traceback (most recent call last):
File "/hpcstor6/scratch01/m/mingyu.liu001/Super_Enhancer/ROSE-1.3.0/bin/ROSE_geneMapper.py", line 291, in
main()
File "/hpcstor6/scratch01/m/mingyu.liu001/Super_Enhancer/ROSE-1.3.0/bin/ROSE_geneMapper.py", line 277, in main
enhancerToGeneTable,geneToEnhancerTable = mapEnhancerToGene(annotFile,enhancerFile,uniqueGenes=True,byRefseq=options.refseq, transcribedFile=transcribedFile)
File "/hpcstor6/scratch01/m/mingyu.liu001/Super_Enhancer/ROSE-1.3.0/bin/ROSE_geneMapper.py", line 145, in mapEnhancerToGene
closestGene = allEnhancerGenes[distList.index(min(distList))]
IndexError: list index out of range

这是因为在生成的txt结果文件中又不规范的染色体名比如chr1_sgdy类似等等,修改ROSE_main.py加入:

    def filter_non_standard_chromosomes(file_path):
        # 读取文件内容
        with open(file_path, 'r') as f:
            lines = f.readlines()

        # 找到有效数据起始行
        start_idx = 0
        for idx, line in enumerate(lines):
            if line.startswith('REGION_ID'):
                start_idx = idx
                break

        # 处理有效数据部分
        processed_lines = []
        for line in lines[start_idx:]:
            if line.startswith('#') or line.strip() == '':
                processed_lines.append(line)  # 保留注释和空行
            else:
                # 按制表符分割行数据
                parts = line.split('\t')
                # 获取原始的染色体名
                original_chrom = parts[1].strip()

                # 判断染色体名是否符合标准形式
                if original_chrom.startswith('chr') and (
                        original_chrom[3:].isdigit() or original_chrom[3:] in ['X', 'Y']):
                    # 符合标准形式,保留
                    processed_lines.append('\t'.join(parts))

        # 更新原始文件内容
        with open(file_path, 'w') as f:
            # 先写入无效信息部分
            for line in lines[:start_idx]:
                f.write(line)

            # 再写入处理后的有效数据部分
            for line in processed_lines:
                f.write(line)

        print(f"文件 {file_path} 已成功更新,不符合标准染色体的行已删除。")

    superTableFile = "%s/%s_SuperStitched.table.txt" % (outFolder,inputName)
    allTableFile = "%s/%s_AllStitched.table.txt" % (outFolder,inputName)

    filter_non_standard_chromosomes(superTableFile)
    filter_non_standard_chromosomes(allTableFile)

结果文件:

怎么看结果可以参考我下面的链接

10. ROSE注释enhancer

python ./bin/ROSE_geneMapper.py -i ./roseresult/HMEC_rep2_peaks3_AllStitched.table.txt -g HG19 -o ./roseresult 2> ./roseresult/enhancer_anno.log

运行结束生成以下结果:

HMEC_rep2_peaks3_AllStitched_GENE_TO_REGION.txt
HMEC_rep2_peaks3_AllStitched_REGION_TO_GENE.txt

具体怎么看参考以下链接

参考链接:

ChIP-seq实践(H3K27Ac,enhancer的筛选和enhancer相关基因的GO分析) - 简书 (jianshu.com)

Super Enhancer(超级增强子)分析——ROSE包(v1.3.1)的安装及使用详解_超级增强子rose-CSDN博客

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Chip-seq(Chromatin Immunoprecipitation Sequencing)是一种常用的表观遗传学研究方法,用于研究染色质上的蛋白质与DNA相互作用的情况。Chip-seq数据分析是指对Chip-seq实验所得到的大量序列数据进行处理和分析,以获得有关染色质状态和蛋白质相互作用的信息。 Chip-seq数据分析的主要步骤包括: 1. 数据质量控制:对原始数据进行质量控制,筛除低质量序列和序列中的适配器等。 2. 数据预处理:将序列比对到参考基因组上,去除重复的序列,调整序列长度,以便于后续分析。 3. 峰识别:利用统计方法识别出与某种蛋白质结合区域的“峰”,即ChIP信号显著高于背景水平的区域。 4. 峰注释:将峰与生物信息学数据库中的基因、转录因子结合位点等信息进行注释,以获得与研究对象相关的生物信息学特征。 5. 峰差异分析:比较不同实验条件下的Chip-seq数据,寻找峰的差异,以发现不同生物学过程中基因调控的差异。 6. 通路分析:将差异的峰与生物通路、转录因子网络等生物信息学数据库进行匹配,以发现与研究对象相关的生物通路和机制。 7. 结果可视化:将Chip-seq数据分析的结果可视化,如制作热图、曲线图等,以直观表达Chip-seq数据的生物学意义。 总之,Chip-seq数据分析是一个复杂的过程,需要熟练掌握多种分析方法和工具,以便于从大量的序列数据中提取有用的生物学信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值