用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字符串操作技巧之语法、示例与应用场景分析

《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加密解密基础

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.