Communitygithub.com

Rowan

Rowan은 클라우드 네이티브 분자 모델링 및 의약 화학 워크플로우 플랫폼으로, Python API를 제공합니다. pKa 및 macropKa 예측, 컨포머 및 토토머 앙상블 생성, 도킹 및 유사체 도킹, 단백질-리간드 공접힘(cofolding), MSA 생성, 분자 동역학, 투과성, 서술자(descriptor) 워크플로우 등 소분자 또는 단백질 모델링 작업에 이상적입니다.

Rowan란 무엇인가요?

Rowan은 분자 시뮬레이션, 의약 화학, 구조 기반 설계를 위한 클라우드 네이티브 워크플로우 플랫폼입니다. Python API를 통해 소분자 모델링, 물성 예측, 도킹, 분자 동역학, AI 구조 워크플로우를 위한 통합 인터페이스를 제공합니다. Rowan을 사용하면 로컬 HPC 인프라, GPU 프로비저닝 또는 여러 개별 모델링 도구를 유지 관리할 필요 없이 프로그래밍 방식으로 의약 화학 또는 분자 설계 워크플로우를 실행할 수 있습니다. Rowan은 모든 인프라, 결과 관리 및 계산 확장을 처리하므로 사용자는 과학적 작업에 집중할 수 있습니다. 이 플랫폼은 양자 화학, 배치 물성 예측, 컨포머 및 토토머 앙상블 생성, 단일 리간드 및 유사체 도킹 워크플로우, 단백질-리간드 공접힘, MSA 생성, 분자 동역학, 투과성 등 다양한 작업을 지원합니다. 또한 프로젝트와 폴더를 사용한 체계적인 작업 구성, 웹훅 기반 비동기 처리, 배치 제출을 통한 확장 가능한 캠페인을 지원합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/rowan

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Rowan: 클라우드 네이티브 분자 모델링 및 약물 설계 워크플로우

개요

Rowan은 분자 시뮬레이션, 의약 화학 및 구조 기반 설계를 위한 클라우드 네이티브 워크플로우 플랫폼입니다. Python API는 소분자 모델링, 물성 예측, 도킹, 분자 동역학 및 AI 구조 워크플로우를 위한 통합 인터페이스를 제공합니다.

로컬 HPC 인프라, GPU 프로비저닝 또는 여러 개별 모델링 도구를 유지 관리하지 않고, 프로그래밍 방식으로 의약 화학 또는 분자 설계 워크플로우를 실행하려면 Rowan을 사용하세요. Rowan은 모든 인프라, 결과 관리 및 계산 확장을 처리합니다.

Rowan을 사용해야 하는 경우

Rowan이 적합한 경우:

  • 양자 화학, 반경험적 방법 또는 신경망 포텐셜
  • 배치 물성 예측 (pKa, 서술자, 투과성, 용해도)
  • 컨포머 및 토토머 앙상블 생성
  • 도킹 워크플로우 (단일 리간드, 유사체 시리즈, 포즈 정제)
  • 단백질-리간드 공접힘 및 MSA 생성
  • 다단계 화학 파이프라인 (예: 토토머 검색 → 도킹 → 포즈 분석)
  • 일관되고 확장 가능한 인프라가 필요한 배치 의약 화학 캠페인

Rowan이 적합하지 않은 경우:

  • 단순 분자 입출력 (RDKit 직접 사용)
  • Post-HF ab initio 양자 화학 또는 상대론적 계산

빠른 시작

uv pip install rowan-python
import rowan
rowan.api_key = "your_api_key_here"  # 또는 ROWAN_API_KEY 환경 변수 설정

# 서술자는 SMILES 문자열이 아닌 3D 분자가 필요합니다.
mol = rowan.Molecule.from_smiles("CC(=O)Oc1ccccc1C(=O)O")
wf = rowan.submit_descriptors_workflow(mol, name="aspirin")
result = wf.result()

print(result.descriptors["MW"])       # 180.042 — 정확한 질량
print(result.descriptors["SLogP"])    # 1.31
print(result.descriptors["TopoPSA"])  # 63.6 — 위상학적 PSA

오류 없이 출력되면 올바르게 설정된 것입니다. 이 값과 예제는 rowan-python 3.1.13에 대해 검증되었습니다.

설치

uv pip install rowan-python
# 또는: pip install rowan-python

사용자 및 웹훅 관리

인증

환경 변수를 통해 API 키를 설정합니다 (권장):

export ROWAN_API_KEY="your_api_key_here"

또는 Python에서 직접 설정:

import rowan
rowan.api_key = "your_api_key_here"

인증 확인:

import rowan
user = rowan.whoami()  # 인증된 경우 사용자 정보 반환
print(f"사용자: {user.email}")
print(f"사용 가능한 크레딧: {user.credits_available_string()}")

분자 입력 형식

Rowan은 다음 형식의 분자를 허용합니다:

  • SMILES (권장): "CCO", "c1ccccc1O"
  • SMARTS 패턴 (일부 워크플로우): 부분 구조 매칭을 위한 SMARTS의 하위 집합
  • InChI (API 버전에서 지원하는 경우): "InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3"

API는 분자 입력을 검증하고, 구문 분석할 수 없는 SMILES 또는 워크플로우와 호환되지 않는 입력 유형에 대해 ValueError를 발생시킵니다. 재현성을 위해 항상 정규화된 SMILES를 사용하세요.

SMILES 문자열 대 분자 객체

rowan-python 3.1.13에서는 워크플로우에 따라 허용되는 입력 유형이 다릅니다. 다음 일반 워크플로우만 문자열을 허용합니다: pKa, 컨포머 검색, 막 투과성, ADMET, LogP, macropKa, 용해도 및 포즈 분석 MD. 대부분의 다른 워크플로우(서술자, 토토머 검색, 도킹, 유사체 도킹, BDE, NMR, Fukui 포함)는 rowan.Molecule.from_smiles(smiles) 또는 RDKit Mol/RWMol이 필요합니다. 잘못된 유형은 제출 전에 ValueError를 발생시킵니다.

팁: 제출 전에 RDKit을 사용하여 SMILES를 검증하세요:

from rdkit import Chem
smiles = "CCO"
mol = Chem.MolFromSmiles(smiles)
if mol is None:
    raise ValueError(f"잘못된 SMILES: {smiles}")

핵심 사용 패턴

대부분의 Rowan 작업은 동일한 3단계 패턴을 따릅니다:

  1. 제출 워크플로우
  2. 완료 대기 (선택적 스트리밍 포함)
  3. 편의 속성을 사용하여 타입이 지정된 결과 검색
import rowan

# 1. 제출 — 특정 워크플로우 함수 사용 (일반 submit_workflow 아님)
workflow = rowan.submit_descriptors_workflow(
    rowan.Molecule.from_smiles("CC(=O)Oc1ccccc1C(=O)O"),
    name="aspirin descriptors",
)

# 2. & 3. 대기 및 검색
result = workflow.result()  # 완료될 때까지 차단 (기본값: wait=True, poll_interval=5)
print(result.data)              # 원시 딕셔너리
print(result.descriptors["MW"]) # 180.042 정확한 질량; result.molecular_weight 속성 없음

장기 실행 워크플로우의 경우 스트리밍을 사용하세요:

for partial in workflow.stream_result(poll_interval=5):
    print(f"완료: {partial.complete}")  # 부울, 백분율 아님
    print(partial.data)

result() 대 stream_result()

패턴사용 시기소요 시간
result()전체 결과를 기다릴 수 있는 경우일반적으로 <5분
stream_result()진행 상황 피드백을 원하거나 조기 부분 결과가 필요한 경우>5분 또는 대화형 사용

지침: 서술자, pKa에는 result()를 사용하세요. 컨포머 검색, 도킹, 공접힘에는 stream_result()를 사용하세요.

결과 작업

Rowan의 API에는 편의 속성이 있는 타입이 지정된 워크플로우 결과 객체가 포함됩니다.

타입 속성 및 .data 사용

결과에는 두 가지 액세스 패턴이 있습니다:

  1. 편의 속성 (권장 우선): result.descriptors, result.best_pose, result.scores. 결과 클래스는 다릅니다: 컨포머 검색은 get_energies() 및 get_conformers() 메서드를 사용합니다.
  2. 원시 폴백: result.data — API의 원시 딕셔너리

예:

result = rowan.submit_descriptors_workflow(
    rowan.Molecule.from_smiles("CCO"),
    name="ethanol",
).result()

# 편의 속성 (모든 서술자 반환):
print(result.descriptors["MW"])       # 정확한/단일 동위원소 질량
print(result.descriptors["SLogP"])
print(result.descriptors["TopoPSA"])  # 일반적인 위상학적 PSA

# 원시 데이터 폴백:
print(result.data["descriptors"])

참고: DescriptorsResult에는 molecular_weight 속성이 없습니다. MW는 정확한/단일 동위원소 질량이며 평균 분자량이 아닙니다. TPSA는 3D 하전 표면 서술자입니다. 약물 유사성 규칙에 사용되는 일반적인 위상학적 극성 표면적에는 TopoPSA를 사용하세요.

캐시 무효화

일부 결과 속성은 지연 로드됩니다 (예: 컨포머 형상, 단백질 구조). 새로 고치려면:

result.clear_cache()
new_structures = result.get_conformers()  # ConformerSearchResult의 경우 다시 가져옴

프로젝트, 폴더 및 구성

중요한 캠페인의 경우 프로젝트와 폴더를 사용하여 작업을 체계적으로 유지하세요.

프로젝트

import rowan

# 프로젝트 생성
project = rowan.create_project(name="CDK2 리드 최적화")
rowan.set_project("CDK2 리드 최적화")

# 이후 모든 워크플로우는 이 프로젝트에 속함
wf = rowan.submit_descriptors_workflow(
    rowan.Molecule.from_smiles("CCO"), name="테스트 화합물"
)

# retrieve_project는 UUID를 받습니다. list_workflows는 parent_uuid로 범위를 지정합니다.
project = rowan.retrieve_project(project.uuid)
workflows = rowan.list_workflows(parent_uuid=project.uuid, size=50)

폴더

# 계층적 폴더 구조 생성
folder = rowan.create_folder(name="docking/batch_1/screening")

wf = rowan.submit_docking_workflow(
    # ... 도킹 매개변수 ...
    folder=folder,
    name="compound_001",
)

# 폴더의 워크플로우 나열
results = rowan.list_workflows(parent_uuid=folder.uuid)

워크플로우 결정 트리

pKa vs MacropKa

미시적 pKa를 사용해야 하는 경우:

  • 단일 이온화 그룹의 pKa가 필요한 경우
  • 산-염기 전이 및 양성자화 열역학에 관심이 있는 경우
  • 분자에 이온화 부위가 1~2개 있는 경우
  • 속도가 중요한 경우 (더 빠르고, 더 적은 크레딧)

MacropKa를 사용해야 하는 경우:

  • 생리학적 관련 범위 (예: 0–14)에서 pH 의존적 거동이 필요한 경우
  • pH에 따른 집계 전하 및 양성자화 상태 집단을 원하는 경우
  • 분자에 결합된 양성자화를 가진 여러 이온화 그룹이 있는 경우
  • 다른 pH에서 수용해도와 같은 다운스트림 속성이 필요한 경우

결정 예:

페놀 (pKa ~10): 미시적 pKa 사용
아민 (pKa ~9–10): 미시적 pKa 사용
다중 이온화 약물 (N, O, 산성 그룹): MacropKa 사용
GI pH 전반의 ADME 평가: MacropKa 사용

컨포머 검색 대 토토머 검색

컨포머 검색을 사용해야 하는 경우:

  • 단일 토토머 형태가 알려진 경우
  • 도킹, MD 또는 SAR 분석을 위한 다양한 3D 앙상블이 필요한 경우
  • 회전 가능한 결합이 화학 공간을 지배하는 경우

토토머 검색을 사용해야 하는 경우:

  • 토토머 평형이 불확실한 경우 (예: 헤테로사이클, 케토-에놀 시스템)
  • 모든 관련 양성자화 이성질체를 모델링해야 하는 경우
  • 다운스트림 계산 (도킹, pKa)이 토토머 형태에 의존하는 경우

결합 워크플로우:

# 1단계: 최상의 토토머 찾기
taut_wf = rowan.submit_tautomer_search_workflow(
    initial_molecule=rowan.Molecule.from_smiles("O=c1[nH]ccnc1"),
    name="imidazole tautomers",
)
best_taut = taut_wf.result().best_tautomer

# 2단계: 최상의 토토머에서 컨포머 생성
conf_wf = rowan.submit_conformer_search_workflow(
    initial_molecule=best_taut,
    name="imidazole conformers",
)

도킹 대 유사체 도킹 대 공접힘

워크플로우사용 시기입력출력
도킹단일 리간드, 알려진 포켓단백질 + SMILES + 포켓 좌표포즈, 점수, dG
유사체 도킹5–100개 이상의 관련 화합물단백질 + SMILES 목록 + 참조 리간드모든 포즈, 참조 정렬
단백질-리간드 공접힘서열 + 리간드, 결정 구조 없음단백질 서열 + SMILESML 예측 결합 복합체

단백질 유틸리티

단백질 업로드

# 로컬 PDB 파일에서
protein = rowan.upload_protein(
    name="egfr_kinase_domain",
    file_path="egfr_kinase.pdb",
)

# PDB 데이터베이스에서
protein_from_pdb = rowan.create_protein_from_pdb_id(
    name="CDK2 (1M17)",
    code="1M17",
)

# 이전에 업로드된 단백질 검색
protein = rowan.retrieve_protein("protein-uuid")

# 모든 단백질 나열
my_proteins = rowan.list_proteins()

단백질 준비 지침

  • 파일 형식: PDB, mmCIF (Rowan 자동 감지)
  • 물 분자: Rowan은 일반적으로 관련 물을 유지합니다. 원하는 경우 업로드 전에 벌크 물을 제거하세요.
  • 헤테로원자: 보조 인자, 이온 및 결합 리간드는 일반적으로 보존됩니다. 업로드 전에 원하지 않는 헤테로원자를 제거하세요.
  • 다중 사슬 단백질: 완벽하게 지원됩니다.
  • 해상도: NMR 구조, 상동성 모델 및 극저온 전자 현미경과 함께 작동합니다. 품질은 다운스트림 예측에 중요합니다.
  • 검증: Rowan은 PDB 구문을 검증합니다. 심각하게 잘못된 파일은 거부될 수 있습니다.

워크플로우 카탈로그

9가지 일반 워크플로우 범주(서술자, 미시적 pKa, MacropKa, 컨포머 검색, 토토머 검색, 도킹, 유사체 도킹, MSA 생성 및 단백질-리간드 공접힘) 각각에 대한 제출 코드 및 결과 형태와 함께 지원되는 모든 워크플로우 유형(핵심 모델링, 구조 기반 설계, 고급 계산 화학, 반응 화학, 고급 물성, 결합 자유 에너지, 서열 및 구조 생물학)의 전체 목록은 references/workflow_catalog.md에 있습니다.

배치 제출, 웹훅 및 비동기 작업

배치 제출/폴링/검색, 비차단 실행-확인 패턴, 웹훅 설정, 비밀 생성 및 교체, 페이로드 및 서명 확인(FastAPI 핸들러 포함) 및 웹훅 모범 사례는 references/batch_and_webhooks.md에 있습니다.

액세스, 가격 및 크레딧

무료 티어 한도, 워크플로우당 크레딧 소비 및 일반적인 비용 추정치는 references/access_and_pricing.md에 있습니다.

작업 예제 및 문제 해결

프로젝트 설정, 토토머, 유사체 시리즈 전반의 pKa, 결과 수집 및 도킹 후속 조치를 포함한 전체 리드 최적화 캠페인은 references/end_to_end_example.md에 있습니다.

일반적인 오류와 수정 방법 및 디버깅 팁은 references/troubleshooting.md에 있습니다.

권장 사용 패턴

  • 존재하는 경우 저수준 조립보다 Rowan 네이티브 워크플로우 선호
  • 중요한 캠페인(>5개 워크플로우)에는 프로젝트 및 폴더 사용
  • result()를 사용하여 완료될 때까지 차단 (기본값: wait=True, poll_interval=5)
  • 먼저 타입이 지정된 결과 속성을 사용하고, 매핑되지 않은 필드에 대해 .data로 폴백
  • 화합물 라이브러리 또는 유사체 시리즈에는 배치 제출 사용
  • 다단계 화학 캠페인을 위해 워크플로우 연결:
    • pKa → macropKa → 투과성 (ADME 평가)
    • 토토머 검색 → 도킹 → 포즈 분석 MD (포즈 정제)
    • MSA 생성 → 단백질-리간드 공접힘 (AI 구조 예측)
  • 장기 실행 캠페인(>50개 워크플로우) 또는 비동기 파이프라인에는 웹훅 사용
  • 대규모 컨포머/도킹 검색에 대한 대화형 피드백에는 스트리밍 사용

요약

분자 설계 작업에 클라우드 실행이 필요하고, 특히 소분자 모델링, 단백질, 도킹, ADME 예측 및 ML 구조 생성 전반에 걸친 통합 API와 일관된 결과 처리를 원할 때 Rowan을 사용하세요.

Rowan은 단순한 원격 화학 엔진이 아닌 분자 설계 워크플로우 플랫폼입니다. 인프라 확장, 결과 지속성 및 다단계 파이프라인 오케스트레이션을 처리하므로 사용자는 과학에 집중할 수 있습니다.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

관련 스킬