一个不成熟的小脚本,ATAC数据一键预处理从fastq到trea
数据从下机fq.gz文件到可用的 .bam文件,每次都需要运行去接头,比对,去复,去MT,shift,排序等...
尽管俺把他们都写在了一个shell中,但是每次还是需要修改一些输入输出的参数,并且数据的输出位置也比较混乱,于是写了下面这个省事脚本。
这个脚本......非常潦草......但是能用......稍微方便了一些的吧......记录学习的过程......
【atac-single.sh】对ATAC的fq.gz文件进行一键前期处理,得到可用的bam文件,文件在最下方......
脚本流程如下:
1、【trim_galore】命令去接头
2、【bwa】进行比对
3、【samtools】进行bam转换
4、【picard】去除Duplication
5、【samtools】进行bam filter,具体参数参考脚本
6、【deeptools】进行ATAC bam shift
7、【samtools】排序并创建索引,得到最终处理好的bam及索引文件
脚本就随便取了个名字叫atac-single.sh,设置了7个参数,分别是:
[-1] the first fastq files
[-2] the second fastq files
[-o] the output directory,must be ended with [/]
example:[/home/mypath/]
[-a] path to the reference fasta file, for mouse it can be mm10.fa
[-p] processes to uss, default:1
[-g] genomesize file
[-j] path to picard.jar file
用法:
atac-single.sh -1 [1.fq.gz] -2 [2.fq.gz] -o [output_dir] -a [ref.fa] -g [genome_size_file] -j [path_to_picard.jar] -p [processes number]
用户只需要指定输出文件夹,脚本会在该文件夹下自动创建Trim,MAP, prebam, shifted四个文件夹,分别存放Trim后的fq, Map后的sam文件,预处理的bam文件,最终的经过ATAC SHIFT的bam文件。
Example:
outputdir=/path/to/atac/M25/ #定义输出文件夹,必须以“/” 结尾
bwaindex=/path/to/database/mm10/index_bwa/mm10.fa #定义参考基因组
picardrun=/path/to/picard-2.23.9-0/picard.jar #定义picard位置
genomesize=/path/to/mm10.chrom.sizes #定义参考基因组大小文件位置
run=/path/to/atac-single.sh #定义执行脚本的位置
$run -1 prefix_R1.fq.gz -2 prefix_R2.fq.gz \
-o $outputdir -a $bwaindex -p 4 -g $genomesize -j $picardrun
脚本将使用标准输出提示目前正在进行的步骤,可使用nohup将标准输出导向新文件。
最后输出的bam文件可直接进行 callpeak
不过,暂时没有error.log文件输出,因为还不知道咋写,想和会写的同志交个朋友,咳咳……
在自己的服务器运行了一下,成功运行~以后再也不用繁琐的修改设置了,学习的时间又多出了几分钟~
后面想写一下直接从fq.gz到matrix的懒人脚本,但是暂时还没有学习怎么使用子命令对预处理,callpeak, count matrix等进行分步操作,先记录到这里吧......继续学习......
atac-single.sh 脚本已上传到 github,欢迎交流~
atac-single.sh
https://github.com/wulisling/atac-pre
本文使用 文章同步助手 同步