用snakemake进行RNAseq分析

2023-10-09 09:20
文章标签 分析 进行 rnaseq snakemake

本文主要是介绍用snakemake进行RNAseq分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.下载sra文件

prefetch SRR* -O {outputfile}
prefetch -O output --option-file SRR_Acc_List.txt   

2.sra文件转换fa

--

gzip 转换fa.gz

#定义存放输出数据的文件夹,需要先创建这个文件夹‘fastq’
mkdir fastq
fqdir=/trainee2/Mar7/rna/project/fastq
#转换单个文件
fastq-dump --gzip --split-3 -X 25000 -O ${fqdir} SRR1039510
#批量转换,将样本名写成文件——sample.ID,echo是打印命令,while循环的意义是生成脚本
cat sample.ID | while read id
doecho "fastq-dump --gzip --split-3 -X 25000 -O ${fqdir} ${id}
done >sra2fq.sh
# 提交后台运行命令,脚本文件后缀为.sh,日志文件后缀为.log,运行脚本的命令为sh
nohup sh sra2fq.sh>sra2fq.log &

3.trim_galore

4.下载hg38.fa

for i in $(seq 1 22) X Y M;do echo $i;wget http://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/chr${i}.fa.gz;

5.STAR构建索引

使用实验室服务器,可以用STAR进行比对,STAR对内存的要求30G(human),使用STAR构建基因组索引,需要准备的数据是基因组文件和注释文件。

STAR(Spliced Transcripts Alignments to a Reference,STAR)软件,使用了未压缩后缀阵列中的连续最大可比对种子搜索算法,接着对种子进行聚类和拼接。STAR在比对速度上胜过其他比对软件50多倍,在一个普通的12核服务器上,每小时比对5.5亿2 x 75 bp双端片段到人类基因组上,同时改进了比对敏感性和准确性。除了典型转录本外,STAR能够发现非典型剪切和嵌合(融合)转录本,并能够比对全长RNA序列。

运行脚本:

STAR  \
--runMode genomeGenerate \
--genomeDir index \
--runThreadN 10 \
--genomeFastaFiles  L.genome.fa \
--sjdbGTFfile L.gff \参数说明:
--runThreadN:线程数。
--runMode genomeGenerate:构建基因组索引。
--genomeDir:索引目录。
--genomeFastaFiles:基因组文件。
--sjdbGTFfile:基因组注释文件。
--sjdbOverhang:reads长度减1。

另外一种:

## 构建基因组索引
STAR --runThreadN 6 --runMode genomeGenerate\--genomeDir index_dir \
--genomeFastaFiles genome.fasta \
--sjdbGTFfile genome.gtf \
--sjdbOverhang 149

--runThreadN:线程数。
--runMode genomeGenerate:构建基因组索引。
--genomeDir:索引目录。(index_dir一定要是存在的文件夹,需提前建好)
--genomeFastaFiles:基因组文件。
--sjdbGTFfile:基因组注释文件。
--sjdbOverhang:reads长度减1。

6.snakemake运行:

snakemake -s file.py -n -p
## -n 不运行,仅检查逻辑是否有误
## -p 把每一步提交的命令行展示出来
snakemake -s file.py --dag | dot -Tpdf > test_dag.pdf
## --dag 生成拓扑图
## 生成pdf
snakemake -s file.py -p -j 2 &
## -j 同时运行的数

7.nohup后台运行

# 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 my1.log 文件中
nohup sh test.sh > /home/dir1/dir2/my1.log 2>&1 & 
nohup sh test.sh &> /home/dir1/dir2/my1.log &

jobs命令:功能:查看当前终端后台运行的任务,jobs -l选项可显示当前终端所有任务的PID,jobs的状态可以是running,stopped,Terminated。+ 号表示当前任务,- 号表示后一个任务。

ps命令:功能:查看当前的所有进程、ps -aux | grep “test.sh”   #a:显示所有程序  u:以用户为主的格式来显示  x:显示所有程序,不以终端机来区分。

8.bigWigToBedGraph

conda install -c bioconda ucsc-bigwigtobedgraph

9.bam2wig.py

conda install -c bioconda ucsc-wigtobigwig

还需要安装rseqc包

10.安装R环境及R包

conda info --envs # 查看环境
conda create -n R3.5  # 创建名为R3.5的环境  ##我用的rbase
conda activate R3.5  
conda list            #查看当前安装的软件
####坑人!!!!conda install r-base=4.2.1 #安装R语言 ##安最新版本
conda install r ##直接安装r,不要r-base
conda install r-stringi # R包 以 r- 开头 
conda deactivate # 退出当前环境
  • 安装指定版本

    • conda install numpy=1.11:即安装能模糊匹配到numpy版本为1.11

    • conda install numpy==1.11:即精确安装numpy为1.11的版本

conda install r-ggplot2  ##【r-R包名】的方式用conda安装R包install.packages('stringr', repos='http://cran.us.r-project.org')   ##也可这样安装
install.packages('ggplot2', repos='http://cran.us.r-project.org')
install.packages('xlsx', repos='http://cran.us.r-project.org')
install.packages('dplyr', repos='http://cran.us.r-project.org')
install.packages('optparse', repos='http://cran.us.r-project.org')

这篇关于用snakemake进行RNAseq分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171868

相关文章

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础