cog_assignment
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cog_assignment [2019/03/14 08:03] – [COGNITOR 실행] hyjeong | cog_assignment [2021/08/10 12:51] (current) – [Functional classification] hyjeong | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== NCBI COG software를 이용한 query protein의 COG assignment 방법 ====== | ====== NCBI COG software를 이용한 query protein의 COG assignment 방법 ====== | ||
- | COG(clusters of orthologous groups)의 개요는 블로그에 포스팅한 [[http:// | + | COG(clusters of orthologous groups)의 개요는 블로그에 포스팅한 [[http:// |
- | NCBI가 공개한 COG software는 직접 COG를 만드는 것 외에도 기존의 COG 체계에 대해 query protein을 검색하여 알맞은 COG 정보를 부여하는 기능을 제공한다. 그런데 설명 파일이 다소 난해하여 한동안 쓸 생각을 하지 않고 있다가 약간의 시행착오를 거쳐서 성공에 이르렀기에 설명 자료를 남긴다. 본 페이지에서는 COG software에 포함된 Readme.2012.04.txt 파일의 **3.2 COGnitor** 섹션만을 실제 실행에 옮기면서 현실에 맞게 작성한 것이다. 나만의 COG를 만들고자 한다면 | + | NCBI가 공개한 COG software는 직접 COG를 만드는 것 외에도 기존의 COG 체계에 대해 query protein을 검색하여 알맞은 COG 정보를 부여하는 기능을 제공한다. 그런데 설명 파일이 다소 난해하여 한동안 쓸 생각을 하지 않고 있다가 약간의 시행착오를 거쳐서 성공에 이르렀기에 설명 자료를 남긴다. 본 페이지에서는 COG software에 포함된 Readme.2012.04.txt 파일의 **3.2 COGnitor** 섹션만을 실제 실행에 옮기면서 현실에 맞게 작성한 것이다. 나만의 COG를 만들고자 한다면 |
===== 자료 다운로드 ===== | ===== 자료 다운로드 ===== | ||
* [NCBI의 COG 공식 웹사이트] https:// | * [NCBI의 COG 공식 웹사이트] https:// | ||
Line 10: | Line 10: | ||
* [소프트웨어 다운로드] [[ftp:// | * [소프트웨어 다운로드] [[ftp:// | ||
* [데이터 파일 위치(로컬)] / | * [데이터 파일 위치(로컬)] / | ||
+ | * [COG 2020] https:// | ||
개정판에는 총 711개의 유전체에서 예측한 단백질 서열을 대상으로 작성한 4631개의 COG가 수록되었다. 2003년판의 4873 COG 중 242개가 제거되었는데(주로 yeast), 새로 추가된 것은 없다. Functional classification 체계가 더욱 세분화되고, | 개정판에는 총 711개의 유전체에서 예측한 단백질 서열을 대상으로 작성한 4631개의 COG가 수록되었다. 2003년판의 4873 COG 중 242개가 제거되었는데(주로 yeast), 새로 추가된 것은 없다. Functional classification 체계가 더욱 세분화되고, | ||
Line 26: | Line 27: | ||
... | ... | ||
| | ||
- | 세번째 필드가 바로 현재의 GenBank genome data에서 protein_id로 표시되는 값이다.약간 성가시지만 이 값을 참조하면 된다. | + | 세번째 필드가 바로 현재의 GenBank genome data에서 protein_id로 표시되는 값이다. 약간 성가시지만 이 값을 참조하면 된다. |
{{ : | {{ : | ||
RefSeq에서는 이 키워드로 찾지 못한다. 왜냐하면 RefSeq의 protein_id는 WP_042447374.1 형식이기 때문이다. | RefSeq에서는 이 키워드로 찾지 못한다. 왜냐하면 RefSeq의 protein_id는 WP_042447374.1 형식이기 때문이다. | ||
+ | |||
+ | COG 2020의 cog-20.fa 파일은 다음과 같은 모습이다. | ||
+ | > | ||
+ | MGYEDEFPESLELFKRAERVMPGGVSSPVRRFDPYPFYVERAEGSRLYTVDGHVLIDYCLAFGPLILGHAHPEVVEAVVER | ||
+ | ... | ||
+ | AAM01497_1라는 protein ID 형식은 [[https:// | ||
+ | MK0280, | ||
+ | MA_0581, | ||
+ | ... | ||
===== 사전 준비 사항 ===== | ===== 사전 준비 사항 ===== | ||
COG 2014년 개정판 데이터와 COG software 2012년판을 다운로드하여 압축을 푼다. 소프트웨어 압축파일을 풀면 다음의 네 가지 디렉토리가 만들어진다(본 과정은 패키지에 수록된 Readme.2012.04.txt 파일을 참조하여 작성한 것임). | COG 2014년 개정판 데이터와 COG software 2012년판을 다운로드하여 압축을 푼다. 소프트웨어 압축파일을 풀면 다음의 네 가지 디렉토리가 만들어진다(본 과정은 패키지에 수록된 Readme.2012.04.txt 파일을 참조하여 작성한 것임). | ||
Line 65: | Line 75: | ||
파일의 구조를 간단히 그림으로 설명하면 다음과 같다. 그림 아래에서 **GenQueryquery.p2o.csv**라는 파일명은 **GenQuery.p2o.csv**로 고쳐야 한다. 그림 파일의 원본이 없어서 볼썽사납지만 그대로 둔다. | 파일의 구조를 간단히 그림으로 설명하면 다음과 같다. 그림 아래에서 **GenQueryquery.p2o.csv**라는 파일명은 **GenQuery.p2o.csv**로 고쳐야 한다. 그림 파일의 원본이 없어서 볼썽사납지만 그대로 둔다. | ||
{{ : | {{ : | ||
+ | |||
+ | 이상의 작업을 하는 것이 너무 성가셔서 Gen1,fa, Gen2.fa.. 파일을 인수로 주면 query.fa 및 GenQuery.p2o.csv 파일을 만드는 스크립트 **process_COG_query.pl**를 하나 작성해 보았다. | ||
+ | |||
+ | #!/bin/sh | ||
+ | | ||
+ | # usage : process_COG_query.sh query1.fa query2.fa ... | ||
+ | | ||
+ | for query in " | ||
+ | do | ||
+ | cat $query >> tmp.query.fa | ||
+ | prefix=${query%.*} | ||
+ | grep '>' | ||
+ | done | ||
+ | | ||
+ | sed -e ' | ||
+ | | ||
+ | awk '/ | ||
+ | split($0, field, " | ||
+ | if (field[1] == "> | ||
+ | { | ||
+ | |||
+ | } | ||
+ | else | ||
+ | { | ||
+ | gsub(">","> | ||
+ | |||
+ | } | ||
+ | ;next} | ||
+ | {print}' | ||
+ | | ||
+ | rm tmp.query.fa tmp.file | ||
Query protein set와 COG protein에 대해서 blast DB를 만든다. 사용한 fasta file의 이름과 DB name이 다른 것에 유의한다. 혼동을 피하기 위해서 이렇게 한 것이니 각자 자율적으로 결정해도 된다. prot2003-2014.fa에서 만들어진 DB는 일정한 곳에 보관하여 계속 재사용하는 것이 좋을 것이다. | Query protein set와 COG protein에 대해서 blast DB를 만든다. 사용한 fasta file의 이름과 DB name이 다른 것에 유의한다. 혼동을 피하기 위해서 이렇게 한 것이니 각자 자율적으로 결정해도 된다. prot2003-2014.fa에서 만들어진 DB는 일정한 곳에 보관하여 계속 재사용하는 것이 좋을 것이다. | ||
Line 99: | Line 140: | ||
==== COGNITOR 실행 ==== | ==== COGNITOR 실행 ==== | ||
+ | 이 과정에서는 COGs.csv라는 파일이 필요하다. 2003-2014 버전과 2020 버전의 컬럼 수가 다르므로 COG software를 쓰려면 2020 버전 파일을 고쳐야 한다. 여기서 약간의 시행착오를 겪었다. 두 버전의 컬럼 설명이 완전히 1:1 대응하듯이 일치하지를 않아서 그야말로 ' | ||
$ COGcognitor -i=./ | $ COGcognitor -i=./ | ||
+ | 다음은 전환용 스크립트. 작동의 완전성을 보장하지 못한다. 특히 마지막 컬럼은 2003-2014 버전의 설명에 의하면 'The membership-class field indicates the nature of the match between the sequence and the COG consensus' | ||
+ | # | ||
+ | # | ||
| | ||
+ | open COG2020, ' | ||
+ | open OUT, '> | ||
+ | while (< | ||
+ | chomp; | ||
+ | my @temp = split /,/, $_; | ||
+ | if ($temp[12] =~ / | ||
+ | | ||
+ | } | ||
+ | print OUT join ',', | ||
+ | } | ||
+ | |||
모든 것이 끝났다. **GenQuery.COG.csv**에 최종적으로 할당된 COG 정보가 수록된다. 주의할 점은 하나의 Query protein에 대하여 복수의 COG가 부여될 수 있다. 이러한 경우에는 5번째 필드인 cognitor-score를 가지고 1등을 선별해야 할 것이다. | 모든 것이 끝났다. **GenQuery.COG.csv**에 최종적으로 할당된 COG 정보가 수록된다. 주의할 점은 하나의 Query protein에 대하여 복수의 COG가 부여될 수 있다. 이러한 경우에는 5번째 필드인 cognitor-score를 가지고 1등을 선별해야 할 것이다. | ||
Line 114: | Line 169: | ||
[[findBestFromCOGs.pl|findBestFromCOGs.pl]]이라는 스크립트를 사용하여 GenQuery.COG.csv를 처리하면 각 protein query에 대한 best COG를 출력한다. | [[findBestFromCOGs.pl|findBestFromCOGs.pl]]이라는 스크립트를 사용하여 GenQuery.COG.csv를 처리하면 각 protein query에 대한 best COG를 출력한다. | ||
- | $ findBestFromCOGs.pl GenQuery.COG.csv | + | $ findBestFromCOGs.pl GenQuery.COG.csv |
+ | $ cat GenQuery.COG.csv.bestHit | ||
AND37645.1, | AND37645.1, | ||
AND37646.1, | AND37646.1, | ||
Line 127: | Line 183: | ||
==== Functional classification ==== | ==== Functional classification ==== | ||
- | COG의 각 functional class에 몇 개씩의 유전자가 분포하는지를 집계하고 싶다면 [[cogclass2018.pl|COGclass2018.pl]] 스크립트를 이용하라. 하나의 COG에 대하여 복수의 functional class가 있는 경우는 무작위로 하나만 선택한다. | + | COG의 각 functional class에 몇 개씩의 유전자가 분포하는지를 집계하고 싶다면 [[cogclass2018.pl|COGclass2018.pl]] 스크립트를 이용하라. 하나의 COG에 대하여 복수의 functional class가 있는 경우는 무작위로 하나만 선택한다. 이게 최선이 아닌 줄은 알지만 어쩔 수가 없어서... |
$ COGclass2018.pl GenQuery.COG.csv.bestHit > COGclass | $ COGclass2018.pl GenQuery.COG.csv.bestHit > COGclass |
cog_assignment.1552518205.txt.gz · Last modified: 2021/03/17 13:09 (external edit)