用途
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:第三方集成设置指南与用例