首页 > 其他分享 >chip分析

chip分析

时间:2024-04-15 23:12:08浏览次数:25  
标签:分析 samtools name -- chip file bam id

参考博客

https://zhuanlan.zhihu.com/p/377600056
https://www.jianshu.com/p/96688fecd864
https://zhuanlan.zhihu.com/p/676395563

查看质控

# 使用fastqc查看质控结果
fastqc -t 40 -o 1_rawdata_qc/ 0_rawdata/*.fastq.gz 1> 1_fastqc.log

# 使用MutliQC整合FastQC结果
# multiqc 1_rawdata_qc/

使用trim_galore软件过滤低质量的reads

ls 0_rawdata/*.fastq.gz | while read id;
do 
nohup trim_galore -q 25 --phred33 --length 25 -e 0.1 --stringency 4 -o 2_cleandata $id & 
done 

查看过滤后的质控

# 使用fastqc查看质控结果
fastqc -t 40 -o 3_cleaneddata_qc/ 2_cleandata/*.fq.gz 1> 3_fastqc.log

# 使用MutliQC整合FastQC结果
# multiqc 3_cleaneddata_qc/

使用Bowtie2软件比对reads到参考基因组

# 软链接参考基因组和索引文件
ln -s /vol1/yudawei/cuttag/genome/pig/pig.fa* /vol1/yudawei/chip/genome

# 比对
ls 2_cleandata/*_1_trimmed.fq.gz | while read id;
do
file=$(basename $id) # 使用 basename 命令提取变量 id 中的文件名(去除路径部分)
sample=${file%%_trimmed.*} # 从变量 file 中提取样本名,移除文件名中 _trimmed 及其后面的部分
bowtie2 -p 4 -x /vol1/yudawei/chip/genome/pig -1 2_cleandata/$sample_1_trimmed.fq.gz -2 2_cleandata/$sample_2_trimmed.fq.gz | samtools sort -O bam -@ 20 -o - > 3_bam/${sample}.bam
done

对bam文件进行质控

ls 3_bam/*.bam | xargs -i samtools index {} 
ls 3_bam/*.bam | while read id ;
do 
nohup samtools flagstat $id > $(basename $id ".bam").stat & 
done

去除PCR重复

先将sam文件转化为bam文件,然后进行排序(按照坐标和nam),利用排好序的bam文件来进行fixmate校正以及去重,双端测序数据用samtools rmdup效果很差,相对来说更建议用picard工具的MarkDuplicates功能。samtools的rmdup是直接将这些重复序列从比对BAM文件中删除掉,而Picard的MarkDuplicates默认情况则只是在BAM的FLAG信息中标记出来,而不是删除,因此这些重复序列依然会被留在文件中,只是我们可以在变异检测的时候识别到它们,并进行忽略。 虽然samtools过时了,但不过好在可以使用samtools markdup代替。samtools markdup与picard MarkDuplicates采用类似的去重策略。

dir="bowtie2_output"
cd "$dir"
for sam_file in *.sam
do
    echo "$(date): Starting processing of $sam_file"

    name="${sam_file%.sam}"

    samtools view -bS "$sam_file" -o "$name.bam" -@ 8
    samtools sort -n "$name.bam" -o "$name.namesrt.bam" -@ 8
    samtools fixmate -m "$name.namesrt.bam" "$name.fixmate.bam" -@ 8
    samtools sort "$name.fixmate.bam" -o "$name.coordsrt.bam" -@ 8
    samtools markdup -r "$name.coordsrt.bam" "$name.rmdup.bam" -@ 8

    rm "$name.bam" "$name.namesrt.bam" "$name.fixmate.bam"
    echo "$(date): Finished processing of $sam_file"
done
echo "All files have been processed."

观察去重和未去重的差异

dir="bowtie2_output"
cd "$dir"

for sorted_file in *coordsrt.bam
do
    base="${sorted_file%.coordsrt.bam}"
    rmdup_file="${base}.rmdup.bam"
    samtools flagstat "${sorted_file}" > "${sorted_file}.flagstat"
    samtools flagstat "${rmdup_file}" > "${rmdup_file}.flagstat"

    echo "Comparing flagstat reports for ${base}" >> comparison.log
    diff -y "${sorted_file}.flagstat" "${rmdup_file}.flagstat" >> comparison.log
done
echo "Flagstat comparison is complete."

bamCompare

为了能够比较不同的样本,需要对先将基因组分成等宽分箱(bin),统计每个分箱的read数,最后得到描述性统计值

bamCompare -p 10 -b1 <sample>.rmdup.bam -b2 <sample>._IN.rmdup.bam --skipNAs --scaleFactorsMethod readCount --operation subtract --outFileFormat bedgraph -o ../bw_data/<sample>.compareInput.bedgraph --extendReads 200
# -p为线程数
# -b1为ip
# -b2为input
# --skipNA是跳过bin中没有覆盖的部分
# --scaleFactorsMethod是选择缩放样本的方法

# 可能会存在负值,所以这一步需要将其矫正为0
awk '{if($4<0){$4=0};print}' <sample>.compareInput.bedgraph > <sample>.move0.bedgraph

totalreads=`awk '{sum+=$4}END{print sum}' <sample>.move0.bedgraph` |echo 'reads left after remove duplication: '$totalreads

awk -v totalreads=$totalreads '{$4=$4/totalreads*1000000;print}' <sample>.move0.bedgraph >  <sample>.rpm.bedgraph

sort -k1,1 -k2,2n  <sample>.rpm.bedgraph  >  <sample>.sort.bedgraph

使用macs2软件进行ChIP-seq peak calling

ls 4_dedup/*.markdup.bam | while read id
do 
nohup macs2 callpeak -f BAM -B -g 2.2e9 -n $id -p 0.05 --outdir 5/ >./$id.log &
done

标签:分析,samtools,name,--,chip,file,bam,id
From: https://www.cnblogs.com/cauwj/p/18137153

相关文章

  • cuttag分析流程(部分存疑)
    参考博客https://mp.weixin.qq.com/s/uwO9G_71h8kU3lTWsW_zPwhttps://www.jianshu.com/p/1a23656a0713https://zhuanlan.zhihu.com/p/520071927数据质控fastqc-o0_fastqc/-ffastq-t10--noextract./0_rawdata/*_1.fqfastqc-o0_fastqc/-ffastq-t10--noextract......
  • 时序分析习题练习(一):最大时钟频率
    STA(静态时序分析)详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timingviolation)?-CSDN博客DFF1:到达时间:Tclk1= 1+1.1+1.1 Tdata1=1.5Tco1=2 到达时间:3.2+1.5+2=6.7ns需求时间:Tperiod+Tclk2-Tsu1+1.1+1.1=Tclk2Tsu=2.5Tperiod+Tclk2-Tsu -......
  • 分析
    策略结构化解析代码的函数defget_final_data(df,project_name):dfi=df.loc[df.project_name==project_name].copy()dfi.reset_index(inplace=True,drop=True)data_frame=dfi.get_json(['input_data','temp_data','output_data'])#data_f......
  • C3P0反序列化链分析
    前言C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用它的开源项目有Hibernate、Spring等。之前有接触到过,但是没有深入了解,像之前学二次反序列化时,WrapperConnectionPoolDataSource就是C3P0的环境搭建<dependency><groupId>com.......
  • 静态代码分析的这些好处,我竟然都不知道?
    在软件开发中,单元测试的重要性毋庸置疑。我们都知道编码的必要条件是需要隔离代码来进行测试和质量保证。但我们如何确保部署的代码尽可能优质呢?答案是:静态代码分析。企业往往不会优先考虑静态分析。事实上,如果我们想创建更好的软件来帮助企业在市场竞争中取胜,我们就不能回避CI/C......
  • 易基因:ENCODE和modENCODE联盟的ChIP-seq实验设计指南和注意事项|干货
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。ChIP-seq(染色质免疫沉淀测序)实验指南和实践(ChIP-seqguidelinesandpracticesoftheENCODEandmodENCODEconsortia),由ENCODE(EncyclopediaofDNAElements)和modENCODE(ModelOrganismENCODE)联盟研究人员撰写。文......
  • 跨域攻击分析和防御(中)
    利用域信任密钥获取目标域权限 搭建符合条件域环境,域林内信任环境搭建情况如下,如图7-8所示。父域域控:dc.test.com(WindowsServer2008R2)子域域控:subdc.test.com(WindowsServer2012R2)子域内计算机:pc.sub.test.com(Windows7)子域内普通用户:sub\test 图7-8 ......
  • "(UE4Editor.exe中)处有未经处理的异常:0xC0000005:读取位置0x0000000000000000时发生
    报错情况:使用ue4.27Slate编写Widget时想通过获取Worl(通过本地PlayerController获取)来实现“设置定时任务为在音乐结束后自动触发函数”的功能ps:定时执行函数代码 解决方法:使用GWorld替换掉通过第0号PlayerController获取世界 原因分析:(由于本人校验较少,暂做以下估计)在......
  • EasyUEFI 初步分析
    EasyUEFI初步分析GUI采用foxtoolkit,分析主要关注对应类的FX::FXMetaClass,结合构造函数定位控件对应FXMapEntry中的事件函数fox-toolkit.orgpatch1根据字符串信息可定位到版本判断函数,关键点在454E10patch2完成上一步后发现启动后弹出注册框,关闭后不影响使用,可定位注册......
  • 2、APIView执行流程以及request对象源码分析
    一、基于View编写5个接口1、创建模型表models.pyfromdjango.dbimportmodelsclassBook(models.Model):name=models.CharField(max_length=64)price=models.IntegerField()publish=models.CharField(max_length=32)2、视图函数views.pyfrom......