将数据上传到欧洲核苷酸档案的命令行界面
项目描述
ENA上传工具
此命令行工具(CLI)允许您使用表格文件或此模板存储库中找到的Excel电子表格之一,轻松提交实验数据和相应的元数据到欧洲核苷酸档案(ENA)。可以提交的元数据包括研究、样本、运行和实验信息,因此您可以使用此工具进行程序化提交ENA所需的所有内容,而无需登录到Webin界面。这还包括使用ENA清单进行客户端验证并发布ENA对象。此命令行工具还作为Galaxy工具提供,可以添加到您的Galaxy实例,或者您可以使用现有的Galaxy实例之一,例如usegalaxy.eu或usegalaxy.be。
概述
元数据应单独提供在包含与以下ENA对象类似信息的表格或文件中
- 研究
- 样本
- 实验
- 运行
您可以设置工具执行以下操作
- 添加:将对象添加到存档
- 修改:修改存档中的对象
- 取消:取消私有对象及其相关对象
- 发布:立即发布私有对象为公开
成功提交后,将生成新的tsv表格,其中包含ENA访问号以及提交收据。
工具依赖项
- python 3.7+,包括以下包
- Genshi
- lxml
- pandas
- requests
- pyyaml
- openpyxl
- jsonschema
安装
pip install ena-upload-cli
用法
Minimal: ena-upoad-cli --action {add,modify,cancel,release} --center CENTER_NAME --secret SECRET
All supported arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--action {add,modify,cancel,release}
add: add an object to the archive
modify: modify an object in the archive
cancel: cancel a private object and its dependent objects
release: release a private object immediately to public
--study STUDY table of STUDY object
--sample SAMPLE table of SAMPLE object
--experiment EXPERIMENT
table of EXPERIMENT object
--run RUN table of RUN object
--data [FILE ...] data for submission
--center CENTER_NAME specific to your Webin account
--checklist CHECKLIST
specify the sample checklist with following pattern: ERC0000XX, Default: ERC000011
--xlsx XLSX filled in excel template with metadata
--isa_json ISA_JSON BETA: ISA json describing describing the ENA objects
--isa_assay_stream ISA_ASSAY_STREAM
BETA: specify the assay stream(s) that holds the ENA information, this can be a list of assay streams
--auto_action BETA: detect automatically which action (add or modify) to apply when the action column is not given
--tool TOOL_NAME specify the name of the tool this submission is done with. Default: ena-upload-cli
--tool_version TOOL_VERSION
specify the version of the tool this submission is done with
--no_data_upload indicate if no upload should be performed and you like to submit a RUN object (e.g. if uploaded was done separately).
--draft indicate if no submission should be performed
--secret SECRET .secret.yml file containing the password and Webin ID of your ENA account
-d, --dev flag to use the dev/sandbox endpoint of ENA
必填参数:--action, --center 和 --secret。
ENA Webin
如果您还没有,可以在这里创建一个Webin。Webin ID使用完整的用户名,例如:Webin-XXXXX
。访问Webin在线检查您的提交或访问dev Webin检查测试提交。
.secret.yml文件
为了避免通过终端历史记录暴露您的凭据,建议使用包含您的密码和用户名关键词的.secret.yml
文件。示例文件位于此目录的根目录中。
ENA样本清单
您可以使用--checklist
参数指定ENA样本清单。默认情况下,使用ENA默认样本清单,支持样本所需的最少信息(ERC000011)。支持的清单列表在我们的模板存储库中列出。
固定样本列
命令行工具将自动根据分类学ID获取正确的学名,或根据学名获取分类学ID。两者都可以提供,不会进行覆盖。
- 必填:别名,标题,样本描述,收集日期,地理位置(国家/海洋)以及学名或taxon_id(首选)
- 可选:普通名称,样本描述
别名 | 标题 | taxon_id | 学名 | 普通名称 | 样本描述 | 收集日期 | 地理位置(国家/海洋) |
---|---|---|---|---|---|---|---|
sample_alias_4 | sample_title_2 | 2697049 | 严重急性呼吸综合征冠状病毒2 | covid-19 | sample_description_1 | 2020-10-11 | 阿根廷 |
sample_alias_5 | sample_title_3 | 2697049 | 严重急性呼吸综合征冠状病毒2 | covid-19 | sample_description_2 | 2008-01-24 | 比利时 |
病毒提交
如果您想提交病毒样本,可以在清单参数中添加ERC000033
以使用ENA病毒病原体清单。请查看我们的病毒示例命令以进行演示。请使用我们模板存储库中的ENA病毒病原体清单以了解受控词汇
字段中允许/可能的内容。
ENA研究、实验和运行表
请查看您的清单模板,以了解哪些属性是研究、实验和运行ENA对象必填的。
开发实例
默认情况下,提交将通过以下URL发送到ENA:https://www.ebi.ac.uk/ena/submit/drop-box/submit/?auth=ENA
如果您想使用ENA的沙盒开发实例进行测试提交,请使用--dev标志:https://wwwdev.ebi.ac.uk/ena/submit/drop-box/submit/?auth=ENA。TEST提交将在24小时内被丢弃。
向ENA提交所选行
将对象的部分选择提交给ENA有两种方式。这对于重复提交尤其有用,特别是当它们属于同一研究时。
- 手动:您可以为每个包含您想要在此提交中应用的动作的表格/工作表添加一个可选的
状态
列。如果您选择仅将前两个样本添加到ENA,请在命令中指定--action add
作为参数,并将add
值添加到您想要提交的行的状态列中,如下所示。同样适用于动作modify
、release
和cancel
。 - 自动(BETA):使用
--auto_action
,可以自动检测对象(使用别名)是否已存在于ENA中,并将指定的动作(--action
参数)相应地填充。在实践中,这意味着如果用户选择添加对象,而我们已经使用其别名找到了该对象已存在,则不会添加该对象。另一方面,如果命令用于修改对象,我们希望在ENA上已存在的对象上单独应用此操作。检测仅适用于已在网站上通过搜索功能(开发版和实时网站)发布并可通过搜索功能找到的ENA对象。如果工具无法正确检测您的ENA对象的的存在,我们建议使用上述更稳健的手动方法。
例如,在示例样本修改表格中可以看到修改动作
别名 | 状态 | 标题 | taxon_id | 样本描述 |
---|---|---|---|---|
sample_alias_4 | modify | sample_title_1 | 2697049 | sample_description_1 |
sample_alias_5 | sample_title_2 | 2697049 | sample_description_2 |
重要提示:如果状态列提供了但未填写,或填写了与
--action
参数中不同的动作,则不会提交任何行!要么省略该列,要么将每行您想要提交的正确动作添加到每行中。
使用Excel模板
我们还支持使用特定的Excel模板,这些模板是为每个样本清单设计的。使用--xlsx
命令添加Excel模板文件的路径,该文件已从以下模板存储库填充。
数据文件
支持的数据
- 读取数据
- 基因组组装
- 转录组组装
- 模板序列
- 其他分析
上传到ENA FTP服务器的多数文件都需要压缩。
有关ENA希望如何接收文件的更多信息,请参阅此处。
关于数据上传的注意事项:上传的文件在上传后会在ENA服务器上持续存储一段时间。因此,如果在多次测试提交中,可以使用--no_data_upload
在后续提交中跳过数据上传。这也允许单独上传(大型)数据集,例如使用aspera。对于--no_data_upload
参数,如果提交的RUN对象在file_checksum
列中没有MD5校验和,则需要使用--data
提供数据文件。
发布和取消提交
如果您想要发布或取消数据,可以在命令行的--action
参数中使用cancel
或release
来做到这一点。需要发布或取消的表格需要包含对应访问号的访问号列。这意味着您首先必须使用add
提交您的数据,然后使用包含访问号的更新后的表格,如果您尚未提交数据。
默认情况下,提交后的更新表将在其状态列中具有动作added
。如果您想要使用这些动作之一(或者如果您的作用适用于整个表格,请删除状态列),不要忘记将值更改为release
或cancel
。
注意:发布研究将使所有子元素(如runs和experiments)公开。
工具概述
输入:
- 元数据表格/excel工作表/isa_json
- 示例在
example_table
中,以及在此模板存储库的excel表格中 - (可选) 在 状态 列中定义操作,例如
添加
、修改
、取消
、发布
(如果没有给出整个表格,则提交整个表格) - 要执行所有对象的批量提交,不同ENA对象中的
别名ID
应该在关联中,其中实验对象中的别名ID将所有对象链接在一起
- 示例在
- 实验数据
- 在
example_data
中的示例
- 在
输出:
- 工作目录中的 receipt.xml 文件,包含 ENA 提交的收据
- 包含更新信息的元数据表,位于输入目录中
- 更新后的状态:
已添加
、已修改
、已取消
、已发布
- 访问号
- 提交日期
- 如果没有给出,则在运行表中包含文件校验和
- 如果没有给出,则在样本表中包含物种ID或科学名称
- 更新后的状态:
测试工具
-
添加元数据和序列数据
ena-upload-cli --action add --center 'your_center_name' --study example_tables/ENA_template_studies.tsv --sample example_tables/ENA_template_samples.tsv --experiment example_tables/ENA_template_experiments.tsv --run example_tables/ENA_template_runs.tsv --data example_data/*gz --dev --secret .secret.yml
-
仅添加元数据
ena-upload-cli --action add --center 'your_center_name' --study example_tables/ENA_template_studies.tsv --sample example_tables/ENA_template_samples.tsv --experiment example_tables/ENA_template_experiments.tsv --run example_tables/ENA_template_runs_md5sums.tsv --dev --secret .secret.yml
-
添加研究
ena-upload-cli --action add --center 'your_center_name' --study example_tables/ENA_template_studies.tsv --dev --secret .secret.yml
-
修改样本元数据
ena-upload-cli --action modify --center 'your_center_name' --sample example_tables/ENA_template_samples_modify.tsv --dev --secret .secret.yml
-
病毒数据
ena-upload-cli --action add --center 'your_center_name' --study example_tables/ENA_template_studies.tsv --sample example_tables/ENA_template_samples_vir.tsv --experiment example_tables/ENA_template_experiments.tsv --run example_tables/ENA_template_runs.tsv --data example_data/*gz --dev --checklist ERC000033 --secret .secret.yml
-
使用 Excel 模板
ena-upload-cli --action add --center 'your_center_name' --data example_data/*gz --dev --checklist ERC000033 --secret .secret.yml --xlsx example_tables/ENA_excel_example_ERC000033.xlsx
-
使用 ISA JSON
ena-upload-cli --action add --center 'your_center_name' --data example_data/*gz --dev --secret .secret.yml --isa_json tests/test_data/simple_test_case_v2.json --isa_assay_stream "Ena stream 1"
-
发布提交
ena-upload-cli --action release --center'your_center_name' --study example_tables/ENA_template_studies_release.tsv --dev --secret .secret.yml
注意 Windows 用户:Windows 默认不支持在命令行参数中使用通配符展开。因此,应将
--data example_data/*gz
参数替换为包含数据文件列表的参数。对于此示例,请使用--data example_data/ENA_TEST1.R1.fastq.gz example_data/ENA_TEST2.R1.fastq.gz example_data/ENA_TEST2.R2.fastq.gz
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
ena_upload_cli-0.7.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c402d761ba5470ac51302b4db63e22e8a94f1a6661c968469d1a91c9750874f |
|
MD5 | 691d9e94391c30864e79d92eccae71db |
|
BLAKE2b-256 | 617607b2786e6eab4a82764e5f8303c27ed46ee6a41a2aaaab6d214827db584c |