제2장
WIA-BIO-021 v1.0.0은 합성생물학 파츠(part)의 등록, 저장, 공유를 하나의 틀로 묶는 표준입니다. 파츠는 기능이 정의된 DNA/RNA 서열의 단위입니다. 이 표준은 iGEM, Addgene, SynBioHub 같은 기존 레지스트리와 상호운용하면서도 데이터 무결성과 재현성을 유지하는 것을 목표로 합니다. 이 장에서는 그 바탕이 되는 분류 체계, 식별자 규칙, 메타데이터 구조를 차례로 살펴봅니다.
표준의 철학은 홍익인간(弘益人間)입니다. 서열과 특성 데이터를 같은 형식으로 공유하면 연구자가 이미 검증된 파츠를 다시 만들지 않고 재사용할 수 있고, 이것이 전 세계적 협업의 전제가 된다는 입장입니다.
이후 절에서 쓰는 용어를 먼저 정리합니다.
명세는 파츠를 일곱 가지 기본 유형으로 분류하고, 유형마다 고유한 속성 목록을 정의합니다. 프로모터는 세기와 유도성을, RBS는 번역 개시율과 간격 요건을, 터미네이터는 종결 효율과 방향성을 기록하는 식입니다.
| 유형(코드) | 역할 | 명명 규칙 | 예시 |
|---|---|---|---|
| Promoter (PRO) | 전사 개시 | BBa_P[번호] 또는 BBa_J[번호] | BBa_J23100, BBa_R0011 |
| RBS | 번역 개시 | BBa_B[번호] | BBa_B0034, BBa_B0030 |
| CDS | 단백질 코딩 | BBa_C[번호] 또는 BBa_E[번호] | BBa_E0040(GFP), BBa_E1010(mRFP1) |
| Terminator (TER) | 전사 종결 | BBa_B[번호] 또는 BBa_T[번호] | BBa_B0015, BBa_B0010 |
| Plasmid Backbone (VEC) | 파츠 유지·증식 | BBa_pSB[번호] | BBa_pSB1C3, BBa_pSB1A3 |
| Composite (COM) | 다중 파츠 조립체 | BBa_K[번호] | BBa_K123456 |
| Regulatory (REG) | 결합 부위·오퍼레이터 | (명세에 규칙 없음) | - |
RBS와 터미네이터가 모두 BBa_B 접두를 쓸 수 있다는 점에 유의해야 합니다. 접두 문자만으로는 유형을 확정할 수 없으므로, 유형은 접두가 아니라 type 필드로 판단해야 합니다.
식별자는 BBa_[Type][Number] 형태를 따릅니다. 예를 들어 BBa_K123456은 K 계열 복합 파츠입니다. 레지스트리에 등록할 때 이 값은 partId가 되어 파츠를 유일하게 가리킵니다. 복합 파츠는 구성 파츠 목록, 조립 방법, 기대 기능, 검증 상태를 속성으로 가집니다. 따라서 식별자 하나로 그 파츠가 어떤 하위 파츠로 만들어졌는지 추적할 수 있습니다.
모든 파츠는 수명주기 상태를 가지며, 명세는 일곱 개의 상태와 두 글자 코드를 정의합니다.
| 상태 | 코드 | 설명 |
|---|---|---|
| Planning | PL | 파츠 설계 단계 |
| Ordered | OR | DNA 합성 주문됨 |
| Available | AV | 레지스트리에서 이용 가능 |
| Characterized | CH | 실험 데이터 확보 |
| Validated | VA | 독립적으로 검증됨 |
| Deprecated | DP | 대체되었거나 문제가 있음 |
| Deleted | DL | 레지스트리에서 제거됨 |
Characterized는 데이터가 있다는 뜻이고, Validated는 제3자가 확인했다는 뜻입니다. 두 상태를 구분해 두면 이용자가 데이터의 신뢰 수준을 가늠할 수 있습니다.
파츠는 생물안전 등급(Biosafety Level)으로도 분류되며, 모든 파츠가 이 값을 필수 메타데이터로 가집니다.
BSL-1: 최소 위험 (예: GFP, 표준 프로모터)
BSL-2: 중간 위험 (예: 포유류 세포 작업)
BSL-3: 심각한 위험 (예: 병원성 생물 유래 파츠)
BSL-4: 극도의 위험 (접근 제한)
등록 시점에 안전 등급을 의무적으로 적도록 한 것은 공유 레지스트리에서 위험 파츠가 다른 파츠와 구분 없이 유통되는 것을 막기 위한 장치입니다. BSL-4는 접근 제한과 함께 다룹니다.
등록되는 모든 파츠는 아래 항목을 반드시(MUST) 포함해야 합니다.
{
"partId": "BBa_K123456",
"partName": "Strong GFP Expression Device",
"type": "composite",
"subtype": "reporter",
"status": "available",
"safetyLevel": "BSL-1",
"author": {
"name": "Team iGEM 2024",
"affiliation": "MIT",
"email": "igem@mit.edu"
},
"created": "2024-06-15T10:30:00Z",
"modified": "2024-08-20T14:45:00Z",
"version": "1.2.0",
"license": "CC-BY-4.0"
}
작성자 정보가 이름, 소속, 이메일로 구조화되어 있고, 생성·수정 시각이 UTC 타임스탬프로 남는다는 점이 중요합니다. version과 license가 필수이므로 어떤 파츠든 개정 이력과 재사용 조건을 함께 확인할 수 있습니다.
서열은 별도 객체로 기술합니다. 서열 문자열 외에 길이, 저장 형식, 서열 종류, 체크섬, 그리고 서열 위의 기능 영역(features)을 담습니다.
{
"sequence": {
"nucleotides": "ATGCGTAAAGGAGAAGAACTTTTC...",
"length": 1234,
"format": "raw|fasta|genbank|sbol",
"sequenceType": "dna|rna|protein",
"checksum": "sha256:abc123...",
"features": [
{ "type": "promoter", "start": 1, "end": 35, "strand": "+", "name": "J23100" },
{ "type": "RBS", "start": 40, "end": 52, "strand": "+", "name": "B0034" }
]
}
}
format은 raw, fasta, genbank, sbol 중 하나이며 sequenceType은 dna, rna, protein 중 하나입니다. features는 시작·끝 좌표와 가닥(strand) 방향을 가지므로, 복합 파츠 안에서 프로모터와 RBS가 어디에 놓였는지 좌표로 확인할 수 있습니다. 체크섬은 sha256 접두를 붙인 형태로, 서열이 전송·변환 과정에서 바뀌지 않았는지 검증하는 데 씁니다.
같은 서열이라도 숙주와 배양 조건에 따라 거동이 달라집니다. 그래서 명세는 생물학적 맥락을 별도 블록으로 기록하게 합니다.
organism(예: Escherichia coli K12)과 strain(예: DH5α)을 적습니다.growthConditions에 온도, 배지, 항생제, 유도제를 기록합니다.expression에 발현 숙주, 세포 내 구획, 태그(예: His6), 융합 파트너를 적습니다.문서화 블록은 설명(description), 설계 노트(designNotes), 논문 참고문헌(DOI, 제목, 저자, 연도), 외부 데이터베이스 링크(GenBank 접근 번호 등)로 구성됩니다. 외부 링크 덕분에 레지스트리 항목에서 원 서열 자료로 곧바로 이동할 수 있습니다.
데이터 모델은 TypeScript SDK(@wia/bio-021)에서 registerPart, searchParts, getPartDetails, updatePartCharacterization 함수로 드러납니다. 등록 호출은 앞서 본 필수 메타데이터와 거의 같은 항목을 받습니다.
const part = await registerPart({
partId: 'BBa_K123456',
name: 'Strong Constitutive Promoter',
type: 'promoter',
sequence: 'TTGACAGCTAGCTCAGTCCTAGGTATAATGCTAGC',
author: 'Team iGEM 2024',
safetyLevel: 'BSL-1',
license: 'CC-BY-4.0'
});
const results = await searchParts({
type: 'promoter',
organism: 'E. coli',
strength: 'high'
});
검색 조건이 유형, 숙주, 세기처럼 분류 체계의 속성과 일치한다는 점에 주목할 만합니다. 명령줄 도구 wia-bio-021도 같은 모델을 노출합니다.
wia-bio-021 register --id BBa_K123456 --type promoter --sequence-file promoter.fasta
wia-bio-021 export --id BBa_K123456 --format sbol --output part.xml
wia-bio-021 import --file plasmid.gb --format genbank
wia-bio-021 characterize --id BBa_K123456 --strength 1500 --growth-rate 0.8
SBOL로 내보내고 GenBank 파일을 가져오는 명령이 따로 있다는 것은 SBOL과 GenBank 호환이 이 표준의 핵심 요건임을 보여 줍니다.
명세 본문은 열 개 절로 구성됩니다. 앞의 여섯 절(소개, 파츠 분류, 메타데이터, 서열 형식, SBOL 준수, 특성 데이터)이 이 장에서 다룬 데이터 형식의 골격이고, 나머지 네 절이 운영 규칙입니다.
범위는 BioBrick 파츠뿐 아니라 BioBrick이 아닌 파츠의 분류까지 포함합니다. 저장 형식은 SBOL을 기준으로 하여 상호운용성을 최대한 확보합니다.
이 장에서는 WIA-BIO-021이 파츠를 일곱 유형으로 나누고, BBa_[Type][Number] 식별자와 일곱 단계의 상태 코드로 관리하며, BSL-1부터 BSL-4까지의 안전 등급을 필수 항목으로 붙인다는 점을 확인했습니다. 메타데이터는 필수 항목, 서열(체크섬과 feature 좌표 포함), 생물학적 맥락, 문서화의 네 블록으로 나뉩니다. 이 블록들이 SDK 함수와 CLI 명령의 입출력이 되고, SBOL과 GenBank 변환을 통해 외부 레지스트리와 이어집니다.
다음 장에서는 이 데이터 모델을 이용하는 쪽으로 넘어갑니다. 파츠를 실제로 등록하고 검색하며 특성 데이터를 갱신할 때 어떤 정보가 오가는지, 그리고 BioBrick 조립 표준과 어떻게 연결되는지를 살펴보겠습니다.