2021年9月6日,Galaxy Project 正式发布了 Release 21.09 的版本;随后11月初,发布该版本的 announcement 文档。这里总结一下该版本一些主要的更新内容,为关注和从事 Galaxy 相关工作的中文用户提供参考。
重点更新
工具面板
在公共 Galaxy 实例中有成千上万的可用工具,通常很难在工具面板中组织和找到工具。为了解决这个问题,我们引入了工具面板视图。管理员可以配置任意数量的工具面板视图。这些视图可以为使用 EDAM 术语注释的 Tools 自动构建,或者可以通过引用现有的 Sections(节点),Tools(工具)或者 Workflows(流程)手动构建。然后用户可以选择最适合他们当前活动的工具面板视图。默认的工具面板视图对应使用传统配置的部分(The default Tool Panel View corresponds uses the sections as they are traditionally configured.)。还可以使用服务器的域名配置默认的工具面板视图,这样就可以根据用户与服务器交互时使用的 URL 创建 Galaxy 的 “flavors”,而在幕后,这些 flavors 都是由相同的 Galaxy 流程提供的(It is also possible to configure the default Tool Panel View using the domain name of the server, so “flavors” of Galaxy can be created based on the URL that users use to interact with a server, while behind the scenes these flavors are served by the same Galaxy process.)。
Release 21.09 增加了一个“工具面板视图(Tool Panel Views)”!这些是同一个 toolbox 工具箱中的不同视图,可以有助于更容易地找到所需的工具。在未来,Galaxy 有计划创建用户自定义的工具集 (user-customisable toolboxes),但在此之前,他们要探索新的基于 EDAM 本体论的 toolboxes 工具集,这是一个围绕科学领域或进程,或者基于它们所做的科学进程(scientific process)进行组织的工具集。例如,”Filtering” 这样的类别可能有 “select lines” 或 “filter bam by quality” 这样的工具,它们都执行相同的过滤过程,尽管它们要处理的文件类型和格式都是不同的。 不幸的是,并不是所有的 EDAM 工具都有完整的注释,虽然我们也从 bio.tools 中提取术语(pull terms from bio.tools),但是这仍然没有得到我们的全部覆盖,许多工具仍然会出现在 “Uncategorized” 的 section 节点中。随着用户和工具开发人员使用合适的术语注释这些可以帮助每个人找到它们的工具,希望这将得到改进。
更多详细信息可以在 Pull Request 12327,Pull Request 12365 和 Pull Request 12291 中找到。
增强的远程数据和分布式计算资源使用
Release 21.09 做了许多修正和增强,以改进 Galaxy 如何使用配置的源文件插件(file source plugins)导入和写入远程数据的位置。除了可以写入远程位置的 History Export 功能之外,我们还添加了一个导出数据集工具(Export datasets),用于将个人数据集和数据集集合导出到配置的远程位置。该工具将自动维护数据集和数据集集合的名称和结构。我们增加了导入整个远程数据文件夹的可能性,使数据选择对话框更加直观。我们还对扩展的元数据收集策略和 Pulsar 进行了大量的改进和修复,这样更多的工具可以在 Pulsar 中运行并将数据写回存储器,而不需要首先通过 Galaxy。(Pull Request 12785, Pull Request 11613, Pull Request 12250, Pull Request 12372, Pull Request 12760, Pull Request 12267, Pull Request 11949, Pull Request 12310, Pull Request 12388, Pull Request 12641)
对 FastAPI 的迁移和 API 路由的扩展文档
Release 21.09 更新和迁移了许多到 FastAPI 的 API 路由,并扩展了这些路由的文档和验证。(Pull Request 11315, Pull Request 11827, Pull Request 11983, Pull Request 12131, Pull Request 12337, Pull Request 12195, Pull Request 12370, Pull Request 12391, Pull Request 12417, Pull Request 12505)
迁移到 SQLAlchemy 1.4和声明性映射
Galaxy 现在使用 SQLAlchemy 的版本是 1.4,这是与数据库进行异步交互的先决条件。我们还将数据库模型的定义方式现代化为更常用的声明性映射方法,这种方法更简洁,文档更好。(Pull Request 12042, Pull Request 12045, Pull Request 12064, Pull Request 12438, Pull Request 12060, Pull Request 12424, Pull Request 12461)
现代化的工具表单
Galaxy 的 Tool Form 工具表单界面已经完成了从 Backbone 到 Vue 的迁移。这改进了参数验证的反应性,并使 Tool 参数能够迁移到 Vue,这也允许我们添加更多类型的 Tool 参数。我们进一步将 Workflow Editor,Workflow Run Form 和 Show Dataset Parameter 页面的 Tool Form variant 迁移到 Vue。(Pull Request 12300, Pull Request 12031, Pull Request 12227, Pull Request 12296, Pull Request 12323, Pull Request 12329, Pull Request 12374, Pull Request 12432, Pull Request 12702, Pull Request 12261)
新用户欢迎页面
我们已经添加了一个页面,新用户在创建一个新的 Galaxy 帐户后将直接访问这个页面。(Pull Request 11085, Pull Request 12639)
数据集合 (Beta History Updates)
您是否曾经使用错误的 dbkey 或数据类型创建过数据集合(create a collection with the wrong dbkey or datatype)?在 Beta History 中,您现在可以更改集合的数据类型和 dbkeys!这将为每个处理大型数据集的人节省大量时间 (Pull Request 11799)。 另外,你的数据集经历处理失败吗(did a collection ever fail for you)?你想知道为什么?现在您可以通过查看集合的详细信息按钮找到 (Pull Request 12261) !
导入数据
从远程文件视图中选择数据变得更容易了!现在,您可以选择文件夹和文件,并一次性递归导入这些文件夹中的所有数据。以前你只能选择一个文件夹中的文件,所以,在 Galaxy 这样一个关键性新功能的可用性上,这是一个巨大的改进 (Pull Request 12310)。但是伴随着巨大的力量而来的是巨大的责任,小心不要输入整个 NCBI!
Reports
Report 报告组件可以通过智能方式自动排列,但由于报表组件的浮动存在一些问题,这些组件现在将是全宽的,直到我们能够找到一种好的方法来提供类似的功能,来达到允许您控制 Report 报告的布局 (Pull Request 12085)。
News Webhook
你可能正在阅读最近增加的 “News” 功能!这是这个组件的第一次迭代,希望将来我们能扩展它,给你带来所有的新闻和 Galaxy 通知。当前迭代的想法是,每当您的服务器管理员将 Galaxy 升级到新版本时,每个使用服务器的人都会收到一个小的、非侵入式的通知,附带这些发行说明!在那里你可以找到 Galaxy 所有的新功能和他们使用的快速视频 (quick videos on their use)。(Pull Request 12396)
弃用公告
Galaxy 互动环境(GIEs)在用户界面中不再可见,并将在下一个 Galaxy 发行版(22.01)中完全删除。所有的 GIEs 都已经移植到了交互式工具中,这使得开发、运行和配置变得更加容易。
即将发出的弃用公告
我们已经将下面的弃用推迟到下一个 Galaxy 版本,以便为我们的用户和管理员提供更流畅的体验。
在 Galaxy 22.01 版中放弃对 Python 3.6 的支持
这个 Galaxy 版本 (21.09) 将是最后一个支持 Python 3.6 或更新版本的版本。如果可能的话,我们鼓励更新到更新的 Python。
废弃 uwsgi 和 paste
这个 Galaxy 发行版 (21.09) 将是最后一个支持 WSGI 标准的发行版,并带有 uwsgi 和 paste。从22.01版本开始,Galaxy 将成为 ASGI 应用程序。在即将到来的开发周期中,我们将更新文档和剧本,以实现平稳过渡。
配置变更
增加的配置
以下配置选项是新的。
config/galaxy.yml.sample
- biotools_content_directory
- biotools_service_cache_data_dir
- biotools_service_cache_lock_dir
- biotools_service_cache_type
- biotools_use_api
- container_resolvers
- default_panel_view
- edam_panel_views
- edam_toolbox_ontology_path
- enable_account_interface
- job_handler_monitor_sleep
- job_runner_monitor_sleep
- mailing_join_body
- mailing_join_subject
- mailing_lists_url
- panel_views
- panel_views_dir
- sentry_event_level
变更的配置
下列配置选项已更改。
config/error_report.yml.sample
已经从:
{'type': 'email', 'verbose': True, 'user_submission': True}
{'type': 'sentry', 'user_submission': False}
变更为:
{'type': 'email', 'verbose': True, 'user_submission': True}
config/file_sources_conf.yml.sample
已经从:
{'type': 'dropbox', 'id': 'dropbox1', 'label': 'Dropbox files (configure access in user preferences)', 'doc': 'Your Dropbox files - configure an access token via the user preferences', 'accessToken': "${user.preferences['dropbox|access_token']}"}
{'type': 'webdav', 'id': 'owncloud1', 'label': 'OwnCloud', 'doc': 'External OwnCloud files (configure access in user preferences)', 'url': "${user.preferences['owncloud|url']}", 'root': "${user.preferences['owncloud|root']}", 'login': "${user.preferences['owncloud|username']}", 'password': "${user.preferences['owncloud|password']}"}
{'type': 'posix', 'id': 'posix1', 'label': 'Posix', 'doc': 'Files from local path', 'root': '/some/path/'}
{'type': 's3fs', 'label': 'My MinIO storage', 'endpoint_url': 'https://minio.usegalaxy.eu', 'id': 'galaxy-minio-storage', 'doc': 'Galaxy MinIO S3 storage', 'anon': False, 'secret': 'UHAJ6asd6asdhasd', 'key': 'MCJU76agdt98GGFAROIP7'}
{'type': 's3fs', 'label': 'CMIP6 GCMs downscaled using WRF', 'id': 'wrf-cmip6-noversioning', 'doc': 'High-resolution historical and future climate simulations from 1980-2100', 'bucket': 'wrf-cmip6-noversioning', 'anon': True}
变更为:
{'type': 'dropbox', 'id': 'dropbox1', 'label': 'Dropbox files (configure access in user preferences)', 'doc': 'Your Dropbox files - configure an access token via the user preferences', 'accessToken': "${user.preferences['dropbox|access_token']}"}
{'type': 'webdav', 'id': 'owncloud1', 'label': 'OwnCloud', 'doc': 'External OwnCloud files (configure access in user preferences)', 'url': "${user.preferences['owncloud|url']}", 'root': "${user.preferences['owncloud|root']}", 'login': "${user.preferences['owncloud|username']}", 'password': "${user.preferences['owncloud|password']}"}
{'type': 'posix', 'root': '/data/5/galaxy_import/galaxy_user_data/covid-19/data/sequences/', 'id': 'covid19-raw-sequences', 'label': 'COVID-19 FASTQ', 'doc': 'COVID-19 RAW sequences in FASTQ format'}
{'type': 'posix', 'root': '/data/db/databases/pdb/pdb/', 'id': 'pdb-gzip', 'doc': 'Protein Data Bank (PDB)', 'label': 'PDB'}
{'type': 'ftp', 'id': 'ebi-ftp', 'label': 'EBI FTP server', 'doc': 'European Bioinformatic Institute FTP server', 'host': 'ftp.ebi.ac.uk', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21}
{'type': 'ftp', 'id': 'ncbi-ftp', 'label': 'NCBI FTP server', 'doc': 'NCBI FTP server', 'host': 'ftp.ncbi.nlm.nih.gov', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21}
{'type': 'ftp', 'id': 'ensembl-ftp', 'label': 'ENSEMBL FTP server', 'doc': 'ENSEMBL FTP server', 'host': 'ftp.ensemblgenomes.org/vol1/pub/', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21}
{'type': 'ssh', 'id': 'writeable-ssh-dir', 'requires_roles': 'writeable-galaxy-role', 'writable': True, 'label': 'Push your files to me', 'doc': 'This is an example of a writeable SSH dir', 'host': 'coolhost', 'user': 'user', 'passwd': 'passwd', 'timeout': 10, 'path': '/home/cooluser/', 'config_path': '', 'port': 2222}
{'type': 's3fs', 'label': 'My MinIO storage', 'endpoint_url': 'https://minio.usegalaxy.eu', 'id': 'galaxy-minio-storage', 'doc': 'Galaxy MinIO S3 storage', 'anon': False, 'secret': 'UHAJ6asd6asdhasd', 'key': 'MCJU76agdt98GGFAROIP7'}
{'type': 's3fs', 'label': 'Genome Ark', 'id': 'genomeark', 'doc': 'Access to Genome Ark open data on AWS.', 'bucket': 'genomeark', 'anon': True}
{'type': 's3fs', 'label': '1000 Genomes', 'id': '1000genomes', 'doc': 'Access to the 1000 Genomes Project with human genetic variation, including SNPs, structural variants, and their haplotype context.', 'bucket': '1000genomes', 'anon': True}
{'type': 's3fs', 'label': 'The Cancer Genome Atlas', 'id': 'tcga-2-open', 'doc': 'Access to the Cancer Genome Atlas (TCGA)', 'bucket': 'tcga-2-open', 'anon': True}
{'type': 's3fs', 'label': 'COVID-19 Data Lake', 'id': 'covid19-lake', 'doc': 'A centralized repository of up-to-date and curated datasets on or related to the spread and characteristics of the novel corona virus (SARS-CoV-2) and its associated illness, COVID-19', 'bucket': 'covid19-lake', 'anon': True}
{'type': 's3fs', 'label': 'Encyclopedia of DNA Elements (ENCODE)', 'id': 'encode-public', 'doc': 'The Encyclopedia of DNA Elements (ENCODE) Consortium is an international collaboration of research groups funded by the National Human Genome Research Institute (NHGRI)', 'bucket': 'encode-public', 'anon': True}
{'type': 's3fs', 'label': 'Sentinel-3', 'id': 'meeo-s3-nrt', 'doc': 'European Commission’s Copernicus Earth Observation Programme. Sentinel-3 is a polar orbiting satellite that completes 14 orbits of the Earth a day.', 'bucket': 'meeo-s3/NRT/', 'anon': True}
{'type': 's3fs', 'label': 'Sentinel-5P Level 2', 'id': 'meeo-s5p-nrti', 'doc': 'Observations from the Sentinel-5 Precursor satellite of the Copernicus Earth Observation Programme. It contains a polar orbiting satellite that completes 14 orbits of the Earth a day.', 'bucket': 'meeo-s5p/RPRO/', 'anon': True}
{'type': 's3fs', 'label': 'Coupled Model Intercomparison Project 6', 'id': 'esgf-world', 'doc': 'The sixth phase of global coupled ocean-atmosphere general circulation model ensemble', 'bucket': 'esgf-world', 'anon': True}
{'type': 's3fs', 'label': 'CMIP6 GCMs downscaled using WRF', 'id': 'wrf-cmip6-noversioning', 'doc': 'High-resolution historical and future climate simulations from 1980-2100', 'bucket': 'wrf-cmip6-noversioning', 'anon': True}
{'type': 's3fs', 'label': 'NOAA Global Forecast System (GFS)', 'id': 'noaa-gfs-bdp-pds', 'doc': 'The Global Forecast System (GFS) is a weather forecast model produced by the National Centers for Environmental Prediction (NCEP).', 'bucket': 'noaa-gfs-bdp-pds', 'anon': True}
{'type': 's3fs', 'label': 'NOAA Unified Forecast System Subseasonal to Seasonal Prototype 5', 'id': 'noaa-ufs-prototype5-pds', 'doc': 'The Unified Forecast System Subseasonal to Seasonal prototype 5 (UFS S2Sp5) dataset is reforecast data from the UFS atmosphere-ocean.', 'bucket': 'noaa-ufs-prototype5-pds', 'anon': True}
{'type': 's3fs', 'label': 'Copernicus Digital Elevation Model (DEM)', 'id': 'copernicus-dem-30m', 'doc': 'The Copernicus DEM is a Digital Surface Model (DSM) which represents the surface of the Earth including buildings, infrastructure and vegetation.', 'bucket': 'copernicus-dem-30m', 'anon': True}
config/galaxy.yml.sample
- dependency_resolvers 的描述已经从:
变更为: ```bash Rather than specifying a dependency_resolvers_config_file, the definition of the resolvers to enable can be embedded into Galaxy’s config with this option. This has no effect if a dependency_resolvers_config_file is used.Rather than specifying a dependency_resolvers_config_file, the definition of the
resolvers to enable can be embedded into Galaxy's config with this option.
This has no effect if a dependency_resolvers_config_file is used.
The syntax, available resolvers, and documentation of their options is explained in detail in the documentation:
https://docs.galaxyproject.org/en/master/admin/dependency_resolvers.html
- **dependency_resolvers_config_file** 的描述已经从:
```bash
The dependency resolvers config file specifies an ordering and options for how
Galaxy resolves tool dependencies (requirement tags in Tool XML). The default
ordering is to the use the Tool Shed for tools installed that way, use local
Galaxy packages, and then use Conda if available.
See https://github.com/galaxyproject/galaxy/blob/dev/doc/source/admin/dependency_resolvers.rst
for more information on these options.
变更为:
Specifies the path to the standalone dependency resolvers configuration file. This
configuration can now be specified directly in the Galaxy configuration, see the
description of the 'dependency_resolvers' option for details.
ftp_upload_dir 的描述已经从:
Enable Galaxy's "Upload via FTP" interface. You'll need to install and
configure an FTP server (we've used ProFTPd since it can use Galaxy's
database for authentication) and set the following two options.
This should point to a directory containing subdirectories matching users'
identifier (defaults to e-mail), where Galaxy will look for files.
变更为:
This should point to a directory containing subdirectories matching users'
identifier (defaults to e-mail), where Galaxy will look for files.
ftp_upload_site 的描述已经从:
This should be the hostname of your FTP server, which will be provided to
users in the help text.
变更为:
configure an FTP server (we've used ProFTPd since it can use Galaxy's
database for authentication) and set the following two options.
This will be provided to users in the help text as 'log in to the FTP
server at '. Thus, it should be the hostname of your FTP server.
mailing_join_addr 的描述已经从: ```bash On the user registration form, users may choose to join a mailing list. This is the address used to subscribe to the list. Uncomment and leave empty if you want to remove this option from the user registration form.
Example value ‘galaxy-announce-join@bx.psu.edu’
变更为:
```bash
On the user registration form, users may choose to join a mailing list. This
is the address used to subscribe to the list. Uncomment and leave empty if you
want to remove this option from the user registration form.
Example value 'galaxy-announce-join@lists.galaxyproject.org'
- toolbox_filter_base_modules 已经从:
变更为:galaxy.tools.filters,galaxy.tools.toolbox.filters
galaxy.tools.filters,galaxy.tools.toolbox.filters,galaxy.tool_util.toolbox.filters
移除的配置
下列配置选项已被完全删除(have been completely removed)。
config/galaxy.yml.sample
- beta_edam_toolbox_ontology_path
- containers_resolvers_config_file
- enable_beta_edam_toolbox
- enable_job_recovery
- sentry_sloreq_threshold
内置工具更新
- 对集合操作帮助部分(Collection Operation Help section)和参数名称的更改(Pull Request 11068)
- GPU enabled jupyter notebook for machine learning powered by Jupyter lab and Tensorflow (感谢 @anuprulez). Pull Request 11484
- 更新 bam.iobio 交互式工具包装器 (感谢 @luke-c-sargent). Pull Request 11537
- Add tool for exporting individual files to galaxy file source plugins. Pull Request 11613
- NCBI Datasets data source tool Pull Request 11738
- 修复 interactivetool_jupyter_notebook.xml 帮助部分中的输入错误 (感谢 @maximskorik). Pull Request 12077
- 更新 interactivetool_pyiron.xml (感谢 @gmauro). Pull Request 12127
- 更新 AskOmics 交互工具到 4.3.1 (感谢 @abretaud). Pull Request 12159
- 修复 Grep1 工具中的模式匹配 Pull Request 12166
- 删除未使用的遗留控制器内容(unused legacy controller things)Pull Request 12172
- Add
to the tool schema template, use live links in xsd Pull Request 12242 - Systematic handling of remotely required tool files. Pull Request 12250
- 恢复 Grep1 工具的 1.0.1 版本 Pull Request 12252
- Vuefy and improve granularity for tool HTML sanitization Pull Request 12283
- Allow bio.tools mappings for legacy tools. Pull Request 12289
- Allow skipping sanitization of / char in export_remote tool Pull Request 12372
- 在添加值之前锁定位置文件 Pull Request 12446
- 现代化的 sorter (sort1) 工具 Pull Request 12619
- 改进 DirectoryUriToolParameter 验证中的错误处理 (感谢 @davelopez). Pull Request 12760
新数据类型
- 增加了 FASTQ 数据类型的文档,并实现了质量检查(感谢 @bernt-matthias)Pull Request 11931
- 为 h5mlm 数据类型制作数据集预览(感谢 @qiagu)Pull Request 11935
- 为结构材料 Hexrd 应用程序添加数据类型(感谢 @jj-umn). Pull Request 11957
- 添加新的子类类型(感谢 @maikenp). Pull Request 12097
- Converters:使用目标数据类型(感谢 @bernt-matthias). Pull Request 12185
- 添加 bref3 数据类型(感谢 @gallardoalba). Pull Request 12199
- Converters: Unify converters to tabix and bgzip (感谢 @bernt-matthias). Pull Request 12213
- Converters: Unify molecules converters (感谢 @bernt-matthias). Pull Request 12214
- Converters: Unify dcd, trr, xtc (感谢 @bernt-matthias). Pull Request 12224
- Converters: Unify bcf converters (感谢 @bernt-matthias). Pull Request 12225
- 修正 edta 元数据设置 (感谢 @bernt-matthias). Pull Request 12273
- 增加 mothur.pair.dist sniffer 的特异性 (感谢 @bernt-matthias). Pull Request 12280
- 添加 “ExpressionSet RData object” 数据类型 (感谢 @mtekman). Pull Request 12336
- 小的 binary.py 修复 (感谢 @melibleq). Pull Request 12384
- 从 sam 文件中解析 sam 元数据 (感谢 @bernt-matthias). Pull Request 12392
- 添加 ONNX 数据类型 (感谢 @anuprulez). Pull Request 12429
- 从 set_metadata 工具中移除 bcftools requirement. Pull Request 12472
- 修复 cmap sniffer (感谢 @astrovsky01). Pull Request 12509
- 添加对 RDS 文件的支持和对 RData 的改进 (感谢 @bernt-matthias). Pull Request 12712
- 将 file_ext 属性添加到 temitation 和其他的数据类型中 (感谢 @bernt-matthias). Pull Request 12713
- 使 vg 成为 compressedarchave 的子类 (感谢 @bernt-matthias). Pull Request 12718
- Yaml datatype backport Pull Request 12745
发布测试团队
特别感谢发布测试团队测试了许多新特性并报告了许多错误:
发行说明
请参阅完整的发行说明(full release notes)了解更多细节。
要了解 Galaxy 的最新进展,请观看我们的视频,访问我们的社区中心,并在 Twitter 上关注 @galaxyproject 项目。
感谢使用 Galaxy!
参考资料
- September 2021 Galaxy Release (v 21.09) - User release announcement
- September 2021 Galaxy Release (v 21.09) - Developer and admin release announcement
- Github Issues 12506 - Publication of Galaxy Release v 21.09