比对软件STAR创建索引文件(index)
时间:2022-07-28
本文章向大家介绍比对软件STAR创建索引文件(index),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
因为不连续的转录本结构,相对短的片段长度,和测序通量的不断提升,高通量RNA-seq数据的准确比对仍然是一个有挑战性且未解决的问题。当前可用的RNA-seq比对软件一般比对错误率较高,比对速度慢,受片段长度限制且比对偏差较大。STAR(Spliced Transcripts Alignments to a Reference,STAR)软件,使用了未压缩后缀阵列中的连续最大可比对种子搜索算法,接着对种子进行聚类和拼接。STAR在比对速度上胜过其他比对软件50多倍,在一个普通的12核服务器上,每小时比对5.5亿2 x 75 bp双端片段到人类基因组上,同时改进了比对敏感性和准确性。除了典型转录本外,STAR能够发现非典型剪切和嵌合(融合)转录本,并能够比对全长RNA序列。
STAR的比对分析基本上可以分为两步:一是genomeGenerate(类似于tophat的index),二是:序列比对。
创建index,这一步只需要运行一次就可以了
STAR --runMode genomeGenerate
--runThreadN 10
--genomeDir ./index
--genomeFastaFiles ./Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa
--sjdbGTFfile ./Homo_sapiens/UCSC/hg19/Annotation/Genes/genes.gtf
--sjdbOverhang 75
—runMode:运行程序模式,默认是比对,所以第一步这个参数设置很关键 —runThreadN:运行的线程数,根据你自己电脑的配置来设置,数字越大运行越快 —genomeDir:这个参数很重要,是存放你生成index的文件路径,需要你事先建立一个有可读写权限的文件夹 —genomeFastaFiles 基因组fasta格式文件 —sjdbGTFfile GTF注释文件 —sjdbOverhang 这个值为你测序read的长度减1,是在注释可变剪切序列的时候使用的最大长度值
有一点需要注意,STAR建索引时特别消耗内存,能把你服务器内存全部用光,然后报类似于下面的错误。
STAR
Apr 01 14:43:41 ..... Started STAR run
Apr 01 14:43:41 ... Starting to generate Genome files
EXITING because of FATAL PARAMETER ERROR: limitGenomeGenerateRAM=31000000000is too small for your genome
SOLUTION: please specify limitGenomeGenerateRAM not less than124544990592 and make that much RAM available
此时你就要根据报错信息和你电脑的内存设置limitGenomeGenerateRAM参数。报错信息建议specify limitGenomeGenerateRAM not less than 124544990592,此处设置比所需内存高一点点,如果低于所需内存也会报错,所以可以设置成125G内存。另外线程数可以设置高一点,2个线程可能要跑两天多,40个线程只要一个小时左右,内存消耗会因为线程数变多而增加,不过不用担心,并不会成倍增加,40个线程内存消耗也就增加了10%。下面是如何通过limitGenomeGenerateRAM来这是内存。
STAR --runMode genomeGenerate
--runThreadN 10
--genomeDir ./index
--genomeFastaFiles ./Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa
--sjdbGTFfile ./Homo_sapiens/UCSC/hg19/Annotation/Genes/genes.gtf
--sjdbOverhang 75
--limitGenomeGenerateRAM 125000000000
参考文献:
- STAR: ultrafast universal RNA-seq aligner
- https://github.com/alexdobin/STAR/
- 教程从头开始在Python中实现k最近邻居
- 建立安全的 AI
- Python NLTK 自然语言处理入门与例程
- 漏洞预警 | Apache Struts2 曝任意代码执行漏洞 (S2-045,CVE-2017-5638)
- 详解OSSIM-OSSEC WIN 4771案例
- JSShell:一个基于python的交互式Shell
- golang中操作excel
- 企业安全漏洞通告引擎
- 通过httprouter和redis框架搭建restful api服务
- .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱
- 基于 R 语言和 SPSS 的决策树算法介绍及应用
- Android 8.0 中的安全增强功能
- python2 群发 html 或文本邮件
- windows 安装 storm 及 eclipse 调试 TopN 实例
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 27.opengl高级光照-点光源阴影
- 28.opengl高级光照-法线贴图
- python抓取动态验证码,具体第几帧数的位置静态图片
- 在 Spring Security 中,我就想从子线程获取用户登录信息,怎么办?
- php自动加载
- 011.Nginx防盗链
- 012.Nginx负载均衡
- 013.Nginx动静分离
- 014.Nginx跨域配置
- 深入理解 FilterChainProxy【源码篇】
- matplotlib基础绘图命令之bar
- 使用 Github Actions 自动部署 Angular 应用到 Github Pages
- 路径中关于斜杠/和反斜杠 的区别
- Redis的高级特性与应用场景(二)
- Redis的高级特性与应用场景(一)