在笔记本中嵌入基因组可视化igv.js的jupyter扩展
igv的Python项目详细描述
注意-此软件包已弃用,将不会更新。该软件包现在作为igv jupyter分发。
IGV Jupyter扩展
igv是Jupyter Notebook的扩展,它 包装igv.js。带着这个 可以在单元格中呈现igv.js并从中调用其api的扩展 笔记本。扩展公开了一个模仿igv.js的python api。 浏览器创建和控制API。词典用于浏览和跟踪 配置对象。轨道数据可以从本地或远程加载 或者直接作为对象列表提供。
安装
要求:
- python=3.6.4
- jupyter=4.2.0
pip install igv # To install to configuration in your home directory jupyter serverextension enable --py igv jupyter nbextension install --py igv jupyter nbextension enable --py igv # If using a virtual environment or conda (don't forget to activate jupyter serverextension enable --py igv --sys-prefix jupyter nbextension install --py igv --sys-prefix jupyter nbextension enable --py igv --sys-prefix
用法
示例
github存储库中提供了示例笔记本。要下载而不克隆存储库,请使用 这个link。笔记本电脑在 “示例”目录。
初始化
将igv实例插入单元格:
(1)创建一个igv.browser对象,(2)在实例上调用showbrowser。
示例:
importigvb=igv.Browser({"genome":"hg19"})
browser初始值设定项接受一个配置对象,该对象被转换为json并传递给igv.js createbrowser函数。配置对象在 igv.js documentation。
在单元格调用show()中实例化客户端igv实例
b.show()
曲目
要加载轨迹,请将轨迹配置对象传递到load_track()。轨道配置 对象在igv.js documentation中描述。 配置对象将转换为json并传递给igv.js浏览器 实例。
跟踪的数据可以通过url加载,也可以作为json对象数组直接传递。
远程URL
b.load_track({"name":"Segmented CN","url":"https://data.broadinstitute.org/igvdata/test/igv-web/segmented_data_080520.seg.gz","format":"seg","indexed":False})
本地文件
通过在路径前面加上“文件”,可以使用Jupyter Web服务器从本地文件加载曲目。路径 相对于笔记本文件。
b.load_track({"name":"Local VCF","url":"files/data/example.vcf","format":"vcf","type":"variant","indexed":False})
嵌入式功能
功能也可以直接传递到曲目。
b.load_track({"name":"Copy number","type":"seg","displayMode":"EXPANDED","height":100,"isLog":True,"features":[{"chr":"chr20","start":1233820,"end":1235000,"value":0.8239,"sample":"TCGA-OR-A5J2-01"},{"chr":"chr20","start":1234500,"end":1235180,"value":-0.8391,"sample":"TCGA-OR-A5J3-01"}]})
导航
放大倍数为2
b.zoom_in()
缩小2倍
b.zoom_out()
跳到特定轨迹
b.search('chr1:3000-4000')
跳到一个特定的基因。这使用了igv搜索web服务,该服务目前支持有限数量的基因组:hg38、hg19和mm10。 要配置自定义搜索服务,请参见igv.js documentation
b.search('myc')
SVG输出
将当前igv视图保存为svg图像需要两次调用。
b.get_svg()b.display_svg()
事件
注意:这是一个实验特性。
deflocuschange(data):b.locus=datab.on("locuschange",locuschange)b.zoom_in()returnb.locus
开发
从源代码生成和安装:
python setup.py build
pip install -e .
jupyter nbextension install --py igv
jupyter nbextension enable --py igv
创建conda环境
conda create -n testpython=3.7.1 conda activate test conda install pip conda install jupyter