BiMAJ

biomaj的Python项目详细描述


biomaj3
=


本项目是对biomaj的完整重写,文档可从以下网址获得:http://biomaj.genouest.org.

biomaj(biologie mise a jour)是一个专门用于数据同步和处理的工作流引擎。该软件自动化了更新周期和本地镜像数据库存储库的监督。

任何脚本都可以
应用于下载的数据。当所有的处理都成功应用时,bank
被放在一个专用发布目录的"production"中。
使用cron任务,可以定期执行更新任务,只有在检测到更改时,才会再次下载数据。


wiki页面中提供了更多文档。



Getting Started
===


编辑global.properties文件以匹配您的设置。最小配置是数据库连接和目录。


biomaj-cli.py-h


biomaj-cli.py--config global.properties--status


biomaj-cli.py--config global.properties--bank alu--update

migration
==


1.x,一个脚本位于:
https://github.com/genouest/biomj-migrate。脚本将旧数据库导入到新数据库,并将配置文件更新为修改后的格式。数据目录是相同的。

3.0到3.1的迁移:


BiomaJ 3.1提供了可选的微服务体系结构,允许在一个或多个主机上分离和分发/缩放BiomaJ组件。此实现是可选的,但建议用于服务器安装。单片安装可保留用于本地计算机安装。
要升级现有的3.0安装,由于biomj代码已拆分为多个组件,因此需要安装/更新biomj python包以及biomj cli和biomj daemon包。然后,必须手动升级数据库(请参阅文档中的升级)。

要执行数据库迁移:


python biomaj_migrate_database.py


>应用程序功能
====

*同步:
*多个远程协议(ftp、sftp、http,本地拷贝等)
*数据传输完整性检查
*使用增量方法发布版本控制
*多线程
*数据提取(gzip、tar、bzip)
*数据树目录规范化



*pre&;后处理:
*高级工作流描述(D.A.G)
*各种生物信息学软件(BLAST、SRS、FastACMD、ReadSeq、等)
*轻松集成用于银行后处理自动化的个人脚本



*监管:
*可选的管理Web界面(BiomaJ Watcher)
*cli管理
*更新周期监管的邮件警报
*Prometheus和InfloxDB可选集成
*可选的进程控制监督



*可扩展性:
*单片(本地安装)或微服务架构(远程访问BiomaJ服务器)
*微服务安装允许每个进程可扩展性和监督(负责下载、执行等)



*远程访问:
*提供身份验证或匿名数据访问的可选ftp服务器


依赖项
==


包:
*debian:libcurl dev,gcc
*centos:libcurl devel,openldap devel,gcc

linux工具:tar、unzip、gunzip、bunzip


数据库:
*mongodb(本地或远程)


索引(可选):
*elasticsearch(全局属性,使用_elastic=1)


elastic search索引向biomaj添加高级搜索功能,以查找具有特定格式或类型的文件的银行。
elasticsearch的配置不是在biomaj文档的范围内。
对于一个基本安装,一个elasticsearch实例就足够了(数据量小),在这种情况下,应该相应地修改elasticsearch配置文件:


node.name:"biomaj"(或任何其他名称)
index.number\u of\u shard:1
索引副本的数量:0

进入biomaj源目录:

python setup.py install


from packages:




您应该考虑使用python虚拟环境(virtualenv)安装biomaj。

复制global.properties并更新它以匹配本地安装。


工具/进程包含示例进程文件(python和shell)。



==



docker pull mongo
docker run--name biomaj mongodb-d mongo
biomaj mongodb:biomaj mongodb osallou/biomaj docker--help



xx/global.properties:/etc/biomaj/global.properties)


容器中没有默认的银行属性文件或进程。


文档
==




status
==


[![构建状态](https://travis-ci.org/genouest/biomaj.svg?branch=master)"(https://travis ci.org/genouest/biomaj)

[![文档状态](https://readthedocs.org/projects/biomaj/badge/?版本=最新](https://readthedocs.org/projects/biomaj/?徽章=最新)

[![代码运行状况](https://landscape.io/github/genouest/biomaj/master/landscape.svg?style=flat)(https://landscape.io/github/genouest/biomaj/master)


测试
=



执行单元测试



执行单元测试,但禁用需要网络访问的单元测试




监测
==


infloxdb(可选)可用于监测biomaj。提供以下系列:

*biomj.banks.quantity(银行数量)
*biomj.production.size.total(所有生产目录的大小)
*biomj.workflow.duration(工作流持续时间)
*biomj.production.size.latest(最新更新的大小)
*biomaj.bank.update.downloaded_文件(下载文件数)
*biomaj.bank.update.new(跟踪更新)

*警告*必须创建infloxdb数据库,Biomaj不创建数据库(请参见https://docs.infloxdata.com/infloxdb/v1.6/query懔language/database懔management/懔create database)



许可证
==



对于sftp libcurl必须使用sftp支持编译

才能删除elasticsearch索引:



credits
=


特别感谢巴斯德研究所的tuco的密集测试和新想法。
BiomaJ团队完成的工作。


BiomaJ是在IRISA研究所开发的。



3.1.10:
在重用以前版本的文件时允许使用硬链接
3.1.9:
修复远程文件递归
3.1.8:
在保存的文件包含子目录
3.1.7:
使用python3修复utf/ascii编码问题
如果解压缩失败,请将备份所有压缩文件以避免重做加载
3.1.6:
如果biomaj无法连接到infloxdb,则修复100个捕获错误和日志错误
将历史添加到更新/删除操作
如果在银行删除期间发生文件删除错误,则添加日志
删除时存在检查锁文件
更新protobuf以使用biomj。下载3.0.18

>3.1.5:
fix 97错误的脱机目录检查

>3.1.4:
fix 88当在挂起的会话中找到时,使用--remove pending
在银行信息请求中添加格式
为某些生产添加检查显示前字段
添加irods下载支持

3.1.3:
删除安装后步骤以进行自动升级,Wheel包不支持

3.1.2:
fix 86从自述文件中删除特殊字符。md
feature 85 schemaversion自动添加新属性


3.1.1:
fix 80 check process exists with`--from task` and`--process`
manage old banks with no状态

3.1.0:
仍适用于本地单片安装
修复未在配置中定义时的某些配置参数加载
修复http解析参数加载
修复下载或复制到上一个生产版本中的文件(如果可用),而不是再次下载文件
管理用户迁移对于微服务
feature 74 add infloxdb statistics
feature 65在银行的根目录添加一个发布信息文件,其他服务可以使用该文件来了解可用的最新版本
feature 25 rsync协议的实验支持
添加下载速率限制微服务
将电子邮件大小限制为2 MB,日志文件可能会被截断

3.0.20:
fix 55:添加了对https和directhttps的支持
添加了使用remote.list参数定义要从本地文件下载的文件的可能性
修复可见性修改(错误删除了bank properties字段)
fix 65添加发布文件更新后在bank dir中添加md5或sha256校验和检查文件是否已下载并可用


3.0.19:
fix missing readme.md in package
fix 53避免挂起数据库中的重复


3.0.18:
在需要时添加迁移方法以更新架构
manage支持文本格式(一月,二月,…)和int格式(01,02,…)
新的可选银行属性http.parse.file.date.format,以按照python date regexp格式(http://www.tutorialspoint.com/python/time-strptime.htm)在http协议中提取日期
示例:%d-%b-%y%h:%m

3.0.17:
修复47:将directhttp保存为错误协议
fix 45:当版本的值中有点时,挂起的版本出错
typo/pylint fixes

3.0.16:
不使用配置值,信任数据库值39
fix 42:添加可选版本。分隔符命名银行目录bank name_u release(默认为下划线)

3.0.15:
fix 37:从数据库远程本地文件历史记录并将其放入缓存。dir
feature 38:添加可选的keep.old.sessions参数以保留数据库中的所有会话,即使是已删除的版本
feature 28:添加可选的release.format参数以指定版本的日期格式修复34:清除旧会话时从挂起删除释放
删除某些操作上的日志
添加--状态ko选项以列出处于错误状态的银行
修复36管理按错误或未完成的工作流


3.0.13:
修复27:下载期间的线程锁定问题
银行属性中的新可选属性:timeout.download
http protocol fix(deepcopy error)

3.0.12:
fix index deletion bank删除
修复多线程创建目录时的锁定错误,
在脱机目录中预创建directroy结构
修复26:在银行中文件过多时保存错误


3.0.11:
使用pre和rm进程在会话管理中修复
修复23:检查传递给
--stop after/--start after/--from task
fix 24:elasticsearch中不推荐使用的delete_by_查询方法
在基本目录上添加一些控件



3.0.10:
将dir更改为process.dir以在子目录中查找进程
如果在offline dir中找到所有文件,请在没有下载
删除银行依赖关系(计算银行)的额外日志文件
在未更新子银行时修复计算银行更新
在远程恢复到以前版本时修复15
功能16:获得不下载文件的可能性(对于
例子)。在bank properties中设置protocol="none"。
fix on--检查某些协议
fix 21 release.file不支持directhttp协议
feature 22:添加localrelease和remoterelease bank属性,以将
remote release用作其他properties
=>;remote.dir=xx/yy/%(remote release)s/zz
feature 17,20:即使释放是相同的,也检测远程修改
新参数release.control(true,false)强制检查,即使远程版本(文件控制或日期)相同。
修复"多"协议
修复远程文件以^字符开头时的"另存为"regexp。


3.0.9:
修复线程同步问题:
在下载某些下载时当主线程继续工作流时,线程可能是活动的
修复程序防止在下载期间使用ctrl-c
工作流修复程序:
如果工作流的子任务失败,主任务失败

3.0.8:
如果ElasticSearch未启动,则不测试索引
次要修复
添加HTTP代理支持
Pylint修复
失败时重试解压缩一次(13)


3.0.7:
重新压缩代码,pep8修复了对var名称和ordereddict支持python<;的各种修复2.7
合并配置文件,以便能够引用global.properties bank中的变量
格式为%(xx)s的属性文件
使用configparser而不是safeconfigparser,后者将被弃用

3.0.6:
添加选项--删除挂起以删除所有挂起的会话和目录
添加process env variables logdir和logfile
修复旧版本pycurl的unicode问题。


3.0.5:
修复更新工作流期间的删除工作流,removedrelease是当前的版本。
修复biomaj cli的shebang,python 2/3 compat问题

3.0.4:
更新代码使其与python 3兼容
使用ldap3库(纯python和p2,3兼容)而不是python ldap
无需保持完整的目录结构就可以为ftp和http保存下载的文件:
远程。文件可以包括无目录结构保存文件的组,
或仅部分目录,例如:
远程。文件=genomes/fasta/*\.gz=>;将文件保存在脱机目录下,保持远程结构脱机dir/genomes/fasta/
remote.files=genomes/fasta/(*.gz)=>;将文件保存在脱机目录下offlinedir/
remote.files=genomes/(fasta)/(*.gz)=>;将文件保存到脱机目录offlinedir/fasta



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将多个线程中的函数放入单个队列   数组在Java中,如何在不改变整数顺序的情况下找到整数组的顺序?   java控制器属于表示层?   java Apache Ivy和本地Maven repo如何处理使用Maven 3构建的快照   Java可与泛型类型进行比较   java这个表达式在泛型中是什么意思   JavaEclipse和TeamCity插件   java检测构造函数中的final是否为空   java如何在StanfordCoreNLP管道中同时使用词汇化和依赖性解析器?   java在AntUnit控制台日志中显示完整异常堆栈跟踪   lambda如何与Java 8供应商建立连锁关系   如何让GRPC的重试机制在Kubernetes集群中使用grpcjava工作?   如何使用openjdk:7 Docker映像和Gradle包装器避免“EC参数错误”?   java将集合映射扩展为一维映射新的“无法推断函数接口类型”