基于eXpress对转录组和基因组进行量化

NGS

目录(?)[+]

General workflow

eXpress是一个通用的丰度估计工具,它可以应用于任意靶序列和高通量测序reads。 靶序列可以是任意基因组区域,例如RNA-seq中的转录本。因此,一般的流程应该是这样的:

1. 选择你要分析的数据

2. 产生靶序列的集合

3.将目的片段比对到靶序列上

4. eXpress需要的参数包括目的片段,然后进行靶序列的丰度估计

5. 额外的下游分析



图示:



这个教程涉及如下工具:


其它有用的工具(不限于RNA-seq)还包括  here .



例子: 没有参考基因组序列也没有注释信息的情况

有的时候,你将研究没有参考基因组序列的物种,或者参考序列质量较差。这通常意味着你也没有转录组序列。下面要进行的步骤经常是从头组装转录组。接下来,我们将使用Bowtie2进行片段比对。

取得数据

为了取得一个数据,我们将使用GEO访问号。如果你没有一个GEO访问号,而是仅仅想要浏览数据,你可以跟随这个tutorial。为了演示的目的,我们将要研究牦牛转录组。




为什么选择牦牛呢?因为牦牛是天生没有气味的。事实上,是牦牛毛无味。为了下载数据,就直接去GEO吧,然后在"GEO accession" 输入访问号“GSE33300”,点击“GO”。




这将将你带到主实验页面。可以看到有6个来自不同器官的不同的样品。我们先看一下"GSM823609 brain"。点击这个实验,并点击ftp链接下载SRA文件。点击目录可以看到SRR361433.sra. 这是一个paired end的RNA-seq数据,我们将使用如下命令抽取数据

[text]  view plain copy
  1. $ fastq-dump --split-3 SRR361433.sra  

结果产生两个文件, SRR361433_1.fastq SRR361433_2.fastq . 注意到使用  --split-3 . 只有当你下载的数据是paired end的情况下才需要用这个参数. 

通过从头组装进行注释

在这个演示中,我们花点时间进行一个完全从头组装分析,而不使用基因组信息,使用的工具是 Trinity .
使用如下参数运行Trinity :

[text]  view plain copy
  1. $ Trinity.pl --seqType fq --JM 200G --left SRR361433_1.fastq --right SRR361433_2.fastq --CPU 2  

在几个小时内,我们将在trinity_out_dir中得到几个文件 , 包括注释文件 Trinity.fasta .这将是新的注释文件. 从这里开始,如果你有参考基因组的情况下,分析将大致相同(下面的例子也是一样的).

这里,可以下载组装文件.

比对

建立索引

在你进行任何比对之前,你首先需要建立靶序列的一系列索引文件.
[text]  view plain copy
  1. $ cd trinity_out_dir  
  2. $ bowtie2-build --offrate 1 Trinity.fasta Trinity  

这将在trinity_out_dir中建立索引,base name是 Trinity,bowtie2需要的参数只需要写到base name结束即可,不需要后面的部分 . 这个索引将允许bowtie2快速将reads比对到靶序列。Offrate 1可以加快比对速度,代价是需要的硬盘空间增大.

进行比对

使用一行命令即可运行bowtie2,
[text]  view plain copy
  1. $ bowtie2 -a -X 800 -p 4 -x trinity_out_dir/Trinity \  
  2.     -1 SRR361433_1.fastq -2 SRR361433_2.fastq | samtools view -Sb - > hits.bam  

  • -a - 想让bowtie2报告所有的比对可用此参数,适用于转录组分析,不适用于比对到基因组的分析(eXpress将处理多比对的问题,非常慢!)
  • -X 800 - 将设置片段长度(fragment length)不超过800(实际的应用一般设置到300以内就可以了). 这个设置将完全将RNA-seq的测序片段纳入分析的范畴
  • -p 4 - 使用4个CPUs进行比对。你应该尽可能多的使用多个CPUs以加快速度.
  • -x ... - Bowtie 2索引
  • -1 ... -2 ... - RNA-seq实验的左reads和右reads

几十分钟到几小时后(取决于你使用多少CPUs), 你应该看到如下控制台信息:

[text]  view plain copy
  1. [samopen] SAM header is present: 165714 sequences.  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,基于Node.js和Express框架实现上述方法,您可以按照以下步骤进行: 1. 创建Express应用程序:首先,您需要在Node.js环境下安装Express框架,然后创建一个Express应用程序。可以通过以下命令来创建: ``` mkdir myapp cd myapp npm init npm install express --save ``` 2. 设计搜索窗口:在Express应用程序中,可以通过定义路由和模板引擎等方式来设计搜索窗口。可以使用EJS、Handlebars等模板引擎,将搜索窗口的HTML代码与后台逻辑进行分离。例如,可以在`views`目录下创建一个`search.ejs`文件,用于显示搜索窗口的HTML代码。可以使用以下代码: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Search Window</title> </head> <body> <form action="/search" method="get"> <input type="text" name="keyword"> <button type="submit">Search</button> </form> </body> </html> ``` 3. 实现搜索功能:在Express应用程序中,可以通过定义路由和控制器等方式来实现搜索功能。例如,在`routes`目录下创建一个`search.js`文件,用于处理搜索请求。可以使用以下代码: ``` const express = require("express"); const router = express.Router(); const db = require("../models/db"); router.get("/", (req, res) => { res.render("search"); }); router.get("/search", (req, res) => { const keyword = req.query.keyword; const results = db.search(keyword); res.render("results", { results }); }); module.exports = router; ``` 其中,`db`代表数据库模块,`search`方法用于在数据库中进行搜索,`results`表示搜索结果。 4. 显示搜索结果:在Express应用程序中,可以通过定义路由和模板引擎等方式来显示搜索结果。例如,在`views`目录下创建一个`results.ejs`文件,用于显示搜索结果的HTML代码。可以使用以下代码: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Search Results</title> </head> <body> <% if (results.length === 0) { %> <p>No results found.</p> <% } else { %> <ul> <% for (let i = 0; results[i]; i++) { %> <li><%= results[i].name %></li> <% } %> </ul> <% } %> </body> </html> ``` 其中,`results`代表搜索结果。 5. 启动Express应用程序:最后,您需要在Node.js环境下启动Express应用程序,以便用户可以访问搜索窗口。可以使用以下命令来启动: ``` node app.js ``` 综上所述,基于Node.js和Express框架实现上述方法,需要创建Express应用程序,设计搜索窗口,实现搜索功能,以及显示搜索结果。在实现过程中,需要注意路由、控制器和模板引擎等方面的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值