안녕하세요 호주타조입니다. 지금까지 생물정보학이 어떤것인지 알아보았다면, 이제는 생물정보학을 위해 알아야 하는 컴퓨터 언어는 무엇이 있는지 알아보도록 하겠습니다. 물론 수많은 컴퓨터 언어들이 사용되고 사용하고자 한다면 다른 언어들도 얼마든지 사용이 가능하지만 주류(?)의 언어들에 대해서만 언급할 예정입니다.
Background
우선 bioinformatics는 실험을 통해 나온 데이터를 이용하여 variant를 확인하거나, 원하는 sequence를 확인하거나, 통계학적 모델을 통해 규칙성을 파악하는 것을 목표로 하고있습니다. 따라서 bioinformatics를 위해서는 전제조건이 실험을 통해 얻은 데이터들이 있어야 한다는 것입니다.
실험을 통해 나올 수 있는 데이터는 여러 종류의 형태가 있지만, 현 포스팅에서 가장 먼저 다루고 싶은 것은 fasta file과 fastq file입니다. fasta file과 fastq file은 실험을 통해 얻은 해당 개체의 유전자 서열의 집합을 의미합니다. 얻을 수 있는 방법은 여러가지가 있지만 해당 포스팅의 주제와 조금 동떨어진 주제이므로 다음 포스팅에서 밝히도록 하겠습니다.
그렇다면 fasta file과 fastq file같은 종류의 데이터가 있다고 했을 때 가장 많이 사용되는 언어는 무엇일까요
리눅스 쉘(Linux Shell)
가장 먼저 사용되는 언어는 리눅스의 쉘 스크립트(Shell script)입니다. 우선 리눅스라는 말이 생소하실거라 예상됩니다. 보통 컴퓨터 언어라 함은 c,c++,java 같은 것이 먼저 언급되어야 하는데 갑자기 왠 리눅스인지도 생소하실수도 있습니다. 하지만 bioinformatics를 하면서 리눅스에서 실행되지 않는 환경은 거의 없다고 보셔도 무방합니다(부분적으로는 윈도우의 환경이 사용될 수 있으나 제한적입니다). 방금 말씀드린 fasta, fastq file의 경우에도 사람을 대상으로 했을 때 그 크기가 2G~10G이상 나가는 경우가 대부분입니다. 이렇게 용량이 큰 파일을 윈도우에서 작업하기 어려울 뿐더러 윈도우의 경우 데이터 처리에 있어 장점을 가지지 못하는 경우가 많기 때문입니다. 따라서 많은 bioinformatics를 하시는 분들은 리눅스를 기반으로 쉘스크립트 작성을 통해 생물학적 데이터 처리를 진행하고 있습니다. 따라서 다른 그 무엇보다 리눅스에 대해 먼저 익숙해지시는 것을 추천드립니다.
R
기본적인 프로세스는 리눅스의 쉘을 이용해 작업할 수있으나, 이후의 통계 모델의 적용이나, plot을 그리려할 때가 있습니다. 이때 많이 사용되는 컴퓨터 언어가 R입니다. 사실 R은 프로그래밍 언어로서 기능이 충분히 많고, 이를 코딩하여 수많은 툴(tool)이 개발되었지만, 통계처리에 가장 강점을 보이는 컴퓨터 언어입니다. 따라서 리눅스에 대해 익숙해지셨다면 R을 그 다음으로 배우는 것을 추천드립니다. R을 통해 기본적인 통계처리(t-test, annova 등)부터 머신러닝까지 다양한 패키지가 있습니다. 또한 생물학적 데이터 처리를 위한 여러 패키지들을 모아둔 집합체로서 bioconductor도 있으니 이를 활용하는 것도 생물정보학을 하시는데 충분한 도움이 될 것이라 생각합니다.
파이썬(Python)
현재 컴퓨터로 코딩하시는 분들에겐 가장 핫한 언어가 아닐까 싶습니다. 다른 언어(c,c++,java)들에 비해 배우기 쉽다는 장점, 패키지를 통해 넓어져가는 확장성, 이전엔 속도라는 단점이 있었으나 업데이트가 되면서 빨라진 속도 등 여러모로 대세의 언어로 뽑을만한 강점이 있습니다. 물론 bioinformatics 영역에서도 파이썬은 많이 쓰이는 언어입니다. biopython이라는 모듈을 통해서도 원하는대로 데이터를 처리할 수 있으며, 최근 생물정보학에서 부각되는 분야인 인공지능(AI)을 사용하기에도 좋은 컴퓨터 언어입니다. R과 병행해서 사용하실 경우 충분한 시너지효과가 있을 것이라 생각하는 언어 중 하나입니다.
bioinformatics에 이용되는 3가지 언어에 대해 알아봤습니다. 물론 더 많은 언어도 쓰이고 더 많은 개념(SQL 등)이 사용될 수 있지만, 제가 생각하는 가장 기본적인 언어는 다음 3가지라 생각합니다. 해당 언어를 배우면서 같이 bioinformatics를 배우시는 것이 가장 좋은 방법이라 생각합니다.
'생물정보학' 카테고리의 다른 글
유전체 데이터는 무엇일까? (0) | 2020.03.08 |
---|---|
생물정보학(Bioinformatics)이란? (1) | 2020.01.16 |