SuperAPI AI 工具集

labarchive-integration

数据与分析

查看项目

更新于 10-16 07:46

技能介绍

用途

LabArchives 是一个用于科研记录与数据管理的电子实验记录本(ELN)平台。本技能用于通过 REST API 以编程方式访问记录本、管理条目与附件、生成报告,并与第三方工具集成,实现科研数据记录与管理的自动化。

主要能力

认证与配置

设置 API 访问凭据和区域端点。前提条件包括:启用 API 访问的企业版 LabArchives 许可、来自 LabArchives 管理员的 API 访问密钥 ID 与密码、用户认证凭据(邮箱和外部应用密码)。可使用 scripts/setup_config.py 脚本创建配置文件:

python3 scripts/setup_config.py

该脚本生成 config.yaml 文件,结构如下:

api_url: https://api.labarchives.com/api  # 或区域端点
access_key_id: YOUR_ACCESS_KEY_ID
access_password: YOUR_ACCESS_PASSWORD

区域 API 端点:

  • 美国/国际:https://api.labarchives.com/api
  • 澳大利亚:https://auapi.labarchives.com/api
  • 英国:https://ukapi.labarchives.com/api

详细认证说明与故障排查参见 references/authentication_guide.md。

用户信息获取

获取后续 API 操作所需的用户 ID(UID)和访问信息。流程为:调用 users/user_access_info API 方法并传入登录凭据,解析 XML/JSON 响应提取 UID,再通过 users/user_info_via_id 获取详细用户信息。

Python 包装器示例:

from labarchivespy.client import Client

# 初始化客户端
client = Client(api_url, access_key_id, access_password)

# 获取用户访问信息
login_params = {'login_or_email': user_email, 'password': auth_token}
response = client.make_call('users', 'user_access_info', params=login_params)

# 从响应中提取 UID
import xml.etree.ElementTree as ET
uid = ET.fromstring(response.content)[0].text

# 获取详细用户信息
params = {'uid': uid}
user_info = client.make_call('users', 'user_info_via_id', params=params)

记录本操作

管理记录本访问、备份和元数据检索。关键操作包括:列出记录本、备份记录本(可选择性包含附件)、获取记录本 ID、获取记录本成员、获取记录本设置。

备份示例(使用 scripts/notebook_operations.py):

# 含附件备份(默认,生成 7z 归档)
python3 scripts/notebook_operations.py backup --uid USER_ID --nbid NOTEBOOK_ID

# 不含附件,JSON 格式
python3 scripts/notebook_operations.py backup --uid USER_ID --nbid NOTEBOOK_ID --json --no-attachments

API 端点格式:

https://<api_url>/notebooks/notebook_backup?uid=<UID>&nbid=<NOTEBOOK_ID>&json=true&no_attachments=false

完整 API 方法文档参见 references/api_reference.md。

条目与附件管理

创建、修改和管理记录本条目与文件附件。条目操作包括:创建新条目、为现有条目添加评论、创建条目部件/组件、上传文件附件。

附件工作流(使用 scripts/entry_operations.py):

# 上传附件到条目
python3 scripts/entry_operations.py upload --uid USER_ID --nbid NOTEBOOK_ID --entry-id ENTRY_ID --file /path/to/file.pdf

# 创建带文本内容的新条目
python3 scripts/entry_operations.py create --uid USER_ID --nbid NOTEBOOK_ID --title "Experiment Results" --content "Results from today's experiment..."

支持的文件类型:文档(PDF、DOCX、TXT)、图像(PNG、JPG、TIFF)、数据文件(CSV、XLSX、HDF5)、科学格式(CIF、MOL、PDB)、归档(ZIP、7Z)。

站点报告与分析

生成关于记录本使用、活动和合规性的机构报告(企业版功能)。可用报告包括:详细使用报告、详细记录本报告、PDF/离线记录本生成报告、记录本成员报告、记录本设置报告。

报告生成示例:

# 生成详细使用报告
response = client.make_call('site_reports', 'detailed_usage_report',
                           params={'start_date': '2025-01-01', 'end_date': '2025-10-20'})

第三方集成

LabArchives 可与多种科研软件平台集成。支持的集成包括:Protocols.io(将协议导出到记录本)、GraphPad Prism(版本 8+,导出分析与图表)、SnapGene、Geneious、Jupyter(将 Jupyter notebook 嵌入为条目)、REDCap(临床数据采集集成)、Qeios、SciSpace。LabArchives 现对所有新集成使用 OAuth 认证,旧版集成可能使用 API 密钥认证。详细集成设置参见 references/integrations.md。

使用方式

常见工作流

完整记录本备份工作流:认证并获取用户 ID → 列出所有可访问记录本 → 遍历并备份每个记录本 → 存储带时间戳元数据的备份。

# 完整备份脚本
python3 scripts/notebook_operations.py backup-all --email user@example.edu --password AUTH_TOKEN

自动化数据上传工作流:认证 → 确定目标记录本和条目 → 上传实验数据文件 → 为条目添加元数据评论 → 生成活动报告。

集成工作流示例(Jupyter → LabArchives):将 Jupyter notebook 导出为 HTML 或 PDF → 使用 entry_operations.py 上传到 LabArchives → 添加包含执行时间戳和环境信息的评论 → 为条目打标签以便检索。

Python 包安装

安装 labarchives-py 包装器以简化 API 访问:

git clone https://github.com/mcmero/labarchives-py
cd labarchives-py
uv pip install .

也可使用 Python 的 requests 库直接发起 HTTP 请求进行自定义实现。

适用场景

  • 使用 LabArchives REST API 进行记录本自动化
  • 以编程方式备份记录本
  • 创建或管理记录本条目与附件
  • 生成站点报告与分析
  • 将 LabArchives 与第三方工具(Protocols.io、Jupyter、REDCap)集成
  • 自动化上传数据到电子实验记录本
  • 以编程方式管理用户访问与权限

限制与注意事项

最佳实践

  • 速率限制:在 API 调用之间实现适当延迟以避免限流
  • 错误处理:始终用 try-except 块包裹 API 调用并记录日志
  • 认证安全:将凭据存储在环境变量或安全配置文件中(切勿写入代码)
  • 备份验证:备份后验证文件完整性与完整性
  • 增量操作:对大型记录本使用分页和批处理
  • 区域端点:使用正确的区域 API 端点以获得最佳性能

故障排查

常见问题:

  • 401 Unauthorized:验证访问密钥 ID 和密码是否正确;检查账户是否启用 API 访问
  • 404 Not Found:确认记录本 ID(nbid)存在且用户有访问权限
  • 403 Forbidden:检查用户对请求操作的权限
  • 空响应:确保正确提供必需参数(uid、nbid)
  • 附件上传失败:验证文件大小限制和格式兼容性

如需更多支持,可联系 LabArchives:support@labarchives.com。

附带资源

  • scripts/setup_config.py:API 凭据交互式配置文件生成器
  • scripts/notebook_operations.py:列出、备份和管理记录本的工具
  • scripts/entry_operations.py:创建条目和上传附件的工具
  • references/api_reference.md:完整 API 端点文档,含参数与示例
  • references/authentication_guide.md:详细认证设置与配置说明
  • references/integrations.md:第三方集成设置指南与用例