name: labarchive-integration description: “电子实验室笔记本API集成。访问笔记本、管理条目/附件、备份笔记本、与Protocols.io/Jupyter/REDCap集成,用于程序化ELN工作流。”
LabArchives 集成
概述
LabArchives 是一个用于研究文档和数据管理的电子实验室笔记本平台。通过REST API程序化访问笔记本、管理条目和附件、生成报告,并与第三方工具集成。
何时使用此技能
此技能应在以下情况下使用:
- 使用LabArchives REST API进行笔记本自动化
- 程序化备份笔记本
- 创建或管理笔记本条目和附件
- 生成站点报告和分析
- 将LabArchives与第三方工具集成(Protocols.io、Jupyter、REDCap)
- 自动上传数据到电子实验室笔记本
- 程序化管理用户访问和权限
核心能力
1. 认证与配置
设置API访问凭据和LabArchives API集成的区域端点。
先决条件:
- 企业版LabArchives许可证,已启用API访问
- 来自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。
2. 用户信息检索
获取用户ID(UID)和后续API操作所需的访问信息。
工作流:
- 使用登录凭据调用
users/user_access_infoAPI方法 - 解析XML/JSON响应以提取用户ID(UID)
- 使用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)
3. 笔记本操作
管理笔记本访问、备份和元数据检索。
关键操作:
- 列出笔记本: 检索用户可访问的所有笔记本
- 备份笔记本: 下载完整的笔记本数据,可选包含附件
- 获取笔记本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。
4. 条目和附件管理
创建、修改和管理笔记本条目和文件附件。
条目操作:
- 在笔记本中创建新条目
- 向现有条目添加评论
- 创建条目部分/组件
- 上传文件附件到条目
附件工作流:
使用 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 "实验成果" --content "来自今天实验的成果..."
支持的文件类型:
- 文档(PDF、DOCX、TXT)
- 图像(PNG、JPG、TIFF)
- 数据文件(CSV、XLSX、HDF5)
- 科学格式(CIF、MOL、PDB)
- 存档(ZIP、7Z)
5. 站点报告和分析
生成机构关于笔记本使用、活动和合规性的报告(企业版功能)。
可用报告:
- 详细使用报告:用户活动指标和参与度统计
- 详细笔记本报告:笔记本元数据、成员列表和设置
- PDF/离线笔记本生成报告:合规性导出跟踪
- 笔记本成员报告:访问控制和协作分析
- 笔记本设置报告:配置和权限审计
报告生成:
# 生成详细使用报告
response = client.make_call('site_reports', 'detailed_usage_report',
params={'start_date': '2025-01-01', 'end_date': '2025-10-20'})
6. 第三方集成
LabArchives与众多科学软件平台集成。此技能提供程序化利用这些集成的指导。
支持的集成:
- Protocols.io: 直接导出协议到LabArchives笔记本
- GraphPad Prism: 导出分析和图表(版本8+)
- SnapGene: 直接分子生物学工作流集成
- Geneious: 生物信息学分析导出
- Jupyter: 嵌入Jupyter笔记本作为条目
- REDCap: 临床数据捕获集成
- Qeios: 研究发布平台
- SciSpace: 文献管理
OAuth认证: LabArchives现在对所有新集成使用OAuth。旧版集成可能使用API密钥认证。
有关详细集成设置说明和使用案例,请参考 references/integrations.md。
常见工作流
完整笔记本备份工作流
- 认证并获取用户ID
- 列出所有可访问的笔记本
- 遍历笔记本并备份每个
- 存储带有时间戳元数据的备份
# 完整备份脚本
python3 scripts/notebook_operations.py backup-all --email user@example.edu --password AUTH_TOKEN
自动数据上传工作流
- 使用LabArchives API认证
- 识别目标笔记本和条目
- 上传实验数据文件
- 向条目添加元数据评论
- 生成活动报告
集成工作流示例(Jupyter → LabArchives)
- 将Jupyter笔记本导出为HTML或PDF
- 使用entry_operations.py上传到LabArchives
- 添加带有执行时间戳和环境信息的评论
- 标记条目以便轻松检索
Python包安装
安装 labarchives-py 包装器以简化API访问:
git clone https://github.com/mcmero/labarchives-py
cd labarchives-py
pip install .
或者,通过Python的 requests 库使用直接HTTP请求进行自定义实现。
最佳实践
- 速率限制: 在API调用之间实施适当的延迟以避免节流
- 错误处理: 始终将API调用包装在带有适当日志记录的try-except块中
- 认证安全: 将凭据存储在环境变量或安全配置文件中(切勿在代码中)
- 备份验证: 笔记本备份后,验证文件完整性和完整性
- 增量操作: 对于大型笔记本,使用分页和批处理
- 区域端点: 使用正确的区域API端点以获得最佳性能
故障排除
常见问题:
- 401 未授权: 验证访问密钥ID和密码是否正确;检查您的帐户是否已启用API访问
- 404 未找到: 确认笔记本ID(nbid)存在且用户具有访问权限
- 403 禁止: 检查用户对请求操作的权限
- 空响应: 确保提供了正确的必需参数(uid、nbid)
- 附件上传失败: 验证文件大小限制和格式兼容性
如需额外支持,请联系LabArchives support@labarchives.com。
资源
此技能包含捆绑资源以支持LabArchives API集成:
scripts/
setup_config.py:API凭据的交互式配置文件生成器notebook_operations.py:列出、备份和管理笔记本的实用程序entry_operations.py:创建条目和上传附件的工具
references/
api_reference.md:全面的API端点文档,包含参数和示例authentication_guide.md:详细的认证设置和配置说明integrations.md:第三方集成设置指南和使用案例