比对软件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/
- 基于 PHPStorm 编辑器的 Laravel 开发
- 再见乱码:5 分钟读懂 MySQL 字符集设置
- PHP 高级面试题 - 如果没有 mb 系列函数,如何切割多字节字符串
- 如何做一个小程序口令红包功能
- 使用思维导图,优雅的完成自己的代码
- 移动端布局攻略
- nginx反向代理https网站 并实现网站的注册和登录功能
- 通过nginx GeoIP模块 限制某些国家地区访问网站
- CDN加速下通过nginx获取网站访客真实ip
- linux centos7服务器使用密钥登录ssh同时禁止root密码登录
- linux nginx服务器安装verynginx防止CC攻击
- linux nginx安装HttpGuard防止CC攻击
- wordpress您的主机禁用了mail()函数 SMTP邮件通知解决方法
- 我的编程之路:知识管理与知识体系
- 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 数组属性和方法
- Azure Cosmos DB介绍及演示
- 从一次编译出发梳理概念: Jetty,Jersey,hk2,glassFish,Javax,Jakarta
- 《一起学sentinel》一、一起搭建sentinel服务
- InfluxDB和Grafana实现传感器数据的存储和可视化
- 样本相关性分析
- Android 序列化 Serializable与Parcelable
- 《一起学sentinel》二、初探sentinel的Slot
- Redis突然报错,今晚又不能回家了...
- 查询ElasticSearch:用SQL代替DSL
- Java开源框架中的设计模式以及应用场景
- 统一定制API返回格式,我只做了这几件事
- 《一起学sentinel》三、Slot的子类及实现之NodeSelectorSlot和ClusterBuilderSlot
- 《一起学sentinel》四、Slot的子类及实现之LogSlot和StatisticSlot
- 《一起学sentinel》五、Slot的子类及实现之AuthoritySlot和SystemSlot
- Python 之pyaudio使用随笔