IGV.js 的完全本地化运行探索

这篇具有很好参考价值的文章主要介绍了IGV.js 的完全本地化运行探索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题及解决方法

  1. IGV.js 完全本地化是为了合规,不使用外网的情况下查看基因组。
  2. 不联网需要下载 genomes.json 文件及其中的内容之外,还需要修改 igv.js本身,防止5s超时后才显示网页内容。修改的关键词是: genomes.json,改为本地的。
  3. 这时搜索功能障碍,可以搜索定位 chr1:12345 这样的位点,不能搜索EGFR 这样的基因字符串。还是要修改js文件,具体方法见下文。

版本号: igv.version() #'2.15.10'


怎么本地支持搜索?

1. 需要修改的地方

(1) 线索1a:该函数的返回值是什么类型的?

function searchWebService(browser, locus, searchConfig){ //57722
	//
	const result = await igvxhr.loadString(path, options);
	//
}

(2) 线索1b: 先看参数类型

igvxhr.loadString(path, options); // line 57728
debug wjl: 1 EGFR https://igv.org/genomes/locus.php?genome=hg38&name=EGFR {timeout: 5000}
参数
	cocus: EGFR
	path: https://igv.org/genomes/locus.php?genome=hg38&name=EGFR
	options: {timeout: 5000}

(3) 线索1c: 返回值
不确定,只能根据代码推测

	return this._loadStringFromUrl(path, options)

	async _loadStringFromUrl(url, options) {

		options = options || {};
		options.responseType = "arraybuffer";
		const data = await this.load(url, options);
		return arrayBufferToString(data)
	}

	this.load(url, options); 中引用的是
	return this._loadURL(url, options) //18672
	xhr.send(sendData); //18825

(4) 线索1d: ajax 的请求链接

url: 'https://igv.org/genomes/locus.php?genome=$GENOME$&name=$FEATURE$', //57547
https://igv.org/genomes/locus.php?genome=hg38&name=EGFR 

2. 从下文代码找线索,需要什么数据?

(1) 线索2a: 下一行怎么使用该数据?

	const locusObject = processSearchResult(browser, result, searchConfig);
	找到最相关的 const locusObject = {chr, start, end}; //57796
	const result = //手动设置,确认格式 //57731

这里很关键

(2) 线索2b: 该函数调用 parseSearchResults

function processSearchResult(browser, result, searchConfig) { //57750
if ('plain' === searchConfig.type) {
	console.log("debug wjl: 4", result, searchConfig ) // ===>>>>debug 11223344
	results = parseSearchResults(browser, result); 
}

(3) 线索2c: 这是最终格式

     * Parse the igv line-oriented (non json) search results.
     * Example
     *    EGFR    chr7:55,086,724-55,275,031    refseq
    function parseSearchResults(browser, data) { //57827
	}

(4) 这个格式怎么修改? 就是 refseq的第13,3,5和第6列。

$ zcat ref/hg38/ncbiRefSeq.txt.gz | awk '{print $13"\t"$3":"$5"-"$6"\trefseq"}' | grep "EGFR" | head -n1
EGFR    chr7:55019016-55156939  refseq

(5) 回退到上一步

57843行 line="EGFR\tchr7:55019016-55156939\trefseq"
57731 const result = "EGFR\tchr7:55019016-55156939\trefseq"
57547 url: 'https://igv.org/genomes/locus.php?genome=$GENOME$&name=$FEATURE$',

(6) 设置一个支持cors的、返回字符串的服务器,返回值是

zcat /home/wangjl/soft/scIGV/ref/hg38/ncbiRefSeq.txt.gz | awk '{print $13"\t"$3":"$5"-"$6"\trefseq"}' | grep "CCND1\t" | head -n 1

其他关键技术点:

  • flask 在后台执行 linux 命令
  • flask返回支持cors的字符串
  • 支持cors和range的bam大文件服务器

幸运的是,这些之前都解决过。文章来源地址https://www.toymoban.com/news/detail-646481.html

到了这里,关于IGV.js 的完全本地化运行探索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详解dedecms织梦远程图片本地化https链接图片无法本地化怎么解决

    最近有朋友遇到发布文章时候文章里面带https的站外图片无法本地化,以下是解决办法: 找到  dede//inc/inc_archives_functions.php文件里面GetCurContent($body)这个函数,里面 这一段改为: 第二步: 这一段改为: 搞定,这样发文章就可以把https的远程图片也本地化了 以上就是本文的全

    2024年02月02日
    浏览(38)
  • Remix本地化,加载本地合约文件,本地链接Remix

    智能合约IDE,在线的比较卡,而且切换网络面临文件丢失的风险,选择本地搭建Solidity本地编辑环境,Remix-IDE + Remixd组合,加载本地合约代码。这里用到两个工具: Remix IDE(本地IDE)+ Remixd (链接) Remix IDE 项目源码:https://github.com/ethereum/remix-project 介绍: Remix IDE是一个本地部署运

    2024年02月13日
    浏览(58)
  • Excalidraw本地化部署

    1 - Excalidraw介绍 Excalidraw是一个开源、小巧易用的手写风格的框图画板软件。 ​excalidraw官网地址:https://excalidraw.com/​ 2 - Excalidraw本地化安装(git方式) 2-1安装部署 在terminal中,输入: 安装完成后,在terminal中,进入项目文件 2-2 安装依赖环境 - nodeJS NodeJS下载地址: nodejs下载

    2024年02月14日
    浏览(47)
  • 本地化GPT:LangChain + ChatGLM == 知识本地库

    OpenAI发布的ChatGPT Plugin刚刚杀死了一个创业公司LangChain(刚获得1000万美金种子轮融资) 由于语言模型的输出是通过自回归+采样[可选]完成的,在高精度场景下,即使是超大语言模型,发生错误概率也是指数级的。同时,采样也很容易引入错误。比如地址中的数字门牌号,模型

    2024年02月11日
    浏览(46)
  • hadoop本地化windows部署

    需求背景是java代码提交服务器测试周期流程太慢,需要一种能直接在windows本地部署的相关组件。分析项目现有大数据技术栈,包括hadoop、hive和spark(sparksql),存储和计算都依赖windows系统。期中hive保存在本地的hadoop上,spark提交在hadoop的yarn上。 · hadoop on windows · hive on windows

    2024年02月16日
    浏览(74)
  • 【WPF】 本地化的最佳做法

      应用程序本地化有很多种方式,选择合适的才是最好的。这里只讨论一种方式, 动态资源(DynamicResource) 这种方式可是在不重启应用程序的情况下进行资源的切换,不论是语言切换,还是更上层的主题切换。想要运行时切换不同的资源就必须使用 动态资源(DynamicResou

    2024年02月12日
    浏览(42)
  • WPF 本地化的最佳做法

      应用程序本地化有很多种方式,选择合适的才是最好的。这里只讨论一种方式, 动态资源(DynamicResource) 这种方式可是在不重启应用程序的情况下进行资源的切换,不论是语言切换,还是更上层的主题切换。想要运行时切换不同的资源就必须使用 动态资源(DynamicResou

    2024年02月13日
    浏览(37)
  • 本地化部署stable diffusion

    本文是根据https://zhuanlan.zhihu.com/p/606825889 和 https://blog.csdn.net/cycyc123/article/details/129165844两个教程进行的部署测试,终端是windows 前期需要安装python与git环境,这里不赘叙了,首先是几个下载包,可以提前下载: stable diffusion的web界面环境 https://pan.xunlei.com/s/VNQ4LqoKBidPdqSj2xMioVhs

    2023年04月09日
    浏览(68)
  • Unity官方本地化插件localization

    官方文档地址:https://docs.unity3d.com/Packages/com.unity.localization@1.0/manual/QuickStartGuideWithVariants.html PackageManager搜索Localization完成对应插件的安装   PlayerSetting-Localization 创建本地化相关配置   创建之后点击Locale Generator可以选择需要支持的语言   TableCollection是一组本地化数据的集合

    2024年02月08日
    浏览(82)
  • UE4+Locailzation本地化

    更多内容请查看我的个人网站 nocodeworld 的小地盘 环境 UE4版本 4.27.2 文化名称(IETF语言标记)由三个连字符分隔的部分组成 两个字母的ISO 639-1语言代码(例如“zh”)。 可选的四字母ISO 15924字符集代码(例如“Hans”)。 可选的双字母ISO 3166-1国家和地区代码(例如“CN”)。

    2024年02月21日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包