内容

1介绍

欢迎来到ORFik包中。ORFik是转录和翻译的R包进行分析通过操纵序列数据和门店数据功能。

这个描述将指导你如何如何下载与ORFik注释和对齐数据。

这里我们将展示一个完整的例子将使用SacCer3 RNA-seq从酵母基因组。

2如何ORFik组织存储文件

处理门店数据和基因组注释结果+ +,可以麻烦组织记住存储位置,ORFik试图简化这项工作为您通过创建一组固定的文件是如何组织的。使用ORFiks组织系统是可选的(你可以手动指定所有路径,如果你想),但是使用它很可能使你更快的代码。

2.1指定输出文件夹

通常fastq文件,处理数据文件(bam)和注释(基因组)的引用存储在单独的位置,为更好的清晰性和可重用性的文件。

给定一个parrent文件夹(例如“~ / Bio_data /”),在你所有的生物分析存储,ORFik使用文件夹结构分离这三个类型:

    1. fastq文件(raw_data)
    1. bam文件(processed_data)
    1. (gtf + fasta基因组注释的参考文件引用)

这是配置中定义的()函数,并且只需要运行一次(配置存储供以后的实验),所以其他所有实验将重用父文件结构。ORFik将尝试自动创建合适的位置如果以下函数不是运行;

库(ORFik) #这个包#这里显示了缺省值:where_to_save_config < -“~ / bio_data / ORFik_config。csv”parent_folder < - fastq ~ / bio_data /。dir < -文件。路径(parent_folder”raw_data”)砰。dir < -文件。路径(parent_folder, processed_data)参考。dir < -文件。配置路径(parent_folder,“引用”)。保存(where_to_save_config fastq。dir,砰。dir reference.dir)

无论哪种方式,如果你做了一个自定义配置或在下一步让ORFik帮你吧,你可以检查它是什么到现在运行配置()

配置()

我们创建了一般的文件夹结构,现在我们必须创建文件夹结构为一个特定的实验中,像我们的酵母RNA-seq实验从查尔默斯等。

conf < -配置。擅长(实验=“CHALMERS_Yeast”, #短实验信息:这里我使用作者+物种组装=“Yeast_SacCer3”, #参考文件夹类型= c (“RNA-seq”)) # fastq和bam类型配置

配置将显示特定的实验将存储的地方。

3下载RNA-seq门店数据

现在我们将下载捷数据,如果你有实验室数据,您不需要这一步,因为你已经访问fastq文件。

另一方面,如果你想使用公布的数据,您需要下载它。我这里展示的工作配对SRP012047 RNA-seq实验结束。

ORFik附带了一个阅读档案下载运行(档案支持:SRA,时代,半径标注或GSE)。现在,我们将展示如何得到元数据和数据。

  1. 下载使用元数据表:这里的好事是,您可以指定一个项目,它将为你找到所有SRR数字,在这个描述,我们只会下载2叫做SRR453566 SRR453571运行。我们也只有下载50000首先读取子集的库,你可以复制这个更快。如果你想尝试完整的数据需要~ 100秒下载稳定连接上。
信息< - download.SRA。元数据(“SRP012047 outdir =参看[“fastq RNA-seq "]) 2 #让我们第一次运行在这个实验:信息< -信息(1:2,)

现在让我们下载子集,使用元数据表(ORFik将自动提取SRR数字和下载):

# # 18 MB,子集~ 40秒下载时间- >下载。SRA(信息,参看[" fastq RNA-seq”],子集= 50000)#或# 1.6 GB,你可以完整的库~ 100秒下载时间#(全尺寸文件更快下载MB / s的速度比子集)- > #下载。SRA(信息,参看[" fastq RNA-seq”))

我们现在有RNA-seq来看,分为2文件存储在原始数据fastq文件夹中,有两个文件,因为这是双端数据。我们可以缓解也只有特定SRR数量直接下载。SRA,但是我们没有csv文件元数据,方便搭配端数据的自动识别,生物名称等。这是如下所示:

生物< - info ScientificName美元[1]is_paired_end < -所有(信息LibraryLayout美元= =“配对”)

4注释(Fasta基因组和gtf文件)

有两种方法可以使用注释:

4.1基因组和gtf文件下载

下载我们使用getGenomeAndAnnotation函数的基因组注释。我们需要决定三件事:

  • 生物:给生物体的学名,”或“_”属(酿酒)和物种之间(酵母)。
  • 输出。dir:输出注释
  • assembly_type:如果使用运用作为数据库的参数,你需要决定如果你想“primary_assembly”或“最高级的”。

人类基因组的未压缩的最高级的文件> 70 GB,所以对于大型基因组(比如人类)你应该通常设置为primary_assembly (3 GB的人类,没有染色体单)。等小生物酵母,他们没有一个主装配,所以用“最高级的”。

注释< - getGenomeAndAnnotation(生物=生物体,输出。dir =参看[“ref”], assembly_type =“最高级的”)

函数还将创建一个txdb对象加速加载gtf注释,和索引你的基因组.fai文件(fasta指数),为更快的访问基因组区域。

如果你是已经完成后重新运行这个函数,它不会重新下载,只输出正确的对象路径,这使它容易重新运行脚本(同一物种的其他实验),当你有一些步骤已经完成。

以下4.4.1污染物

如果你想消除污染物:phix,非编码rna,核糖体rna,或图示,也指定这些函数。默认情况下它将从refseq下载phix和其他污染物的定义通常是指在物种的基因组注释,所以他们从.gtf中提取文件。

注释< - getGenomeAndAnnotation(生物=生物基因组= TRUE, GTF = TRUE, phix = TRUE, ncRNA = TRUE, tRNA = TRUE,核糖体rna = TRUE,输出。dir =参看[“ref”], assembly_type =“最高级的”)

注意,一些物种没有注释的核糖体rna,图示等gtf文件中。对于这个ORFik包含一些聪明的技巧:

  • 核糖体rna:您可以设置rRNA =“席尔瓦”下载席尔瓦的数据库(~ 2 gb文件)
  • ncRNA:如果gtf没有非编码rna,它们可以通过设置提取ncRNA =“汽车”,它将检查如果生物体存在于NONCODE数据库,并自动为您下载它们是否存在。
  • tRNA:没有定义图示的基因组是罕见的,没有web API来访问所有常见的实验生物转运rna的存在。在罕见情况下,您必须手动下载并使用tRNA添加从转运rna序列扫描或类似的数据库(然后将此文件添加到getGenomeAndAnnotation调用使用参数tRNA =“路径/ /下载/ tRNAs.fasta”)

4.2当地的注释

如果你不下载通过ORFik注释,我们需要创建Txdb对象(Bioconductor优化的注释格式)

这将节省你很多常见的下游警告和问题:正确seqlevels -正确seqlengths分配正确的有机体——更快的加载

gtf <——“/道路/ /地方/注释。gtf“基因组<——“/道路/ /地方/基因组。fasta”makeTxdbFromGenome (gtf、基因组生物=“酿酒酵母”)

txdb是gtf保存在相同的目录中,与一个扩展“.db”

应该注意的是,Bioconductor BSGenome包目前不支持作为ORFik对齐的注释,因为他们缺乏一些ORFik所需的功能。他们在未来可能会支持,已经可以用于所有ORFik的其他部分。

4.3没有定义注释utr

如果你没有定义utr注释,这会给你相当大的质量结果(无结果使用的领导人可以创建)。所以总是找到一个最优化与utr注释。如果这是不可能的ORFik包含两个方法来创建5 ' UTR注释,3 ' UTR注释很快就会被包括。

4.3.1从笼子里创建5 ' UTR注释

如果你有笼库,ORFik在一个简单的方法可以创建5 ' utr注释:

txdb <——“/道路/ /地方/ annotation.gtf。db“笼<——“/道路/ /笼。持续“#可以床上,假发等稳定持续是稳定(最快)reassigned_txdb <——assignTSSByCage (txdb,笼)AnnotationDbi:: saveDb(路径“/ / /地方/ annotation_cage.db”)

4.3.2创建伪5 ' UTR注释

如果你没有笼子里,您也可以指定一些固定的5 ' UTR长度,为所有cd成绩单没有5 ' UTR。

txdb <——“/道路/ /地方/ annotation.gtf。db“reassigned_txdb < assignTSSByCage (txdb笼= NULL, pseudoLength = 100) AnnotationDbi:: saveDb (reassigned_txdb,“/道路/ /地方/ annotation_pseudo_leaders.db”)领导人< - loadRegion (reassigned_txdb,“领导人”)

4.3.3修复畸形gtf /人造石铺地面

如果你有一个非参考基因组人造石铺地面,你的人造石铺地面可能是畸形的。gtf /人造石铺地面需要遵循gtf /人造石铺地面标准化:规范

最重要的是它需要8第一坐标列正确定义,和9属性列至少需要gene_id transcript_id !否则它将无用的在大多数ORFik R的分析。更好的如果它还有gene_biotype列定义,这将使你能够负载例如long-non-coding RNA直接坐标。

5RNA-seq对齐

ORFik使用星对准器,拼接意识和快速示通常地图读取的最高金额。可悲的是,它只适用于unix系统(Linux或Mac)。

对于windows用户:为Linux安装和运行在windows上ORFik子系统(WSL)将工作,如果你想与ORFik对齐数据。

对齐的数据我们需要两个步骤,索引基因组的一步,定位到基因组的一步。

5.1索引

给它的基因组注释索引输出从之前的步骤。这也将使每个索引消耗像phix步骤,如果你指定他们在前面的步骤。

指数< - STAR.index(注释)

如果你运行这个函数后再指数存在于当前文件位置,它不会重新检索,只是输出正确的对象的路径。如果你想重新索引做改造= TRUE。

5.2调整和校准数据

5.2.1整理数据

ORFik使用fastp修剪读取,这也只能在unix (Linux或Mac OS)。如果你在windows上,或者你想削减读自己,只是运行与修剪修剪,给文件夹读取下一个步骤的输入。

大多数Illumina公司测序包含3的适配器。这是因为假设你100个碱基序列,但实际RNA只有28元长阅读,你仍然需要72个碱基作为填料,不搞砸了所有应该长100基地。fastp的好处在于,它有自动检测和删除适配器,如果你查看生成的文件,您将看到fastp Illumina公司适配器自动删除。在极少数情况下一些库是一组适配器,或低质量的适配器,在这种情况下运行fastqc(或另一个3 '适配器分析仪),看看它错过。

Ribo-seq最后的规则是,你修剪读取应该不超过55元,其他明星(使用默认的局部比对)将无法找到阅读的28元对齐(明星必须阅读的默认对齐~ 50%)。RNA-seq适配器削减并不真的那么重要,作为局部比对会发现了。

5.2.2调整的数据

现在让我们看看我们需要削减的输入/对齐管道:我们通常需要9参数(更多是可能的如果你需要):

  • input.dir。与原始fastq rna:目录文件(或用户pre-trimmed文件)
  • output.dir。rna: bam文件输出目录
  • 指数:明星指数从之前的一步
  • 配对。结束:“是的”在这种情况下,如果单头或“不”。
  • 想从修剪步骤:步骤,损耗和对齐希望:(一个字符串:哪些步骤?(默认:“tr-ge”、写“所有”:“tr-co-ge”) tr:修剪(只对unix / WSL)有限公司:耗尽污染物包括ph值:phix损耗、rR:核糖体rna损耗、nc: ncrna损耗、tr: trna损耗、通用电气:基因组排列)写下你想要的步骤,由“-”分离。顺序无关紧要。只做修剪,对齐基因组写“tr-ge”
  • 适配器。序列“汽车”,或如果你知道添加它,通常更安全手册。预设是“illumina公司”、“small_RNA”和“nextera”。
  • max。cpu最大多少cpu使用
  • trim.front多少基地修剪。只有你相信有低质量读取在前面。
  • min.length最小长度通过bam文件的读取。
< - STAR.align一致性。文件夹(参看[" fastq RNA-seq”],参看“bam RNA-seq”,指数,配对。结束= is_paired_end步骤= " tr-ge”, #(修剪需要:适配器发现,然后基因组)适配器。序列= "自动",马克斯。cpu = 30, trim.front = 3, min.length = 20)

如果你使用fastp (tr步骤),你会得到一个pre-alignment质检报告。就像FastQC在html格式。你也会得到一个恒星运行由ORFik MultiQC报告给你。

5.2.3umi

一些较新的门店库包含独特的分子标识符。如果你需要存储的UMI读头,fastp支持这一点。这个在STAR.align直接包装。文件夹是目前尚未实现,但会很快!现在你可以叫fastp直接通过系统调用:

dir.create (~ / UMIandTrimmed)系统(粘贴(install.fastp(),“我”、“~ / sample1.fastq。广州”、“o”、“~ / UMIandTrimmed / sample1.UMIandTrimmed.fastq。广州”——adapter_sequence = AGATCGGAAGAGC”、“umi”、“——umi_loc”、“read1”、“——umi_len”、12)) #阅读fastp文档信息umi参数

加快,如果不需要umi也削减了umi。使用“trim.front”STAR.align.folder论点。可以当测序不是在非常低的输入样本和测序< = 8000万。一个很好的介绍可以在这里找到:dnatech.genomecenter.ucdavis.edu

5.2.4崩溃的重复读取

支持重复读取的崩溃(合并所有相同的读取,复制计数器在头),要做到这一点,首先只有削减读取移除适配器。如果你的读< 50基地长平均而言,这是一个好主意崩溃重复读取(更快的定位和处理)。注意在这种情况下,读取配对,然后崩溃是很危险的。但对于单头读,你可以这样做:

< - STAR.align一致性。文件夹(参看[" fastq RNA-seq”],参看“bam RNA-seq”,指数,配对。结束= is_paired_end步骤=“tr”, #(修剪)适配器。序列= "自动",马克斯。cpu = 30, trim.front = 3, min.length = 20) trimmed_files < -文件。路径(参看“bam RNA-seq”,“修剪”)#检查修剪读取其它平均< 50基地,为加速崩溃毫无意义。trim_table < - ORFik::: trimming.table trimmed.out stopifnot ((trim_table trim_mean_length < 50) ORFik:美元崩溃。fastq (trimmed_files“修剪”)#崩溃削减文件夹中所有文件#然后使用倒塌读< - STAR.align对齐对齐。文件夹(trimmed_files、“bam RNA-seq”,指数,配对。结束= is_paired_end步骤=“通用电气”,#(只能从倒塌的基因组比对)马克斯。cpu = 30, min.length = 20)

通常,RNA-seq > 50基地,所以只有做短读起来像Ribo-seq !

5.3解决错误当调整:

跑步明星是一个沉重的工作对于大多数的机器,所以你可能会经历一个错误如果你的机器是不够好,或者你有一个非默认的操作系统配置(调整人类基因组在32 gb内存的电脑会让其他无用的任务直到校准完成,所以如果你有访问多核服务器更多的内存,您应该使用它)。

现在,我们将通过一些可能出现的问题和如何解决这些问题。

5.3.1内存使用的警告

明星很消耗大量内存,因此如果你想指数和对齐大像人类基因组(通常3 GB),您可能需要调整两个参数。如果你有不到40 GB的空闲内存(32 GB)工作,调整该期间索引:

  • 20 GB马克斯ram的使用在基因组的一代
  • 2 SA稀疏(后缀数组应该是稀疏,这将给慢映射)
指数< -明星。指数(注释,马克斯。ram = 20, SAsparse = 2)

5.3.2系统限制了马克斯打开的文件

明星可以使用大量的线程,每个线程让许多几个文件打开。一些系统有限制多少个文件你可以打开。这是发现通过“ulimit环”终端。如果恒星崩溃从这个错误,你需要增加数量的允许打开的文件(需要root访问)或减少的数量所使用的核心星球(不需要root访问):

STAR.align。文件夹(参看[" fastq RNA-seq”],参看“bam RNA-seq”,指数,马克斯。cpu = 4) #减少核4通常适用于大多数系统

5.3.3重启明星从坠毁的步骤

明星有时会崩溃,也许你的光盘成为全部或指定一个错误的参数等等ORFik有一些聪明的把戏继续对齐坠毁。假设削减在基因组定位是做失败了。当然如果你重新运行功能,它将re-trim原始fastq-reads。继续使用完成的文件而不是和只做基因组比对,做:

STAR.align。文件夹(参看[" fastq RNA-seq”],参看“bam RNA-seq”,指数,马克斯。cpu = 4,步骤= " tr-ge”,简历=“通用电气”)#简历通用电气使用tr完成

re-trim这将节省您的时间,或更新输入文件的路径修剪fastq文件的文件夹。

6创建一个ORFik酵母的实验数据

下一步是使一个ORFik实验(查看ORFik实验小插图如果你不熟悉这类)。

如果你重命名的文件在fastq步骤正确,这将使ORFik实验能够猜出正确的数据是什么。如果有复制等等。如果你没有,你现在仍然可以重命名bam文件。

我们现在可以很容易地做一个ORFik实验的数据有:

txdb_file < paste0(注释(“gtf”),“.db”) # txdb文件,不生gtf fa < -注释(“基因组”)创建。实验(其实= " yeast_exp_RNA ", dir = paste0(参看“bam RNA-seq”,“对齐/”),txdb = txdb_file fa = fa,有机体=有机体,viewTemplate = FALSE, pairedEndBam =每bam is_paired_end #真/假文件)

现在的文件保存到默认目录,即:saveDir = " ~ / Bio_data / ORFik_experiments /”

df < - read.experiment (“yeast_exp_RNA”)

libtype,如果你不满意,复制文件等等,您可以编辑ORFik实验R(重建实验,希望槽)或编辑在自由泳的办公室,Excel或另一个电子表格查看器。

6.1对齐后质检报告

看到了什么? QCreport详情你会得到什么作为输出

QCreport (df)

6.2库转换为新的格式

现在你有一个实验,但bam文件大而缓慢的加载。让我们转换为一些更快的格式。

如果你想让optimzed格式相同的bam文件(包含雪茄信息),使用.ofst。(最快,不可读的进口(持续文件稳定运行时ORFikQC)

remove.experiments (df) #删除加载库convertLibs (df、类型=“持续”稳定)

如果你只要山峰,使用假发文件(进口快速、可读)

remove.experiments (df) convertLibs (df、类型=“假发”)

作为一个例子如何加载数据到R .ofst优化格式。

6.3输出库R

这将输出环境库指定,默认.GlobalEnv(默认R环境)。从实验表文件命名RNA_1_WT, RNA_1_treated等等。

remove.experiments (df) outputLibs (df、类型=“持续”稳定)

6.4FPKM值(归一化计算)

运行QCreport之后你会计算表的mrna的山峰,5 ' utr、cd和3 ' utr。

让我们来做一个例子来找到fpkm之间的比率之间的cd和mrna转录区域。

信使rna < - countTable (df、地区=“信使rna”,类型=“fpkm”) cd < - countTable (df、地区=“cd”,类型=“fpkm”)比< - cd / mrna

我们现在有一个比fpkm cd和mrna之间的值。

你现在可以继续Ribo-seq管道看到一个更高级的例子。