前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用shell脚本实现转录组测序中 解压-比对-计算基因表达量 一体化

用shell脚本实现转录组测序中 解压-比对-计算基因表达量 一体化

作者头像
戈贝尔光和热
发布2018-12-27 15:17:20
1.1K0
发布2018-12-27 15:17:20
举报
文章被收录于专栏:HUBU生信HUBU生信

这个脚本需要的软件有:hisat2,SRA-toolkit,samtools,htseq-count 有兴趣的同学可以自己去下载并安装好,记得要配置好环境变量!

脚本所用到的参考基因组可以从hisat2官网下载,参考基因组注释文件可以从gencode数据库下载

脚本如下

代码语言:javascript
复制
#!/bin/bash
#把sra文件都存放在Sra文件夹里面
#参考基因组和注释文件都在hg19文件夹里面
#qiujunhui 1801963472@qq.com
mkdir Fastq_out #创建一个存放SRA-toolkit解压sra文件的输出文件夹
mkdir Sam_out #创建一个存放用hisat2比对的输出文件夹
mkdir Sorted.bam #创建一个存放用samtools将sam文件排序的生成的bam文件的文件夹
mkdir Counts  #创建一个存放用HTseq-count计算基因表达量的输出文件夹
#批量解压文件
for i in ~/Sra/*sra
do
        echo $i
        #判断sra文件时单端测序还是双末端测序
        num=$(fastq-dump -X 1 --split-spot -Z $i | wc -l | grep [0-9])
        if [ $num -eq 4 ];then
                echo "$i是单端测序"
                fastq-dump $i
                mv ~/Sra/*fastq ~/Fastq_out
                #用hisat2进行比对
                for x in ~/Fastq_out/*fastq
                do
                        echo $x
                        a=$(echo $x | cut -d "." -f1)

                       hisat2 -p 5 -x ~/hg19/genome -U $x -S $a.sam
                        mv ~/Fastq_out/*sam ~/Sam_out
                done
        else
                echo "$i是双端测序!"
                fastq-dump --split-files $i
                mkdir 1Fastq_out
                mkdir 2Fastq_out
                mv ~/Sra/*_1.fastq ~/1Fastq_out
                mv ~/Sra/*_2.fastq ~/2Fastq.out
                #用hisat2进行比对
                for j in ~/1Fastq_out/*_1.fastq
                do
                        for h in ~/2Fastq_out/*_2.fastq
                        do
                                b=$(echo $j | cut -d "_" -f1)
                                c=$(echo $h | cut -d "_" -f1)
                                if [ $b = $c ];then
                                        hisat2 -p 5 -x ~/hg19/genome -U -1 $j -2 $h -S $b.sam
                                mv ~/2Fastq_out/*.sam ~/Sam_out
                                fi
                        done
                done
        fi
done
#用samtools进行排序
for y in ~/Sam_out/*sam
do
        echo $y
        d=$(echo $y | cut -d "." -f1)
        samtools sort -n -@ 5 -o $d.bam $y
        mv ~/Sam_out/*bam ~/Sorted.bam
done
#用HTseq-count进行基因表达量计算
for z in ~/Sorted.bam/*bam
do
        echo $z
        e=$(echo $z | cut -d "." -f1)
        htseq-count -f bam -r name -s no -a 10 -t exon -i gene_id -m intersection-nonempty $z ~/hg19/gencode.v29lift37.annotation.gtf>$ecounts.txt
        mv ~/Sorted_bam/*.txt ~/Counts
done
#把不要的文件夹删除只留下counts文件夹
rm -rf ~/Sra
rm -rf ~/Fastq_out
rm -rf ~/1Fastq_out
rm -rf ~/2Fastq_out
rm -rf ~/Sam_out
rm -rf ~/Sorted.bam

全文结束,欢迎在评论区讨论~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这个脚本需要的软件有:hisat2,SRA-toolkit,samtools,htseq-count 有兴趣的同学可以自己去下载并安装好,记得要配置好环境变量!
    • 脚本所用到的参考基因组可以从hisat2官网下载,参考基因组注释文件可以从gencode数据库下载
    • 脚本如下
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档