机器学习和生物信息学实验室联盟
标题: JBrowse搭建及使用 [打印本页]
作者: zouquan 时间: 2012-4-5 13:37
标题: JBrowse搭建及使用
UCSC Genome Browser可以说是最好的genome browser,可以搭建麻烦、需要配置数据库。现在介绍一个只需要Apache就可以、不需要数据库的Browser ---- JBrowse (http://jbrowse.org/)
--------------------------------示例------------------------------------
先看一个例子,我在75上搭建人的基因组,http://datamining.xmu.edu.cn/jbrowse-1.2.1-hg19mini/index.html
将左侧感兴趣的标签拖拽到右侧图区即可。
(目前还没有microRNA的注释,哪位同学辛苦一下,把microRNA的mirBase结果和预测结果,生成gff3格式,添加进去?)
--------------------------------搭建方法-------------------------------
只需要下载tar.gz包[attach]606[/attach],解压到Apache的目录下(和建立个人主页一样)
但需要先安装需要的环境,包括bioperl等,具体如下:
[attach]605[/attach]
[attach]604[/attach]
[attach]603[/attach]
[attach]602[/attach]
[attach]601[/attach]
[attach]600[/attach]
[attach]599[/attach]
[attach]598[/attach]
75我已经安装完毕。如果没有安装的机器,可以到CPAN去搜索下载,几个包的安装方法几乎一样,都是依次运行以下命令:
#perl Makefile.PL
#make
#make test
#make install
----------------------------------导入数据-------------------------------
接下来就是导入自己的数据,
1. 先导入序列数据(fasta文件),可以到index.html所在的目录下,运行
#perl bin/prepare-refseqs.pl --fasta docs/tutorial/data_files/volvox.fa
斜体部分替换成你自己的fasta文件
注意:fatsa文件中的序列名字中,最好别有空格
2. 将gff3标注导入,运行
#perl bin/flatfile-to-json.pl --gff jiazao/sangertop7.gff3 --tracklabel DNA
运行成功应该显示每个fasta上被标注的个数,如下图;如果没显示个数,请检查你的gff3文件,是否第一列的序列名称有误
[attach]970[/attach]
斜体部分替换成你自己的gff3文件
tracklabel后面跟的就是在你页面左侧显示的名称,如下图
[attach]966[/attach]
如果想修改或删除,直接到data目录下删除即可
作者: xmubingo 时间: 2012-4-5 13:52
好炫的工具。
比GBrowse有爱多了。
GBrowse配置过复杂掉。
作者: zouquan 时间: 2013-3-27 07:42
最新的1.8.1更炫,不过低的IE内核好像不行,google浏览器没问题
作者: 小疯纸一枚 时间: 2013-3-27 09:54
1.8.1要多安装这三个文件
作者: xmubingo 时间: 2013-6-17 13:47
本帖最后由 xmubingo 于 2013-6-25 09:10 编辑
-------------------------------------------------------
安装 JBrowse version 1.9.5 日志
-------------------------------------------------------
1. 先安装apache-tomcat, perl和python,这是最基础的测试环境。
2. 认真阅读JBrowse Quick-Start Tutorial,你会发现,其实执行setup.sh即可完全所有安装任务,但是会出错,原因是需要一些依赖包,认真阅读JBrowse Troubleshooting,你会发现,只需要执行以下命令即可安装所有依赖包- sudo apt-get install build-essential libpng-dev zlib1g-dev libgd2-xpm-dev
复制代码 3. 安装完依赖包之后执行安装setup.sh即可4. 将sample_data/json/volvox下的数据拷贝到data下,即可显示测试页面
[attach]1499[/attach]
5. 测试地址: http://59.77.16.70/JBrowse-1.9.5/
6. 详细文档访问wiki:http://gmod.org/wiki/JBrowse
7. 如何用一个JBrowse单独显示多个序列。
解读地址http://(your_machine/path_to_jbrowse)/index.html?data=sample_data/json/volvox
其中data变量传数据地址,“sample_data/json/volvox”是JBrowse根目录下的数据路径。因此将多个序列的data放在不同的目录下,通过传给index.html不同的数据目录即可显示想要的序列。
假如不传特定的目录参数,通过http://(your_machine/path_to_jbrowse)/index.html访问,将直接定位到根目录下的data文件夹。
8. JBrowse各种图形表示什么意义? http://59.77.16.70/JBrowse-1.9.5/docs/featureglyphs.html
9. select tracks 演示:http://59.77.16.70/JBrowse-1.9.5 ... data/json/modencode
10. 序列比对演示:
例子: 参考序列ref.fa,查询序列test.fa
第一步,格式化JBrowse的参考序列。- bin/prepare-refseqs.pl --fasta data/ref.fa --out data --trackLabel ref-seq --key ref-seq
复制代码 第二步,进行blastn比对。- makeblastdb -in ref.fa -input_type fasta -dbtype nucl -title mydb -out mydb
- blastn -query test.fa -task blastn -db mydb -out out.txt -evalue 1 -outfmt 6
复制代码 第三步,转blastn结果为gff3。- perl blast92gff3.pl < out.txt > test.gff3
复制代码 第四步,在JBrowse中添加轨迹。- bin/flatfile-to-json.pl -gff data/test.gff3 --tracklabel mytest
复制代码 演示地址:http://59.77.16.70/JBrowse-1.9.5-test/
11. 撤销一个轨迹- bin/remove-track.pl -D --tracklabel mytest
复制代码 加-D说明连同数据一起删除,否则只是不显示该轨迹
12. 自定义轨迹的feature
[attach]1500[/attach]
上图的参数有些已经不再使用,目前,1.9.5版本的参数如下:
--className 设置一级feature类型,具体类型参考JBrowse feature glyphs 默认为“feature”
--arrowheadClass 设置箭头类型
--subfeatureClasses 设置二级feature类型
--clientConfig 用户自定义css
--type 指定轨迹类型,自动匹配feature类型
(1)一级feature命令:- bin/flatfile-to-json.pl -gff data/test.gff3 --tracklabel dblhelix --className dblhelix
复制代码 test.gff3内容如下:
##gff-version 3
scaffold4922_284 blast match 6862 7994 1768 - . ID=test_G1;Target=test;align=1154
scaffold4922_284 blast HSP 6862 7994 1768 - . Parent=test_G1;Target=test 122 1269;align=1154
scaffold4922_284 blast match 8073 9013 1654 - . ID=test_G2;Target=test;align=943
scaffold4922_284 blast HSP 8073 9013 1654 - . Parent=test_G2;Target=test 122 1062;align=943
一级feature演示地址:http://59.77.16.70/JBrowse-1.9.5-test/index.html?data=feature
(2)自定义css- bin/flatfile-to-json.pl -gff data/test.gff3 --tracklabel feature_client --clientConfig '{"featureCss": "background-color: #668; height: 2px;", "histScale": 2}'
复制代码 (3)二级feature命令:- bin/flatfile-to-json.pl -gff data/test.gff3 --tracklabel subfeature_match_part --className transcipt --subfeatureClasses '{"exon":"transcipt-exon"}'
复制代码 --------事实上到这里,并没有出现我们想要的效果!!--------
基本上都是灰色的,然而理论上应该是彩色的。
分析,JBrowse是用json格式来显示的,我们发现我们的json和自带例子volvox的json有差别。差别在于,我们的gff3是通过blast转化而来的,转化后匹配的部分用“match”来注释。这个“match”并不在JBrowse的feature列表中,因为找不到"match"的css样式。
所以,我们对gff3文件做了如下修改:
##gff-version 3
scaffold4922_284 blast CDS 6862 7994 1768 - . ID=test_G1;Target=test;align=1154
scaffold4922_284 blast CDS 6862 7994 1768 - . Parent=test_G1;Target=test 122 1269;align=1154
scaffold4922_284 blast generic_parent 7994 8073 79 - . ID=test_G1;Target=test;align=79
scaffold4922_284 blast generic_parent 7994 8073 79 - . Parent=test_G1;Target=test 122 200;align=79
scaffold4922_284 blast exon 8073 9013 1654 - . ID=test_G2;Target=test;align=943
scaffold4922_284 blast exon 8073 9013 1654 - . Parent=test_G2;Target=test 122 1062;align=943
将match改成CDS, 将中间未匹配部分改成generic_parent,第二段改成exon。这样显示出现来的效果应该是CDS-generic_parent-exon。
我们把改之后的gff3导入成新的轨迹cds,你会发现,效果出现了。
13. 给index.html传参数
index.html可以接受三种参数,data,loc,tracks。具体解释参见Controlling_JBrowse_with_the_URL_Query_String
data参数:指代轨迹数据的存放文件夹地址,参考第7点。
loc参数:需要初始定位的区间
tracks 参数:需要初始显示的轨迹
作者: 小疯纸一枚 时间: 2013-12-4 08:37
本帖最后由 小疯纸一枚 于 2013-12-7 19:12 编辑
任务描述:
对 http://59.77.16.70/JBrowse-1.9.5/ 进行注释 ,就是把gff3当输入文件,在browse上展示出来
1、对mRNA注释,这个最简单,有现成的gff,见附件,名字叫“gene”
2、对miRNA注释,你把fasta序列准备好,让魏乐义和胡玲玲给你搞定gff3, 名字叫“miRNA”
3. 对tRNA注释,用附件软件,我在75上试过,好使。名字叫“tRNA”
可能遇到的问题:
当输入bin/faltfile-tojson.pl --gff data/XXX.gff3 --tracklabel XXX
或者 bin/prepare-refseqs.pl --fasta data/XXX.fa 会出现
[attach]1763[/attach]
这时候就要更新perl 版本
下载最新版本http://www.perl.org/get.html
perl-5.18.1.tar.gz
依次执行命令
tar zxvf perl-5.18.1.tar.gz
cp perl-5.18.1
mkdir /usr/local/perl
./Configure -des -Dprefix=/usr/local/perl
make
make test
make install
cd /usr/bin
rm -rf perl
ln -s /usr/local/perl/bin/perl perl
然后perl 就更新完毕, 然后就不会出现上述错误,然后可能会缺失perl模块,然后可以到CPAN上去下载
需要的模块。
--1,2> 现在有一堆的gff文件(例如从tRNAscan-out输出转换来的gff,如何转换后文有交待),这些gff所对应的序列文件分散在Orange下面的jiazhao1,2,3个文件夹中,- #!/bin/sh
- filelist=`ls /backup2/wwwroot/JBrowse-1.9.5/Orange/jiazhao2_gff3`
- for file in $$filelist
- do
- cd /backup2/wwwroot/JBrowse-1.9.5/Orange/jiazhao2/$${file}
- pwd
- /backup2/wwwroot/JBrowse-1.9.5/bin/flatfile-to-json.pl --gff /backup2/wwwroot/JBrowse-1.9.5/Orange/jiazhao2_gff3/$${file} --tracklabel tRNA
- pwd
- done
- #filename=`basename $$file`
- # for file1 in `ls /backup2/wwwroot/maoyaozong/gff`
- # do
- # filename2=`basename $$file1`
- # if [ "$$filename2" = "$$filename" ]
- # then
- # echo "$$file" >> result2
- # else
- # echo "the file1 is $$filename and the file is $$filename2"
- # fi
- # done
- done
复制代码 代码假设这些gff 全部放在jiazhao2_gff3,列举这些文件的文件名,然后进入到jiazhao2文件夹中进行配置,因为有的文件不在jiazhao2中,所以执行的时候会出现错误,但是没有关系,运行完后,分别到剩下的文件夹中配置就好了jiazhao1,jiazhao3,如果想要确切的知道各个gff对应哪个序列文件夹,可以用注释部分进行提取,但是时间会很久哦。
---3>对tRNA的标注软件是tRNAscan-SE, 软件描述:
- identifies transfer RNA genes in genomic DNA or RNA sequences The program is invoked by giving it a series of optional command
- line parameters,then a list of one or more sequence files written in the FASTA format .
- tRNAscan-SE [-options] FASTA_file(s)
- -o file
- : save final results in file
- Specifiy this option to write results to file rather than standard output
复制代码已经在70安装了tRNAscan-SE
安装tRNAscan-SE 的方法,解压,然后make
安装tRNAscan-SE出现错误conflicting types for ‘getline’
原因是某个getline函数定义和已经有的getline函数重名了。
错误信息:
sqio.c:238:1: error: conflicting types for ‘getline’
In file included from sqio.c:27:0:
/usr/include/stdio.h:677:18: note: previous declaration of ‘getline’ was here
make: *** [sqio.o] Error 1
修改sqio.c 将其中的getline换个名字 get_line 就可以了!
方法: 用vi 打开sqio.c文件
然后来一个:1,$s/getline/get_line/g
现在有了tRNAscan-SE的输出文件假设命名为 tRNA.out, 这个不是gff3文件,需要捣鼓成gff3文件,可以参考gff3文件各个字段的含义,以及 tRNA.out各个字段的含义,自己写代码进行转换。
http://bio-spring.info/wp/?tag=gff3 这个是gff3 各个字段含义的解释
这个是tRNA.out各个字段的含义:
[attach]1764[/attach]
可以自己写代码转换:
这里有一个现成的,如果有错请指出谢谢,最好还是自己写比较保险
- import java.io.BufferedReader;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- public class covert_gff3 {
- //用来把tRNAscan_SE的输出文件转化成JBrowse可以用的gff3格式
- /**
- * @param args
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
- // TODO Auto-generated method stub
- BufferedReader tRNA_read=new BufferedReader(new FileReader("zoutRNA.out"));
- String line=tRNA_read.readLine();
- // System.out.println(line);
- while(line.charAt(0)!='-'){
- line=tRNA_read.readLine();//当不是---------行的时候一直往下读
- }
- line=tRNA_read.readLine();//读取第一行数据
- String last_name="maoyaozong";
- while(line!=null){//当字符串里面有东西的时候
- String [] element = line.split("\\s+");//把每一行里的元素都分隔开来
- //System.out.println(element[0]+" "+element[1]+" "+element[2]); 测试用的因为有的是两个空格
- if(!last_name.equals(element[0])){//如果和上一行的名字不相等就说明是一行新的序列
- BufferedWriter bw=new BufferedWriter(new FileWriter(element[0]));
- bw.write("##gff-version3");
- bw.newLine();
- bw.flush();
- bw.write(element[0]+"\t"+element[1]+"\t"+"tRNA"+"\t"+element[2]+"\t"+element[3]+"\t"+element[8]+"\t"+"-"+"\t"+"."+"\t"+"ID="+element[0]+element[1]);
- bw.newLine();
- bw.flush();
- bw.close();
- }
- else{//如果和上一行一样的话,就是追加了
- FileWriter writer = new FileWriter(element[0], true);
- writer.write(element[0]+"\t"+element[1]+"\t"+"tRNA"+"\t"+element[2]+"\t"+element[3]+"\t"+element[8]+"\t"+"-"+"\t"+"."+"\t"+"ID="+element[0]+element[1]);
- writer.write("\n");
- writer.close();
- }
- line=tRNA_read.readLine();
- last_name=element[0].substring(0, element[0].length());
- System.out.println(last_name);
- }
- }
- }
复制代码 这样就有了tRNA.gff3文件了……然后和上面的配置方法一样进行配置就可以了。
--4> 在配置的时候,终端运行会很长时间,如果网络问题还是怎么地突然中断,那么之前的工作就白瞎了,所以保险起见用 screen 命令,如果已经知道这招请无视我,我是学渣。
在终端输入screen ,这时候进入一个新的界面,在这里执行 ./XXXX.sh 命令进行配置
这时候即使是终端退出,screen 的会话也不会被中止,只需要再次启动终端,进入screen就可以了。
离开 screen 界面 按ctrl+a+d
查看多少screen: screen -ls
当查看screen 后,每个screen前面有ID号,如果要启动其中的screen : screen -r ID
当执行 screen -r ID 不能恢复的时候,可以先试一下 screen -d ID ,然后再恢复。
作者: xmubingo 时间: 2013-12-4 13:24
本帖最后由 xmubingo 于 2013-12-4 15:39 编辑
非常好!
1. 对于这种whole genome shotgun sequencing数据(scaffold)的注释, 可以参考这个文件:http://www.ensembl.org/info/geno ... irrel_genebuild.pdf
这是标准做法。
2. 还有这篇论文《The Ensembl Automatic Gene Annotation System》,2004年,比较旧,有些方法可能不实用了。
3. NCBI的真核基因组注释:Eukaryotic Genome Annotation Pipeline http://www.ncbi.nlm.nih.gov/books/NBK169439/
4. Update On NCBI's Eukaryotic Genome Annotation Pipeline and Expansion To Process RNA-Seq Data https://pag.confex.com/pag/xxi/webprogram/Paper5157.html
5. 真核基因组注释: A beginner's guide to eukaryotic genome annotation http://www.nature.com/nrg/journal/v13/n5/full/nrg3174.html
6. Tomato 基因组注释。PPT直观: http://www.bioinformatics.nl/cou ... nome_annotation.pdf
7. MAKER2: an annotation pipeline and genome-database management tool for second-generation genome projects http://www.biomedcentral.com/1471-2105/12/491
8. Annotating a genome sequence: gene models https://www.nescent.org/wg/academy/images/9/97/Workshop4.pdf
9. GMOD http://www.gmod.org/wiki/Main_Page
作者: 小疯纸一枚 时间: 2013-12-10 17:51
本帖最后由 小疯纸一枚 于 2013-12-10 22:46 编辑
任务描述:
把大堆序列(所有序列在一个文件中)配置到一个页面中,并添加tRNA,mRNA,miRNA标签:
首先导入数据:
bin/prepare-refseqs.pl --fasta <fasta file> [options]
如果文件里面有很多序列,(比如有30040), 那么每个序列都会默认配置成为参考序列,可以在窗口的下拉菜单
部分进行选择。If the file has multiple sequences (e.g. multiple chromosomes), each sequence will become a reference sequence by default. You may switch between these sequences by selecting the sequence of interest via the pull-down menu to the right of the large "zoom in" button.
[attach]1795[/attach]
修改下拉菜单默认序列
当我们把gff 文件和序列文件都导入到JBrowse之后,选择下拉菜单相应的序列,就能看到标注的结果。
但是一般来说,被标注的序列条数少,而参考序列多,所以多数情况下选择参考序列,能显示标注结果的概率比较小
系统默认在下拉菜单显示前三十条序列,我们为了尽可能的展示成果,需要把有标注结果的序列展示在下拉列表的前
三十条里面。
手工配置下拉列表需要修改 JBrowse/data/seq/refSeqs.json文件。在文件最前端添加30条序列标注。
1:我们挑选gff文件下的序列,这样能有标注结果的概率比较大 ,假设我们选定了scaffold1611
2:可以备份一份refSeqs.json文件到我们自己的电脑,用notepad++打开,在notepad++里面查找这个序列,ctrl+F
[attach]1797[/attach]
3:然后把相应的sacffold1611条目复制到JBrowse下的refSeqs.json文件下,复制到最前。
[attach]1798[/attach]
4:然后保存,在浏览器中我们就可以看到scaffold1611在前端显示
[attach]1799[/attach]
5:下图是倒腾了30次之后的结果,开始觉得默认30条好少,手工修改的时候就痛不欲生了。
[attach]1801[/attach]
页面参数规则:
[attach]1796[/attach]
http://59.77.16.70/JBrowse-1.9.5-test/index.html?loc=scaffold4922_284%3A5392..9677&tracks=DNA%2CmiRNA%2CmRNA%2CtRNA&highlight=
红色的部分。
第一个字段(如scaffold4922_284)表示序列名,
第二个字段(5392)表示要展示的起始位置,第三个字段(9677)表示要展示的终止位置。
第三四五字段miRNA,mRNA,tRNA表示标注的标签名,如果增加了标签,需要增加相应的字段。
作者: zouquan 时间: 2017-6-6 22:57
在新服务器上简单搭建
1. 上传JBrowse-1.12.3.zip
2. 解压缩unzip JBrowse-1.12.3.zip
3. cd /JBrowse-1.12.3.zip
4. ./setup.sh
5. 上传ch1-12.fasta
6. 运行./bin/prepare-refseqs.pl --fasta data/chr1-12.fasta
7. 上传gff3文件
8. ./bin/flatfile-to-json.pl --gff data/ch1-12.gff3 --trackType CanvasFeatures --trackLabel keygenes
9.提示缺少PerIO,安装PerlIO,安装时提示没有zlib.h文件, apt-get install zlib1g-dev
apt-get install zlibc,然后重新运行。一切OK
注意:一定要保证fasta文件的序列名和gff3文件第一列的名是相同的
见:http://web.malab.cn/rice/JBrowse-1.12.3/
欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) |
Powered by Discuz! X3.2 |