jbrowse和NGL展示基因组

最近朋友介绍了一个项目,用jbrowse和NGL来展示基因组,对于没有生物基础的我来说是个不小的挑战,但是咱10岁就开始用学习机写程序,这点问题还是难不倒我的(吹点小牛,开始正题)。

jbrowse和NGL都是用JavaScript开发,所以有web开发经验的同学应该都比较好上手。

jbrowse安装

我使用的是JBrowse-1.12.1-dev.zip这个版本,不要使用不带dev的版本,这样在开发中会缺少一些js包。

安装过程比较简单,将压缩包解压放到nginx的html目录下,直接访问url就可以了。

我们在首次安装好以后就有过一个错误提示,提示我们找不到data/seq/refSeqs.json文件。这并不是jbrowse安装的不好,是因为安装完后样例放在sample_data目录下,可以吧sample_data/json/volvox下的内容拷贝到jbrowse安装目录下的data目录下(如果没有data可以手工建一个)

安装完成后会自带几个样例基因组,可以通过访问url来指定其他的data目录所在位置,例如样例提供的http://192.168.1.39/jbrowse/?data=sample_data/json/volvox

加上自己的基因组数据

虽然写这篇文章的时候把这步放在前面,但是之前走了很多弯路,其实jbrowse很多操作都是基于某个特定基因组的(也就是对应特定的trackList.conf)。

引用手册文件

Before any feature or image tracks can be displayed in JBrowse, the reference sequences must be defined using the prepare-refseqs.pl formatting tool.

上面安装步骤介绍的时候我们是吧volvox数据拷贝到了data下,这里简单说一下如何创建自己的data,官方配置向导中也提到了如何创建Ref

找到控制jbrowse的核心文件

所谓的核心文件也就是控制jbrowse的一些操作函数所在的js文件,文件位于{jbrowse_root}/src/JBrowse/Browser.js

例如我们要自己实现一个按钮,控制jbrowse的视窗右移,我们可以在代码中找到下面这一段

var moveRight = document.createElement("img");

//moveRight.type = "image";

moveRight.src = this.resolveUrl( "img/Empty.png" );

moveRight.id="moveRight";

moveRight.className = "icon nav";

navbox.appendChild(moveRight);

dojo.connect( moveRight, "click", this,

function(event) {

dojo.stopEvent(event);

this.view.slide(-0.9);

});

最重要的就是this.view.slide(-0.9)这句话了,我们在其他地方写js的时候只要能得到view这个对象,那么我们就可以直接调用他的slide方法进行平移操作了。

这个目前可以实现控制jbrowse上的navigation导航栏

玩一下plugin

玩jbrowse时候遇到的一些坑

在调试的时候发现改了代码没有起作用,首先要清除一下缓存,然后再刷新。例如在写插件的时候,发现view自带一个zoomOut,但是this.view.zoomOut报找不到view(this等于plugin当然找不到~),改为args.browser.view感觉应该能找到,但是怎么刷新都提示找不到view,后台清除缓存后解决此问题。

在写好了一个plugin的时候发现无论如何就加不上(后来发现这是一个连环坑),因为如果不提供url中data=sample_data/xxxxx/xxx那么jbrowse会去找根目录下的data目录,但是一开始setup.sh完成后并没有这个目录,所以造成在jbrowse.conf就算配置上plugin也看不到,但是如果加上url中的data,那么jbrowse.conf就不起作用了,直接定位到sample_data下的trackList.json。

NGL安装

同样

参考文档

jbrowse官网
http://jbrowse.org

官方配置向导
http://gmod.org/wiki/JBrowse_Configuration_Guide

参考了这个网站的全屏按钮的代码
https://phytozome.jgi.doe.gov/jbrowse/sample_data/

一个不错的jbrowse网站,介绍了一些官网没有的概念
https://www.araport.org/jbrowse/user-guide#navigation

时间: 2024-10-20 21:44:19

jbrowse和NGL展示基因组的相关文章

宏基因组扩增子图表解读2散点图:组间整体差异分析(Beta多样性)

散点图 数据点在直角坐标系平面上的分布图.在宏基因组领域,散点图常用于展示样品组间的Beta多样性,常用的分析方法有主成分分析(PCA),主坐标轴分析(PCoA/MDS)和限制条件的主坐标轴分析(CPCoA/CCA/RDA). Beta多样性 Beat多样性是生态学概念,专指不同组或生态位间物种组成的差异. 分析方法 在读文章中经常可以看到PCA分析.PCoA分析,NMDS分析,CCA分析,RDA分析.它们在本质上是排序(ordination)分析.排序的过程就是在一个可视化的低维空间(通常是二

全基因组重测序基础及高级分析知识汇总

全基因组重测序基础及高级分析知识汇总 oddxix 已关注 2018.09.20 17:04 字数 11355 阅读 212评论 0喜欢 6 转自:http://www.360doc.com/content/18/0208/11/19913717_728563847.shtml 全基因组重测序是通过对已有参考序列(Reference Sequence)的物种的不同个体进行基因组测序,并以此为基础进行个体或群体水平的遗传差异性分析.通过全基因组重测序,研究者可以找到大量的单核苷酸多态性位点(SNP

基于全基因组测序数据鉴定结构变异的四大类算法总结

不同类型的基因组变异示意图(图片来源:labspaces) 上次给大家总结介绍了基因组单核苷酸多态性(single nucleotide polymorphism,SNP)的鉴定方法,今天给大家介绍结构变异(structural variations,SV)的种类及基于基因组测序数据的鉴定方法. 因为结构变异是造成物种表型差异的一个重要原因,且与各类疾病,特别是癌症的发生.发展紧密相关,因此研究结构变异非常重要. 结构变异通常是指长度大于1Kb的基因组序列变异,包括多种不同的类型:插入(inse

Science重磅 | 新技术Slide-seq能以高空间分辨率测量全基因组的表达情况

原文地址:https://science.sciencemag.org/content/363/6434/1463.full Slide-seq: A scalable technology for measuring genome-wide expresssion at high spatial resolution 摘要 细胞在组织中的空间位置强烈影响者它们的功能,然而,目前缺乏可高通量且全基因组范围内在单细胞水平对基因表达进行准确捕获的技术.原文作者开发了Slide-seq技术,这是一种将

第37天:小米手机图片展示

1.arguments对象alert(arguments.length);//返回实参的个数只在函数内使用arguments.callee;//返回正在执行的函数,也是在函数体内使用在函数递归调用时,推荐使用arguments.callee代替函数名本身function fn(){console.log(arguments.callee);} 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <me

【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

数据库的创建和sql语句增删改查 1. 加载驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, name varchar(20), age integer ); 添加: insert into person(name, age) values('lisi', 19); 删除: delete from person where _id = 1; 修改: update person set name =

mycncart操作使用教程 - 品牌展示模组

许多朋友对于[品牌展示]模组中的相关图片是从哪里设置的不知道. 如要修改[品牌展示模组]中的图片,路径为:[系统设置]->[规划设计]->[横幅广告],默认mycncart系统中有[品牌制造商],可以编辑它以替换图片.

使用NodeJS+AngularJS+MongoDB实现一个Web数据扒取-分析-展示的系统

说到Web爬虫,Python占了半壁江山.但是Web页面不是Python的强项了,如果需要扒取Web数据,再Mashup出来一个自己的系统,全端JS是个不错的解决方案(其实不用Python扒数据是因为我只能熟练掌握Python的HelloWorld编写). 那么开始做了. 00.要做一只麻雀 想做一个五脏俱全的系统先设计一下结构吧.思路是要扒数据先要配置怎么扒,然后去把扒来的数据处理成想要的东西,再然后存起来慢慢蹂躏.来张UML活动图压压惊.数据CRUD和如何展现不在设计图中,这部分打算做一个类

利用Matlab实现PCA demo展示

input_data = rand(1000,3);%随机生成1000个样本,每个样本有x,y,z三个属性 figure(1); %控制画图的窗口为1 hold off; %使当前轴和图形不再具备被刷新的性质,关闭在此基础上再画图 plot3(input_data(:,1), input_data(:,2), input_data(:,3), 'ro'); %% Function PCA, input_data, out_dim % Use this to switch methods use_