반응형

Arguments in R




Rscript를 사용할 때 argument를 input으로 받는 방법.

args = commandArgs(trailingOnly=TRUE)
species <- args[1]
inputfile <= args[2]

Rsciprt test.R human hg19.fasta


argument를 더 복잡하게 쓰려면 optparse라는 라이브러리를 써도 되지만 간단하게 정리하고 싶다면 위와 같이 작성할 수 있다.


추가로 argument를 입력하지 않았을 때 간단한 설명을 넣고 싶다면 아래와 같이 하면 된다.


if(length(args)==0 {

        stop("All argument must be supplied ex) human hg19.fasta",call.=FALSE))

}


argument가 하나도 들어오지 않았다면 ERROR 메세지 뒤에 정해놓은 문자열을 출력하고 자동 종료된다.



반응형
반응형

Remove duplicates




Illumina 같이 PCR amplification이 포함되어 있는 NGS 기술을 사용하면 특정 reads가 과도하게 증폭되는 현상이 나타난다. 이를 제거하기 위한 방법이 remove duplicates 이다.

가장 많이 쓰이는 프로그램은 Picard에 있는 Markduplicates이며 samtools에도 rmdup라는 비슷한 방식이 존재한다.

가능하면 Picard를 쓰는 것을 추천하는데 samtools는 read의 chromosome, position만 고려하여 duplicate여부를 판단하고 제거하는 반면에 Picard는 additional information도 고려하여 duplicate여부를 판단하기 때문이다. 단 Picard를 쓸 때는 모듈 명처럼 duplicate 여부를 마킹하는 것이기 때문에 이후 분석 tools에서 마킹여부를 고려하지 않을 수 있다.

이럴때는 Markduplicates 모듈을 쓸 때 duplicate된 read를 제거하는 옵션에서 true를 걸어놓는것이 좋다.

source -

https://www.biostars.org/p/105291/
http://seqanswers.com/forums/showthread.php?t=5424


반응형

'bioinformatics' 카테고리의 다른 글

MultiQC 설치 및 실행하기  (1) 2018.07.31
RPKM, FPKM and TPM의 정의  (0) 2018.07.27
Gene ontology analysis - DAVID  (0) 2018.07.16
_PAR_Y in Genecode annotation  (0) 2018.07.13
HLAtyping  (0) 2018.07.06
반응형

F-measure




F-measure란 classifier가 얼마나 정확하게 분류를 하는가를 판단하는 척도 중에 하나이다.

F-measure의 계산을 위해서는 precision과 recall을 구해야 한다.

precision (정확도)

- precision은 positive predictive value (PPV) 라고도 불리며 true positive / total positive 를 의미한다. 즉 양성이라고 판단한 전체 중에 진짜 양성의 비율이다.
- 즉 양성이라고 판단을 했다면 그 판단이 얼마나 정확한 지를 수치화하는 지표이다.

recall (재현율)

- recall은 sensitivity와 동일한 의미를 가진다. ture positive / real positive로 진짜 양성 중에 양성이라고 올바르게 판단내린 비율을 말한다.
- 재현율은 얼마나 대상을 빠트리지 않고 잡아내는지를 나타낸다. 다시 말해서 전체 데이터(대충 1000개라고 치자)에서 찾고자하는 A가 100개가 있는데 내가 정답이라고 생각한 것 300개를 골라냈는데 그 중에 A가 80개 존재했다고 하자.  내가 정답으로 골라낸 것이 몇 개인지 상관없이 재현율을 80%(80/100)라고 한다. 찾은 데이터가 진짜인지 여부는 위의 정확도에서 계산하게 될 것이기 때문이다.

결과적으로 재현율과 정확도가 모두 높다면 원하는 정답을 100% 찾을 수 있겠지만 
재현율만 높다면 정답이라고 생각되는 부분을 많이 찾겠지만 대부분이 오답일 것이고, 
정확도만 높다면 정답를 찾았다고 하는 개수가 몇 개 안되겠지만 적어도 그 부분들에 한해서는 대부분이 정답일 것이다.

헷갈리는 부분이 있다면 아래 포스팅을 참고하자.


2018/07/11 - [bioinformatics] - 민감도와 특이도



두 값을 모두 구했다면 F값을 계산하면 된다.


F = 2 * ( precision * recall / precision + recall ) 


위의 값대로 계산하면 precision과 recall의 조화평균을 구할 수 있다.


precision과 recall등은 파라미터 등에 의해 조절될 수 있기 때문에 ROC 커브를 그려서 프로그램의 전반적인 성능을 테스트 할 수도 있다. 


이 부분에 대해서는 추후에 다루도록 하겠다.


source -

https://en.wikipedia.org/wiki/F1_score

https://en.wikipedia.org/wiki/Precision_and_recall

반응형

'Data Science > statistics' 카테고리의 다른 글

Multiple Comparsion Problem  (1) 2018.07.11
민감도와 특이도  (0) 2018.07.11
반응형

Gene ontology analysis - DAVID




DAVID는 Database for Annotation, Visualization and Integrated Discovery의 약자로 유전자 리스트를 입력으로 받아 각 유전자의 기능은 해석해주는 웹 제공을 기반으로하는 무료 툴 이다.



주로 유전자 기능 분류를 하거나 기능을 모를때 주석을 달기 위해 사용되며 이를 위해 현재 공개되어 있는 주요한 데이터베이스의 정보를 대부분 가져와 직접시켜 DAVID만의 데이터 베이스를 만들고 있다.


주요 기능으로는 유전자 리스트가 주어졌을 때

- 특정 기능에 대한 유전자들이 많이 포함되었는지

- 비슷한 기능을 가진 유전자들의 그룹화

- BioCarta & KEGG pathway map과의 가시화된 연결

- 2-D로 유전자와 특정 묶음간의 연관성

- 유전자와 상호작용하는 단백질 리스트

- 유전자의 질병간의 연관성 리스트

- 단백질의 기능적 도메인과 모티프

- 관련 문헌

- 유전자 ID를 다른 ID로 변환 ex) ensembl id에서 refseq id로


등등이 존재한다.


DAVID를 실제로 사용하기 위해서는 gene id list가 필요하다. gene symbol인지 특정한 데이터베이스에서 사용하는 ID인지는 ID mapping 과정을 통해 변환하는 과정이 있기 때문에 크게 중요하지 않다.



step1의 A에 유전자 ID를 직접 넣거나 한 줄에 하나씩 입력된 파일을 B에 넣고 step2의 identifier는 어떤 종류의 ID를 사용하고 있는지 넣은 후 step3의 gene list를 체크 후 submit 하면 된다.


당장 파일이 없을 땐 demolist를 눌러서 진행한다.



입력한 gene id를 기반으로 어떤 종에서 찾고싶은 것인지 선택하여야 한다. 만약 넣어준 gene list의 매칭되는 종이 있다면 위와같은 화면이 나오겠지만 없다면 mapping과정을 진행하는 창이 뜰 것이다. mapping 과정은 gene id를 통일하는 과정이다. mapping이 진행되고 나면 위와 같은 화면이 나온다.



Use 버튼을 눌러 분석을 실행했다면 위와같이 특정한 분류대로 어떤 유전자가 많이 포함되어있는지를 보여준다. 



가장 밑의 Functional Annotation Clustering은 누르면 모든 cluster에 대해서 어떤 유전자가 어떻게 묶였으며 각 p-value는 어떻게 되는지 확인할 수 있다.



위와 같이 그룹화된것을 확인하고 p-value, Benjamini, FDR 값을 토대로 특정 값 이하의 그룹을 significant하다고 정의내린 후 결과를 정리하면 된다.


통계 방법에 대한 정의는 아래 포스트를 참조하면 된다.


2018/07/11 - [bioinformatics] - Multiple Comparsion Problem



DAVID에서 제공하는 FDR값은 정상적이지 않다. 제일 마지막 줄에 있는 그룹만 봐도 FDR값이 3.3인데 FDR음 0에서 1 사이의 값을 가져야 한다.


Benjamini 값을 토대로 cutoff를 정하면 될 것이다.




source -

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2375021/

https://david.ncifcrf.gov/

반응형

'bioinformatics' 카테고리의 다른 글

RPKM, FPKM and TPM의 정의  (0) 2018.07.27
Remove duplicates  (0) 2018.07.24
_PAR_Y in Genecode annotation  (0) 2018.07.13
HLAtyping  (0) 2018.07.06
CRISPR editing  (0) 2018.04.05
반응형

_PAR_Y in Genecode annotation


htseq-count를 돌렸는데 genecode annotation을 사용하였다.


결과로 나온 gene_id 중에 _PAR_Y라는 태그가 붙어서 나오는 것을 확인하였다.



특이하여 genecode 홈페이지에 직접 들어가서 무슨 의미인지 확인해보니 염색체 Y의 "pseudoautosomal region" (PAR)에 존재하는 유전자라는 뜻으로 염색체 X와 Y에 동일한 서열부분에 존재하는것을 의미한다. 



실제로 annotation file을 열어보면 염색체 X에는 "ENSG00000124333.15_2"라는 gene_id가 염색체 Y에는 "ENSG00000124333.15_2_PAR_Y"라는 gene_id가 존재하는것을 확인할 수 있었다.



source -

https://www.gencodegenes.org/faq.html

반응형

'bioinformatics' 카테고리의 다른 글

Remove duplicates  (0) 2018.07.24
Gene ontology analysis - DAVID  (0) 2018.07.16
HLAtyping  (0) 2018.07.06
CRISPR editing  (0) 2018.04.05
Stem cell  (0) 2018.04.05

+ Recent posts