크레이그 벤터 박사의 논문(1파트 참조)이 발표된 지 일주일 뒤인 2010년 4월 1일, 사이언스에는 또 한편의 합성생물학 논문1)이 실렸다. 궁금한 마음에 논문을 찾아본 기자는 눈을 의심했다. 아주 익숙한 기호들이 가득했기 때문이다. AND, OR, NOT게이트까지, 컴퓨터 소스코드와 전자회로를 구성하는 기호였다(기자는 컴퓨터공학과 출신이다). 논문을 잘못 찾았나 확인했지만, 분명 생물학 논문이었다. 논문의 저자인 미국 MIT 크리스토퍼 보이트 교수팀은 유전자를 설계해주는 프로그래밍 언어 ‘첼로’를 개발했다고 밝혔다. 그래서 전혀 어울릴 것 같지 않은 전자회로와 유전정보가 한 논문에 이름을 올리게 된 것이다.2)
첼로는 전자회로를 설계할 때 쓰는 언어인 ‘베릴로그’를 기반으로 만들어졌다. 논문에 나온 소스코드 자체는 간단하다(오른쪽 사진). ‘이 정도면 나도 할 수 있겠는데?’라는 생각에 기자가 무턱대고 유전자 설계에 도전해보기로 했다.![](https://images.dongascience.com/uploads/article/Contents/201604/S201605N43_8.jpg)
코딩하고 유전자 부품 설계하면 끝!
연구팀이 만든 첼로 홈페이지3)는 사용자가 직접 첼로를 이용할 수 있도록 프로그램을 제공하고 있었다. 첼로를 이용하기 위해선 우선 전자회로에 대한 이해가 필요하다. 전자회로는 논리게이트로 구성돼 있다. 논리게이트는 입력 값과 출력 값의 관계를 정의하는 것으로, AND게이트는 입력 값 두 개가 모두 1일 때만 1을 출력하고 OR게이트는 입력 값이 모두 0일 때를 제외하고 항상 1을 출력한다. 이 관계를 정리한 것이 논리게이트의 진리표다.
첫 관문은 ‘코딩’. C언어와 유사한 문법을 사용하기는 하지만 베릴로그는 처음 사용해보는 언어였다. 찬찬히 논문의 코드를 보다 보니 금세 코드의 규칙이 보인다. 입력 값(input)과 출력 값(output)을 선언하고 입력 값이 0 혹은 1일 때 모든 경우의 수에 대해 출력 값을 지정해주기만 하면 된다. 예컨대 input A, B, C가 모두 1일 때만 output이 1인 전자회로를 만드려면 000, 001, 010,011… 8개의 경우의 수 중 111인 경우에만 결과 값이 1을 갖도록 지정해준다. 코딩이 끝나면 입력 값과 출력 값에 해당하는 유전자 ‘부품’을 선택해야 한다. pTac, pBAD 등 대장균의 유전자에서 주로 발견되는 프로모터 서열이 부품 역할을 하기 위해 준비돼 있다. 이들 부품을 선택하면 정보와 함께 유전자서열이 쭉 뜬다. 논문에 나와 있는 부품을 선택하고 컴파일(프로그램이 정상적으로 돌아가는지 확인해 보는 작업)을 눌렀다.
결과는? 실패였다(컴퓨터공학과 체면이 말이 아니다). 아무리 이리 보고 저리 봐도 코드에는 문제가 없었다. 부품을 잘못 선택한 게 분명하다. 서로 연결이 되지 않는 유전자서열을 이어 붙이면 회로로써 기능하지 못한다. 다른 부품을 선택해서 다시 컴파일하는 작업을 두세 번 하고나니, 드디어 성공이라는 말이 떴다. 화면에는 기자가 코딩한 ‘세 개의 입력 값이 모두 1일 때만 1을 출력하는’ 전자회로와 그에 대응하는 유전자회로, 회로의 전체 염기서열 등을 모두 확인할 수 있었다.
![](https://images.dongascience.com/uploads/article/Contents/201604/S201605N43_13.jpg)
▲ 전자회로에서 유전자회로로
기자가 코딩한 전자회로(①)와 그에 맞는 유전자회로(②)다. 같은 역할을 하는 논리게이트와 유전자 부품은 같은 색으로 표현했다. 유전자회로 아래 숫자 1은 발현을, 0은 억제를 의미한다. 보라색 NOR게이트는 입력 값이 모두 0일 때만 1을 출력한다. 보라색 유전자 역시 노란색과 파란색 유전자 부품의 발현이 모두 억제(0)돼야 발현될 수 있다. 입력 값 A가 발현(1)되면 노란색 유전자가 발현돼 보라색의 발현을 막기(0)때문에 노란색 유전자는 입력 값을 반대로 바꿔주는 NOT게이트와 같은 역할을 한다고 할 수 있다.
단백질로 만든 유전자회로
가장 신기한 건 역시 유전자회로다. 첼로는 사용자가 설계한 전자회로에 대응하는 유전자회로를 알아서 만들어준다. 어떤 원리로 유전자가 논리게이트의 역할을 할 수 있는 걸까. 두 회로를 뚫어져라 쳐다보니 여기도 일종의 ‘규칙’이 있다는 사실을 알 수 있었다. 유전자회로에서는 유전자가 활성화되면 1, 안되면 0의 값을 갖는다. 유전자의 활성을 디지털 신호로 변환한 것이다. 유전자 발현에 의해 활성화된 단백질은 또 다른 유전자의 발현을 촉진(1)하거나 억제(0)하는 신호가 된다. 예컨대 두 개의 도움단백질 1, 2가 모두 있어야 전사를 시작하는 유전자 X가 있다고 해보자. X는 논리게이트 중 AND게이트에 해당한다. 발현을 촉진하는 도움단백질이 논리게이트의 입력 값인 셈이다. 여기서 끝이 아니다. 유전자 X가 발현돼 만들어진 단백질은 또 다른 유전자를 활성화시키는 생체신호가 된다. AND게이트를 지나 다음 논리게이트의 입력 값이 되는 전기신호와 같다. 이런 유전자 부품들을 연결하면 하나의 유전자회로가 된다. 보이트 교수팀은 서로 다른 기능을 하는 유전자회로 60개를 설계했고, 이중 45개는 살아있는 세포에서 정확하게 작동하는 것을 확인했다.
이 45개의 회로만 잘 이용하면 사용자는 원하는 환경에서만 특정 대사를 하는 생물을 만들 수 있다. 연구팀은 “산소 농도, 당 농도, 온도, pH와 같은 환경요소를 입력 값으로 설정할 수 있다는 점에서 첼로는 응용 범위가 매우 넓다”고 밝혔다. 입력 값을 받는 건 환경요소에 따라 발현이 결정되는 유전자다. 예컨대 산소가 높고(input A=1), pH가 높고(input B=1), 온도가 높을 때(input C=1)에만 에탄올을 만드는 대장균 유전자를 설계할 수 있다.
생물학을 몰라도 유전자를 설계할 수 있다
그렇다면 첼로는 합성생물학에 어떤 변화를 가져올까. 기자는 대학 시절 전자회로를 설계하는 과제를 하다가 고생한 적이 있다. 손으로 일일이 논리게이트를 조합해 가며 하나의 회로를 완성하는 데 반나절이 꼬박 걸리곤 했다.
베릴로그 같은 설계 프로그램을 이용하면 10분 만에 해결될 과제였다. 첼로가 합성생물학에 가져올 변화도 비슷하다. 간단한 생체회로 하나를 설계할 때도 유전자 간의 관계 파악은 물론이거니와 각각의 결과로 발생하는 단백질의 구조까지, 신경 써야 할 것이 많다. 이 설계를 컴퓨터가 알아서 해준다. 방두희 연세대 화학과 교수는 “첼로는 정확한 생체회로를 설계하고, 이에 사용되는 시간을 획기적으로 줄여줄 것”이라고 평했다.
나아가 생물학을 잘 모르는 사람도 첼로를 이용하면 유전자를 쉽게 설계할 수 있다. 합성생물학의 학문 장벽을 낮출 수 있다는 의미다. 컴퓨터의 하드웨어를 몰라도 훌륭한 소프트웨어를 만들 수 있고 컴퓨터의 원리를 잘 몰라도 앱을 개발할 수 있는 것처럼, 합성생물학도 컴퓨터처럼 분업화된 방향으로 나아갈 것이라는 게 전문가들의 공통된 전망이다.
도약의 기회를 제공했지만, 한 가지 문제가 있다. 현재 합성생물학에 이용되는 유전자부품은 표준화4)된 것들이다. ‘모든’ 생물종이 동일하게 가지고 있는 유전자를 선별해 기능에 맞춰 부품화했다는 뜻이다. 하지만 생물의 특성상 종마다 ‘주로’ 사용하는 유전자 서열이 조금씩 다르다. 동일한 아미노산을 만드는 유전자 정보(코돈)라 하더라도 종마다 주로 사용하는 코돈이 달라 그 빈도를 맞춰주는 작업이 필요하다. 예컨대 아미노산 중 아르기닌의 정보를 가진 DNA는 네 가지다(CGT, CGC, CGA, CGG). 이 정보는 대장균이나 사람이나 동일하지만 대장균은 이 중 CGT를, 사람은 CGC를 많이 사용하는 등 빈도의 차이가 있다. 최인걸 고려대 생명공학부 교수는 “빈도를 조절하지 않으면 최종산물의 양이 달라질 수 있기 때문에 신호 전달에 문제가 생길 수 있다”고 말했다. 즉, 사람의 유전자를 대장균에서 쓰고자 한다면 대장균의 생체 시스템이 좀 더 정확하게 신호를 받아들일 수 있도록 CGC를 CGT로 변환하는 최적화 작업이 필요하다.
이런 이유로 아직 첼로를 모든 종에 적용하지는 못한다. 연구팀은 “첼로는 현재 대장균에 최적화돼 있는 언어”라며 “각종 박테리아와 인간의 소화관에서 주로 발견되는 슈도모나스균, 맥주효모균까지 적용할 수 있도록 확장하고 있다”고 밝혔다.
![](https://images.dongascience.com/uploads/article/Contents/201604/S201605N43_12.jpg)
첼로는 전자회로를 설계할 때 쓰는 언어인 ‘베릴로그’를 기반으로 만들어졌다. 논문에 나온 소스코드 자체는 간단하다(오른쪽 사진). ‘이 정도면 나도 할 수 있겠는데?’라는 생각에 기자가 무턱대고 유전자 설계에 도전해보기로 했다.
![](https://images.dongascience.com/uploads/article/Contents/201604/S201605N43_8.jpg)
코딩하고 유전자 부품 설계하면 끝!
연구팀이 만든 첼로 홈페이지3)는 사용자가 직접 첼로를 이용할 수 있도록 프로그램을 제공하고 있었다. 첼로를 이용하기 위해선 우선 전자회로에 대한 이해가 필요하다. 전자회로는 논리게이트로 구성돼 있다. 논리게이트는 입력 값과 출력 값의 관계를 정의하는 것으로, AND게이트는 입력 값 두 개가 모두 1일 때만 1을 출력하고 OR게이트는 입력 값이 모두 0일 때를 제외하고 항상 1을 출력한다. 이 관계를 정리한 것이 논리게이트의 진리표다.
첫 관문은 ‘코딩’. C언어와 유사한 문법을 사용하기는 하지만 베릴로그는 처음 사용해보는 언어였다. 찬찬히 논문의 코드를 보다 보니 금세 코드의 규칙이 보인다. 입력 값(input)과 출력 값(output)을 선언하고 입력 값이 0 혹은 1일 때 모든 경우의 수에 대해 출력 값을 지정해주기만 하면 된다. 예컨대 input A, B, C가 모두 1일 때만 output이 1인 전자회로를 만드려면 000, 001, 010,011… 8개의 경우의 수 중 111인 경우에만 결과 값이 1을 갖도록 지정해준다. 코딩이 끝나면 입력 값과 출력 값에 해당하는 유전자 ‘부품’을 선택해야 한다. pTac, pBAD 등 대장균의 유전자에서 주로 발견되는 프로모터 서열이 부품 역할을 하기 위해 준비돼 있다. 이들 부품을 선택하면 정보와 함께 유전자서열이 쭉 뜬다. 논문에 나와 있는 부품을 선택하고 컴파일(프로그램이 정상적으로 돌아가는지 확인해 보는 작업)을 눌렀다.
결과는? 실패였다(컴퓨터공학과 체면이 말이 아니다). 아무리 이리 보고 저리 봐도 코드에는 문제가 없었다. 부품을 잘못 선택한 게 분명하다. 서로 연결이 되지 않는 유전자서열을 이어 붙이면 회로로써 기능하지 못한다. 다른 부품을 선택해서 다시 컴파일하는 작업을 두세 번 하고나니, 드디어 성공이라는 말이 떴다. 화면에는 기자가 코딩한 ‘세 개의 입력 값이 모두 1일 때만 1을 출력하는’ 전자회로와 그에 대응하는 유전자회로, 회로의 전체 염기서열 등을 모두 확인할 수 있었다.
![](https://images.dongascience.com/uploads/article/Contents/201604/S201605N43_13.jpg)
▲ 전자회로에서 유전자회로로
기자가 코딩한 전자회로(①)와 그에 맞는 유전자회로(②)다. 같은 역할을 하는 논리게이트와 유전자 부품은 같은 색으로 표현했다. 유전자회로 아래 숫자 1은 발현을, 0은 억제를 의미한다. 보라색 NOR게이트는 입력 값이 모두 0일 때만 1을 출력한다. 보라색 유전자 역시 노란색과 파란색 유전자 부품의 발현이 모두 억제(0)돼야 발현될 수 있다. 입력 값 A가 발현(1)되면 노란색 유전자가 발현돼 보라색의 발현을 막기(0)때문에 노란색 유전자는 입력 값을 반대로 바꿔주는 NOT게이트와 같은 역할을 한다고 할 수 있다.
단백질로 만든 유전자회로
가장 신기한 건 역시 유전자회로다. 첼로는 사용자가 설계한 전자회로에 대응하는 유전자회로를 알아서 만들어준다. 어떤 원리로 유전자가 논리게이트의 역할을 할 수 있는 걸까. 두 회로를 뚫어져라 쳐다보니 여기도 일종의 ‘규칙’이 있다는 사실을 알 수 있었다. 유전자회로에서는 유전자가 활성화되면 1, 안되면 0의 값을 갖는다. 유전자의 활성을 디지털 신호로 변환한 것이다. 유전자 발현에 의해 활성화된 단백질은 또 다른 유전자의 발현을 촉진(1)하거나 억제(0)하는 신호가 된다. 예컨대 두 개의 도움단백질 1, 2가 모두 있어야 전사를 시작하는 유전자 X가 있다고 해보자. X는 논리게이트 중 AND게이트에 해당한다. 발현을 촉진하는 도움단백질이 논리게이트의 입력 값인 셈이다. 여기서 끝이 아니다. 유전자 X가 발현돼 만들어진 단백질은 또 다른 유전자를 활성화시키는 생체신호가 된다. AND게이트를 지나 다음 논리게이트의 입력 값이 되는 전기신호와 같다. 이런 유전자 부품들을 연결하면 하나의 유전자회로가 된다. 보이트 교수팀은 서로 다른 기능을 하는 유전자회로 60개를 설계했고, 이중 45개는 살아있는 세포에서 정확하게 작동하는 것을 확인했다.
이 45개의 회로만 잘 이용하면 사용자는 원하는 환경에서만 특정 대사를 하는 생물을 만들 수 있다. 연구팀은 “산소 농도, 당 농도, 온도, pH와 같은 환경요소를 입력 값으로 설정할 수 있다는 점에서 첼로는 응용 범위가 매우 넓다”고 밝혔다. 입력 값을 받는 건 환경요소에 따라 발현이 결정되는 유전자다. 예컨대 산소가 높고(input A=1), pH가 높고(input B=1), 온도가 높을 때(input C=1)에만 에탄올을 만드는 대장균 유전자를 설계할 수 있다.
생물학을 몰라도 유전자를 설계할 수 있다
그렇다면 첼로는 합성생물학에 어떤 변화를 가져올까. 기자는 대학 시절 전자회로를 설계하는 과제를 하다가 고생한 적이 있다. 손으로 일일이 논리게이트를 조합해 가며 하나의 회로를 완성하는 데 반나절이 꼬박 걸리곤 했다.
베릴로그 같은 설계 프로그램을 이용하면 10분 만에 해결될 과제였다. 첼로가 합성생물학에 가져올 변화도 비슷하다. 간단한 생체회로 하나를 설계할 때도 유전자 간의 관계 파악은 물론이거니와 각각의 결과로 발생하는 단백질의 구조까지, 신경 써야 할 것이 많다. 이 설계를 컴퓨터가 알아서 해준다. 방두희 연세대 화학과 교수는 “첼로는 정확한 생체회로를 설계하고, 이에 사용되는 시간을 획기적으로 줄여줄 것”이라고 평했다.
나아가 생물학을 잘 모르는 사람도 첼로를 이용하면 유전자를 쉽게 설계할 수 있다. 합성생물학의 학문 장벽을 낮출 수 있다는 의미다. 컴퓨터의 하드웨어를 몰라도 훌륭한 소프트웨어를 만들 수 있고 컴퓨터의 원리를 잘 몰라도 앱을 개발할 수 있는 것처럼, 합성생물학도 컴퓨터처럼 분업화된 방향으로 나아갈 것이라는 게 전문가들의 공통된 전망이다.
도약의 기회를 제공했지만, 한 가지 문제가 있다. 현재 합성생물학에 이용되는 유전자부품은 표준화4)된 것들이다. ‘모든’ 생물종이 동일하게 가지고 있는 유전자를 선별해 기능에 맞춰 부품화했다는 뜻이다. 하지만 생물의 특성상 종마다 ‘주로’ 사용하는 유전자 서열이 조금씩 다르다. 동일한 아미노산을 만드는 유전자 정보(코돈)라 하더라도 종마다 주로 사용하는 코돈이 달라 그 빈도를 맞춰주는 작업이 필요하다. 예컨대 아미노산 중 아르기닌의 정보를 가진 DNA는 네 가지다(CGT, CGC, CGA, CGG). 이 정보는 대장균이나 사람이나 동일하지만 대장균은 이 중 CGT를, 사람은 CGC를 많이 사용하는 등 빈도의 차이가 있다. 최인걸 고려대 생명공학부 교수는 “빈도를 조절하지 않으면 최종산물의 양이 달라질 수 있기 때문에 신호 전달에 문제가 생길 수 있다”고 말했다. 즉, 사람의 유전자를 대장균에서 쓰고자 한다면 대장균의 생체 시스템이 좀 더 정확하게 신호를 받아들일 수 있도록 CGC를 CGT로 변환하는 최적화 작업이 필요하다.
이런 이유로 아직 첼로를 모든 종에 적용하지는 못한다. 연구팀은 “첼로는 현재 대장균에 최적화돼 있는 언어”라며 “각종 박테리아와 인간의 소화관에서 주로 발견되는 슈도모나스균, 맥주효모균까지 적용할 수 있도록 확장하고 있다”고 밝혔다.
![](https://images.dongascience.com/uploads/article/Contents/201604/S201605N43_11.jpg)
![](https://images.dongascience.com/uploads/article/Contents/201604/S201605N43_12.jpg)