1 Star 0 Fork 0

try_quiet/igv_web_cn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
run.py 2.17 KB
一键复制 编辑 原始数据 按行查看 历史
user-tq 提交于 2022-12-03 18:43 . 修改
from string import Template
import argparse
import subprocess
import os
from twisted.web.server import Site
from twisted.web.static import File
from twisted.internet import reactor, endpoints
parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument("--path", type=str, required=True, nargs='+', help='文件路径')
parser.add_argument("--name", type=str, required=True, nargs='+', help='文件名')
args = parser.parse_args()
script_path = os.path.abspath(os.path.dirname(__file__))
all_supl_type = {'bam': 'alignment','vcf':'variant'}
if len(args.name) != len(args.path):
print('输入长度不匹配')
exit()
filetype = [path.split('.')[-1] for path in args.path]
if not set(filetype).issubset(set(all_supl_type.keys())):
print('文件类型需要为' + ' '.join(list(all_supl_type.keys())))
exit()
def link_path(raw_path,name):
last_fname = raw_path.split('/')[-1]
subprocess.run(['mkdir',script_path+'/link_file/'+name])
subprocess.run(['ln','-s',os.path.abspath(raw_path), script_path+'/link_file/'+name+'/'+last_fname ])
return '/link_file/'+name+'/'+last_fname
list_tracks = []
info = dict(zip(args.path, zip(args.name, filetype)))
for k, v in info.items():
if v[1] == 'bam':
tmp_dict = {
'type': all_supl_type[v[1]],
'format': v[1],
'name': v[0],
'url': link_path(k,v[0]),
'indexURL': link_path(k + ".bai",v[0])
}
else:
tmp_dict = {
'type': all_supl_type[v[1]],
'format': v[1],
'name': v[0],
'url': link_path(k,v[0])
}
list_tracks.append(tmp_dict)
print(list_tracks)
# "link_file/CBP90012_DNA_bqsr_chr20_57429609_57429629.bam"
with open(script_path+'/igvwebConfig_tpl.js', 'r') as f:
tpl_js = Template(f.read())
out_js=tpl_js.substitute(track_config=list_tracks)
with open(script_path+'/igvwebConfig.js', 'w') as f:
f.write(out_js)
resource = File(script_path)
factory = Site(resource)
endpoint = endpoints.TCP4ServerEndpoint(reactor, 9999)
endpoint.listen(factory)
reactor.run()
#demo来自
#https://docs.twisted.org/en/stable/web/howto/web-in-60/static-content.html
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/try-quiet/igv_web_cn.git
git@gitee.com:try-quiet/igv_web_cn.git
try-quiet
igv_web_cn
igv_web_cn
master

搜索帮助