返回Skills库
在 Latch 平台构建生物信息学工作流:使用 Latch SDK 与装饰器编写流水线、部署无服务器工作流、管理文件目录,并与 Nextflow、Snakemake 集成。
LatchBio 集成
概述
Latch 是一个用于构建和部署生物信息学工作流为无服务器流水线的 Python 框架。基于 Flyte 构建,使用 @workflow/@task 装饰器创建工作流,通过 LatchFile/LatchDir 管理云端数据,配置资源,并集成 Nextflow/Snakemake 流水线。
核心能力
Latch 平台提供四个主要功能领域:
1. 工作流创建与部署
- 使用 Python 装饰器定义无服务器工作流
- 支持原生 Python、Nextflow 和 Snakemake 流水线
- 使用 Docker 自动容器化
- 自动生成无代码用户界面
- 版本控制和可复现性
2. 数据管理
- 云存储抽象(LatchFile、LatchDir)
- 使用 Registry 进行结构化数据组织(Projects → Tables → Records)
- 通过链接和枚举实现类型安全的数据操作
- 本地与云端之间的自动文件传输
- 用于文件选择的 Glob 模式匹配
3. 资源配置
- 预配置的任务装饰器(@small_task、@large_task、@small_gpu_task、@large_gpu_task)
- 自定义资源规格(CPU、内存、GPU、存储)
- GPU 支持(K80、V100、A100)
- 超时和存储配置
- 成本优化策略
4. 验证工作流
- 生产就绪的预构建流水线
- 批量 RNA-seq、DESeq2、通路分析
- 用于蛋白质结构预测的 AlphaFold 和 ColabFold
- 单细胞工具(ArchR、scVelo、emptyDropsR)
- CRISPR 分析、系统发育学等
快速入门
安装与设置
# 安装 Latch SDK
uv pip install latch
# 登录 Latch
latch login
# 初始化新工作流
latch init my-workflow
# 将工作流注册到平台
latch register my-workflow前置条件:
- Docker 已安装并运行
- Latch 账户凭据
- Python 3.8+
基本工作流示例
from latch import workflow, small_task
from latch.types import LatchFile
@small_task
def process_file(input_file: LatchFile) -> LatchFile:
"""处理单个文件"""
# 处理逻辑
return output_file
@workflow
def my_workflow(input_file: LatchFile) -> LatchFile:
"""
我的生物信息学工作流
Args:
input_file: 输入数据文件
"""
return process_file(input_file=input_file)何时使用此技能
遇到以下任何场景时应使用此技能:
工作流开发:
- "为 RNA-seq 分析创建 Latch 工作流"
- "将我的流水线部署到 Latch"
- "将我的 Nextflow 流水线转换为 Latch"
- "为我的工作流添加 GPU 支持"
- 使用
@workflow、@task装饰器
数据管理:
- "在 Latch Registry 中组织我的测序数据"
- "如何使用 LatchFile 和 LatchDir?"
- "在 Latch 中设置样本追踪"
- 使用
latch:///路径
资源配置:
- "为 Latch 上的 AlphaFold 配置 GPU"
- "我的任务内存不足"
- "如何优化工作流成本?"
- 使用任务装饰器
验证工作流:
- "在 Latch 上运行 AlphaFold"
- "使用 DESeq2 进行差异表达分析"
- "可用的预构建工作流"
- 使用
latch.verified模块
详细文档
此技能包含按能力组织的综合参考文档:
references/workflow-creation.md
阅读此文档以了解:
- 创建和注册工作流
- 任务定义和装饰器
- 支持 Python、Nextflow、Snakemake
- 启动计划和条件部分
- 工作流执行(CLI 和编程方式)
- 多步骤和并行流水线
- 注册问题故障排除
关键主题:
latch init和latch register命令@workflow和@task装饰器- LatchFile 和 LatchDir 基础
- 类型注解和文档字符串
- 带有预设参数的启动计划
- 条件 UI 部分
references/data-management.md
阅读此文档以了解:
- 使用 LatchFile 和 LatchDir 进行云存储
- Registry 系统(Projects、Tables、Records)
- 链接记录和关系
- 枚举和类型化列
- 批量操作和事务
- 与工作流集成
- 账户和工作区管理
关键主题:
latch:///路径格式- 文件传输和 glob 模式
- 创建和查询 Registry 表
- 列类型(string、number、file、link、enum)
- 记录 CRUD 操作
- 工作流-Registry 集成
references/resource-configuration.md
阅读此文档以了解:
- 任务资源装饰器
- 自定义 CPU、内存、GPU 配置
- GPU 类型(K80、V100、A100)
- 超时和存储设置
- 资源优化策略
- 成本效益工作流设计
- 监控和调试
关键主题:
@small_task、@large_task、@small_gpu_task、@large_gpu_task- 带有精确规格的
@custom_task - 多 GPU 配置
- 按工作负载类型选择资源
- 平台限制和配额
references/verified-workflows.md
阅读此文档以了解:
- 预构建的生产工作流
- 批量 RNA-seq 和 DESeq2
- AlphaFold 和 ColabFold
- 单细胞分析(ArchR、scVelo)
- CRISPR 编辑分析
- 通路富集
- 与自定义工作流集成
关键主题:
latch.verified模块导入- 可用的验证工作流
- 工作流参数和选项
- 结合验证和自定义步骤
- 版本管理
常见工作流模式
完整的 RNA-seq 流水线
from latch import workflow, small_task, large_task
from latch.types import LatchFile, LatchDir
@small_task
def quality_control(fastq: LatchFile) -> LatchFile:
"""运行 FastQC"""
return qc_output
@large_task
def alignment(fastq: LatchFile, genome: str) -> LatchFile:
"""STAR 比对"""
return bam_output
@small_task
def quantification(bam: LatchFile) -> LatchFile:
"""featureCounts"""
return counts
@workflow
def rnaseq_pipeline(
input_fastq: LatchFile,
genome: str,
output_dir: LatchDir
) -> LatchFile:
"""RNA-seq 分析流水线"""
qc = quality_control(fastq=input_fastq)
aligned = alignment(fastq=qc, genome=genome)
return quantification(bam=aligned)GPU 加速工作流
from latch import workflow, small_task, large_gpu_task
from latch.types import LatchFile
@small_task
def preprocess(input_file: LatchFile) -> LatchFile:
"""准备数据"""
return processed
@large_gpu_task
def gpu_computation(data: LatchFile) -> LatchFile:
"""GPU 加速分析"""
return results
@workflow
def gpu_pipeline(input_file: LatchFile) -> LatchFile:
"""包含 GPU 任务的流水线"""
preprocessed = preprocess(input_file=input_file)
return gpu_computation(data=preprocessed)Registry 集成工作流
from latch import workflow, small_task
from latch.registry.table import Table
from latch.registry.record import Record
from latch.types import LatchFile
@small_task
def process_and_track(sample_id: str, table_id: str) -> str:
"""处理样本并更新 Registry"""
# 从 registry 获取样本
table = Table.get(table_id=table_id)
records = Record.list(table_id=table_id, filter={"sample_id": sample_id})
sample = records[0]
# 处理
input_file = sample.values["fastq_file"]
output = process(input_file)
# 更新 registry
sample.update(values={"status": "completed", "result": output})
return "Success"
@workflow
def registry_workflow(sample_id: str, table_id: str):
"""与 Registry 集成的工作流"""
return process_and_track(sample_id=sample_id, table_id=table_id)最佳实践
工作流设计
- 为所有参数使用类型注解
- 编写清晰的文档字符串(显示在 UI 中)
- 从标准任务装饰器开始,需要时扩展
- 将复杂工作流分解为模块化任务
- 实现适当的错误处理
数据管理
- 使用一致的文件夹结构
- 在批量录入前定义 Registry 模式
- 使用链接记录表示关系
- 在 Registry 中存储元数据以实现可追溯性
资源配置
- 合理分配资源(不要过度分配)
- 仅在算法支持时使用 GPU
- 监控执行指标并优化
- 尽可能设计并行执行
开发工作流
- 在注册前使用 Docker 进行本地测试
- 对工作流代码使用版本控制
- 记录资源需求
- 分析工作流以确定实际需求
故障排除
常见问题
注册失败:
- 确保 Docker 正在运行
- 使用
latch login检查认证 - 验证 Dockerfile 中的所有依赖项
- 使用
--verbose标志获取详细日志
资源问题:
- 内存不足:增加任务装饰器中的内存
- 超时:增加超时参数
- 存储问题:增加 ephemeral storage_gib
数据访问:
- 使用正确的
latch:///路径格式 - 验证工作区中文件是否存在
- 检查共享工作区的权限
类型错误:
- 为所有参数添加类型注解
- 对文件/目录参数使用 LatchFile/LatchDir
- 确保工作流返回类型与实际返回匹配
其他资源
- 官方文档:https://docs.latch.bio
- GitHub 仓库:https://github.com/latchbio/latch
- Slack 社区:加入 Latch SDK 工作区
- API 参考:https://docs.latch.bio/api/latch.html
- 博客:https://blog.latch.bio
支持
如有问题或疑问:
- 查看上述文档链接
- 搜索 GitHub issues
- 在 Slack 社区中提问
- 联系 support@latch.bio
兼容工具
Claude CodeOpenClawHermes Agent
站内相关工具
数据来源:claude-scientific-skills(MIT 许可) | 查看上游来源
上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-20 | 更新:2026-08-20
本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明。