Rosalind란? 생물정보학 알고리즘 문제 풀기

반응형

그림 1) Rosalind logo

안녕하세요

이번엔 생물정보학 프로그래밍 문제를 풀고 채점을 받을 수 있는 사이트 Rosalind에 대해 알아보겠습니다.

 

-목차-

1. Rosalind 란?

2. 문제를 풀어 제출해보자!

3. 알고리즘 분류

4. 랭킹 시스템

 

* 깃허브에 Rosalind 문제와 풀이(python)를 한글로 작성하고 있습니다. 필요하신 분들은 참고해주세요!! :)

 

netsus/Rosalind

Bioinformatics algorithm problem solving. Contribute to netsus/Rosalind development by creating an account on GitHub.

github.com

 

1. Rosalind 란?

Rosalind는 샌디에고 캘리포니아 대학교(University of California at San Diego)와 러시아 과학 아카데미, 그리고 상트 페테르부르크 아카데믹 대학교(Saint Petersburg Academic University) 간의 공동 프로젝트입니다.

 

현재 총 285개의 알고리즘 문제가 있습니다. 카테고리별 문제 개수는 아래의 표와 같습니다.

Rosalind의 알고리즘 문제 Category와 문제수

각 카테고리에 어떤 문제들이 있는지는 아래에서 자세히 알아보겠습니다.

Rosalind는 현재 존재하는 문제들을 풀 수는 있지만, 새로운 문제가 추가되지는 않는 상태입니다. 그래서 오히려 현재 존재하는 문제들로 기본기를 쌓기에는 더 좋다고 생각합니다.

 

2. 문제를 풀어 제출해보자!

그럼 Rosalind 사이트로 가서 문제를 어떻게 풀어서 제출하는지 보도록 하겠습니다.

1) 사이트 접속

Rosalind(http://rosalind.info/)에 접속하면 아래와 같은 화면이 나옵니다.

Rosalind 메인 페이지

2) 문제 선택

INI1(Installing Python) 문제를 클릭하고 들어가 보겠습니다.

아래의 그림처럼 문제 Problem이 영어로 나옵니다. 문제를 보면 Python을 설치하고, Download dataset을 클릭한 뒤에, import this를 실행했을 때 결과를 제출하라고 합니다. 하지만, 다른 보통 문제들은 Problem과 예시 Input예시 Output이 나오게 됩니다. 

 Rosalind INI1번 Problem

3) Download dataset 클릭

Download dataset을 클릭하면 아래와 같이 화면이 바뀌면서 텍스트 파일이 다운로드됩니다. 이번 문제는 튜토리얼 문제라 텍스트 파일에는 아래와 같이 import this를 실행하고 뭐가 출력되는지 보라고 힌트가 나옵니다. 

INI1 Download dataset 텍스트 파일

하지만, 보통 문제들은 알고리즘의 Input이 되는 Dataset이 나오게 됩니다. txt 파일의 내용을 Input으로 문제에서 설명한 알고리즘을 작성하여, 프로그래밍의 결과로 출력된 Output을 복사하여 아래 빈칸에 붙여넣기한 뒤, Submit을 클릭하시면 채점되게 됩니다. 

Download dataset 이후

4) Download 한 dataset을 프로그래밍의 Input으로 넣기

이번 문제는 Download dataset이 설명이기 때문에, python에서 import this를 실행해보겠습니다.

import this

* 코드 설명: import this는 python에서 프로그래밍의 아름다움에 대한 원칙을 작성해놓은 선언문입니다. python을 깊이 있게 사용하다 보면 pythonic 하다는 표현을 만나곤 합니다. pythonic 하다는 것은 코드가 간결하고 명료하며 아름답다는 것입니다. pythonic 한 것에 대한 철학적인 의미를 담고 있는 선언문이라고 보면 되겠습니다.

import this

위의 결과를 복사해서, Rosalind 문제 페이지의 빈칸에 붙여 넣기를 해줍니다.

Answer submission

그 후, Submit을 눌러주면 아래와 같은 화면이 나오며 문제를 맞혔다고 알려줍니다.

correct

3. 알고리즘 분류

알고리즘 문제가 있던 페이지에서, 아래 그림처럼 오른쪽을 클릭해주면 알고리즘 분류 Category가 나오게 됩니다.

Category

카테고리는 크게 5가지로 나뉩니다.

1) Python Village(6문제) 

 python의 기초를 묻는 6가지 문제가 나옵니다. python의 자료형을 알고 있는지 간단히 사용할 수 있는지를 묻습니다.

* 풀이를 github에 모아두었습니다. 참고하세요

 

netsus/Rosalind

Bioinformatics algorithm problem solving. Contribute to netsus/Rosalind development by creating an account on GitHub.

github.com

2) Bioinformatics Stronghold(105문제)

 DNA 서열과 RNA 서열 아미노산 서열을 자유롭게 코드를 통해 다룰 수 있는지를 묻습니다. 또한, 생물정보학의 기초적인 파일 포맷 FASTA파일을 읽어와 다룰 수 있는지, 시퀀스 정렬 관련, 매트릭스 관련, 계통수 관련 등등 생물정보학과 관련된 알고리즘 능력을 키울 수 있는 다양한 문제들이 나옵니다.

 

3) Bioinformatics Amory(16문제)

 Bioinformatics의 기본적인 파일 포맷들(FASTQ, BAM, VCF 등)을 읽고 알고리즘을 적용할 수 있는지 묻는 문제들과 GenBank 등의 데이터 베이스에 접근하여 정보를 가공할 수 있는지 등의 문제들이 나옵니다.

 

4) Bioinformatics Textbook Track(124문제) 

 Bioinformatics Stronghold 문제의 응용 버전이라고 보면 됩니다. DNA, RNA 뿐만아니라 일반적인 문자열 서열들로부터 통계치들을 구할 수 있는 문제들도 출제됩니다.

 

5) Algorithmic Heights(34문제)

 컴퓨터 공학적인 알고리즘 문제들이 나옵니다. 자료구조나 알고리즘 강의를 들으면 배우는 기초적인 과정들의 문제들이 나온다고 보면됩니다.

 

4. 랭킹 시스템

1) TOP 100

Rosalind는 전 세계에서 많은 사람들이 풀어서 Top 100 랭킹을 봐도 정말 다양한 국적의 사람들이 문제를 풀었음을 볼 수 있습니다. 현재 전체 문제는 285문 제이지만, 문제가 줄어든 건지 Top 100에는 319문제가 1등입니다.

27위를 보면 현재 존재하는 285문제를 모두 푼 한국 분도 계시는 걸 볼 수 있습니다.

Top 100

2) 한국 랭킹

한국 랭킹입니다. 3위의 Changwon Keum님으로 현재 3 billion회사의 대표로 계신 분입니다. 또한 10위의 Kenneth Joohyun Han님은 바이오 파이썬을 저서로 쓰시고, 생물정보학자의 블로그를 운영 중인 분입니다. 뿐만 아니라, 제가 모르는 많은 분들이 생물정보학계에서 열심히 일하고 있는 것으로 보입니다.

 

koread Ranking

 

이번 시간엔 Rosalind라는 생물정보학 알고리즘 문제풀이 사이트에 대해 알아보았습니다.

다음에 더 재미있는 글로 찾아오겠습니다.
읽어주셔서 감사합니다.

 

Reference)

그림 1) : http://compeau.cbd.cmu.edu/rosalindlogo/

반응형

댓글

Designed by JB FACTORY