분류 전체보기 (336)

반응형

R - 여러개의 독립적인 R Version 설치하기


리눅스에서 R을 사용하다보면 여러개의 R 버전을 독립적으로 유지하고 싶을 수 있다. 기존의 버전을 삭제하고 재설치하기에는 수많은 패키지들을 다시 설치해야하기 때문이다. 아래 github는 여러 R 버전을 독립적으로 설치하는 것을 해주는 shell script이다.


https://github.com/DominikMueller64/install_R_source


git commit https://github.com/DominikMueller64/install_R_source


위 명령어를 통해 쉘스크립트를 다운받고 폴더 안으로 들어간다. cd install_R_source


Example: ./install_R_source 3.4.1

R is then installed to /usr/local/R/d.d.d, where the executable is located at /usr/local/R/d.d.d/bin/R. The shell scripts creates a symbolic link to /usr/bin/R-d.d.d, such that the correct R version should be stared by typing R-d.d.d in a shell.

설치 방법은 위와 같이 ./install_R_source 3.4.3 과 같은 식 커맨드에 입력하면 알아서 설치 및 경로 지정까지 해준다. 

반응형
반응형

GATK4 설치


이곳에서 원하는 버전 zip파일 다운로드

https://github.com/broadinstitute/gatk/releases


예를 들어, 4.0.1.1 버전이면 다운로드를 받은 후,


unzip gatk-4.0.1.1 


명령어를 통해 압축을 풀면 설치가 끝난다.


만약에 binary 파일을 다른 곳에 위치시키고 싶다면(예를 들어 /usr/bin), gatk 파일을 카피해서 원하는 폴더 (/usr/bin)으로 옮긴다.


cp gatk /usr/bin


하지만 binary 파일이 다른 파일들과 떨어져있을 경우, 기존 폴더의 경로를 명시적으로 지정해주어야한다. 이는 환경변수를 지정함으로써 할 수 있는데 환경변수 $ GATK_LOCAL_JAR 을 gatk-package-4.0.1.1-local.jar 파일의 위치로 지정하면 된다.


예를 들어, export GATK_LOCAL_JAR=/home/gatk-package-4.0.1.1-local.jar 을 통해 환경변수를 지정하면, binary 파일이 떨어져있어도 실행 가능하다.

반응형
반응형


R에서 csv 파일을 읽어들일 때 UTF-8 포맷의 텍스트 파일을 읽어오지 못하는 문제가 있었다.


temp <- read.table(path, sep=",", stringsAsFactors=FALSE, header=FALSE, nrows=10) head(temp)


  V1                                                        V2     V3 V4 V5 V6 V7 V8

1  4 01. 16. 18 \xec삤\xec쟾 08\xec떆 02遺\x84 25珥\x88,26.188 17.695 NA NA NA NA NA

2  5 01. 16. 18 \xec삤\xec쟾 08\xec떆 03遺\x84 25珥\x88,26.456 22.904 NA NA NA NA NA

3  6 01. 16. 18 \xec삤\xec쟾 08\xec떆 04遺\x84 25珥\x88,26.530 19.185 NA NA NA NA NA

4  7 01. 16. 18 \xec삤\xec쟾 08\xec떆 05遺\x84 25珥\x88,26.603 19.383 NA NA NA NA NA

5  8 01. 16. 18 \xec삤\xec쟾 08\xec떆 06遺\x84 25珥\x88,26.676 21.714 NA NA NA NA NA

6  9 01. 16. 18 \xec삤\xec쟾 08\xec떆 07遺\x84 25珥\x88,26.652 21.107 NA NA NA NA NA


위와 같이 파일이 깨지는 현상


temp <- read.table(path, sep=",", stringsAsFactors=FALSE, header=FALSE, nrows=10,fileEncoding = "utf-8")


Error in read.table(paste0(path, date, name, filename_hobo), skip = 5,  : 

  입력에 가능한 라인들이 없습니다

In addition: Warning messages:

1: In readLines(file, skip) :

  invalid input found on input connection 'C:\workspace\r\data\mongol\180116\1\MG2018_0116_KSY_HOBO.csv'

2: In readLines(file, skip) :

  incomplete final line found on 'C:\workspace\r\data\mongol\180116\1\MG2018_0116_KSY_HOBO.csv'


fileEncoding="utf-8" 옵션을 넣으면 아예 읽어들이지도 못한다.

해법을 찾다가 포기하고 결국 간접적인 해법으로 다음과 같은 리눅스 쉘 스크립트를 통해 utf-8을 모두 euc-kr로 바꾸고 r에서 읽었다.

find . -name '*.csv' -exec iconv -f utf-8 -t euc-kr "{}" -o "{}" -c \;

이 명령어는 현재 디렉토리 아래에 있는 모든 csv 파일의 인코딩을 utf-8에서 euc-kr로 바꾼다. 


이후에 읽으니까 파일 읽기에 성공하였다.

반응형
반응형


리눅스 하위 디렉토리의 특정 파일 삭제



$ find . -name '*.tmp' -exec rm {} \;



설명


find . -name '*.tmp' 는 현재 디렉토리 (.) 아래의 확장자가 tmp인 모든 파일을 찾아 출력한다. 디렉토리를 지정하고 싶다면 . 대신에 디렉토리 path를 찾아서 쓰면된다.


-exec rm {} \; 에서 {}는 find로 찾은 파일들을 나타낸다. -exec rm을 통해 찾은 파일들을 삭제한다



반응형
반응형


현재 폴더 내 모든 zip 파일의 압축을 푼다.


for file in `ls *.zip`; do unzip "${file}" -d "${file:0:-4}"; done

현재 폴더에 zip 파일의 이름과 같은 폴더가 생성이 되고, 각각의 폴더 아래에 zip 파일의 내용물들이 생성된다.

예를 들어, 1.zip, 2.zip 파일이 있으면, 1, 2폴더가 생성되고 그 아래에 각각 내용물이 생김



현재 폴더 내 모든 gz파일의 압축을 푼다.


for file in `ls *.gz`; do gunzip "${file}" -d "${file:0:-4}"; done
마찬가지로 gz파일의 압축을 해제할 수 있음


현재 폴더 내 모든 zip 파일의 압축을 풀지만, 새 폴더를 생성하지 않음

for file in `ls *.zip`; do unzip "${file}"; done

만약 현재 폴더내 모든 압축 물들의 압축을 풀고 싶지만, 폴더를 새로 생성하고 싶지 않다면 -d 부터 제외하면 된다.


반응형
반응형
역학 연구에서의 스터디 디자인


역학 연구에서의 스터디 디자인을 한 눈에 볼 수 있는 테이블이다. 각각의 스터디 디자인에서 기술 연구, 분석 연구를 할 때 일반적으로 어떤 measure를 사용하는지, 그리고 스터디 디자인마다 장, 단점은 무엇인지 파악할 수 있다.


Table 1: 
Main study designs in classic epidemiology.


Case reportsCase seriesEcological studiesCross sectional studiesCase controlCohortIntervention trials

Unit of study(Single case) 
individual
(>1 cases) individualPopulationIndividualIndividualIndividualIndividual

DescriptionDescribes unusual characteristics of a caseA group of casesComparing populations in different places at the same time or, in a time seriesStudy of population at, “point-in-time,”Study of two groups of subjects: (case; disease of interest and control; disease-free)Study of two groups of subjects (exposure and non-exposure groups)Study and examine two groups of subjects (intervention and control groups)

DirectionPresentPresentPresentPresentReverseForwardForward

Type of measurementReporting, descriptionReporting, descriptionCorrelationPrevalence, associationOdds ratioPrevalence, incidence, relative risk, attributable riskPrevalence, incidence, relative risk, attributable risk

AdvantagesQuick, having clinical importance, opportunities for physicians to exchange of thoughtsQuick, having clinical importance, opportunities for physicians to exchange of thoughtsQuick, inexpensive, group-level studies may also be the only way to study the effects of group-level constructs, for example, lawsEasy, inexpensive, useful for investigating fixed exposures such as blood group, most convenient in outbreaks of diseaseRelatively inexpensive good for rare diseases Efficient in resources and timeBetter for rare exposures, ability to determine causality relationsThe strongest evidence for causality, control of unknown confounders, fulfils the basic assumption of statistical hypothesis tests

limitationInability to determine statistical relations and analysisInability to determine statistical relations and analysisEcological fallacySusceptible to selection bias and misclassification, difficult to establish a putative, “cause”, Not good for rare diseases or rare exposuresSusceptible to selection bias and misclassification bias, may be difficult to establish that, “cause,” preceded effectCostly and time consuming, susceptible to selection bias. Relatively statistically inefficient unless disease is common.Expensive, time consuming, sometimes ethically generalizability problem

https://www.hindawi.com/journals/isrn/2013/952518/tab1/


반응형

Domains/Genetics

Solar 설치

2018. 1. 29. 17:55
반응형

Solar 설치


홈페이지

http://www.solar-eclipse-genetics.org/


설명

Heritability 분석을 위한 프로그램이다.



1. 이 링크(https://www.nitrc.org/frs/?group_id=558)에 들어가 아래 압축 파일을 다운받는다.


SOLAR Eclipse General Version 8.1.1



2. 다운 받은 압축 파일의 압축을 푼다.


tar -zxvf 파일명.tar.gz -C /원하는위치



3. 아래 명령어로 인스톨 한다. 


./install_solar <solar-base> <solar-script-dir>


파라미터에 대한 설명 (readme 파일 열어보면 나옴)

<solar-base> is the directory name where the bulk of this release of SOLAR

is to be installed.  To keep it separate from other releases, the release

number should be included in this directory name.  For example, we use:

/opt/appl/solar/8.1.1


<solar-script-dir> is the existing directory to which the 'solar' script

that starts SOLAR is to be put.  /usr/local/bin is a typical choice.

This should be in the PATH of everyone who will use solar.

You can move this script later if desired.  If you already have an older

script named 'solar' there, you must rename or delete it first.



이 때 solar-base에는 실제 실행 파일이 위치한 곳, solar-script-dir에는 실행파일을 연결할 파일의 경로를 써준다. 일반적으로 solar-script-dir은 /usr/local/bin 파일에 위치하도록 하고, solar-base는 아무 곳에나 놔두어도 되지만 /usr/local/bin에 위치해도 크게 상관은 없다. 


***********************************************************

Ignore error messages (if any) from the tests below

Ignore error messages (if any) from the tests above

***********************************************************



    *** Successful Installation ***


SOLAR has been installed with the command name solar


The new documentation directory is /mnt/c/Users/JuYoungAhn/Downloads/solar/8.1.1/doc


For command line editing, give command ./install_rlwrap


root@DESKTOP-F14K9HF:/mnt/c/Users/JuYoungAhn/Downloads/solar_linux# solar

/mnt/c/Users/JuYoungAhn/Downloads/solar/8.1.1/bin/rlwrap: 1: /mnt/c/Users/JuYoungAhn/Downloads/solar/8.1.1/bin/rlwrap: Syntax error: "(" unexpected


SOLAR Eclipse version 8.1.1 (General), last updated on January 29, 2018

Copyright (c) 1995-2018 Texas Biomedical Research Institute

Enter help for help, exit to exit, doc to browse documentation.


위와 같은 메시지가 뜨면 설치 완료된 것이고, /usr/local/bin에 script 파일을 넣은 경우 환경변수를 설정하지 않아도 커맨드 창에 solar를 치면, solar가 실행된다.

반응형
반응형

False Discovery Rate


False Discovery Rate(FDR)는 다중비교문제에서 1종 오류를 조절하는 방법이다. FDR은 특히 유전학 연구에서 대량의 유전체 마커와 질병과의 연관성을 보는 연구(예를 들어 Genome-wide association study)에서 많이 사용하는 방법이다.


다중비교문제에서 기본적으로 많이 사용하는 본페로니 방법은 전체 테스트의 1종 오류를 alpha (예를 들어0.05)로 고정하는 방법이다. 즉, 전체 테스트가 유의하지 않은데 유의하다고 잘못판단할 확률을 0.05로 한다는 것이다.


50000개의 마커에 대해 연관성을 검정하며,  이 중 49000개가 실제로 연관성이 없고나머지 1000개가 실제 연관성이 있다고 해보자.


개별 테스트의 1종 오류를 0.05로 고정하면, 1종 오류는 유의하지 않은데, 유의하다고 판단할 확률이므로 49000*0.05 = 2450개가 평균적으로 false positive가 된다. 즉, 49000개 중에 2450개를 유의하다고 잘못판단하고, 나머지 46550개를 유의하지 않다고 잘 판단한 것이다. 만약 1000개의 실제 연관성이 있는 마커중 900개를 유의하다고 판단하고, 100개를 유의하지 않다고 판단했다고 하면, 총 3350개를 유의하다고 판단해서 그 중에 900개가 맞은 것이다.


본페로니 보정을 이용하여 전체 테스트의 1종 오류를 0.05로 고정하면 개별 테스트의 컷오프는 0.05/50000이 되므로, 49000*0.05/50000 = 약 0.05가 평균적으로 false positive가 된다. 따라서 본페로니 보정을 이용하면 false positive를 확연히 줄일 수 있다. 하지만 본페로니 보정의 단점은 너무 컷오프가 엄격하기 때문에 실제 유의한 마커의 effect size가 크지 않은 경우 유의하지 않다고 판단할 수 있다는 것이다. 이것이 소위 말하는 power의 문제이며, 1종 오류와 2종 오류가 trade off 관계임을 알 수 있다. 이렇게 false positive를 엄격하게 통제하면 너무 보수적인 결정을 내리게 되며 실제 유의한 마커를 찾아내기가 힘들어진다. 따라서 어느정도의 오차를 허용하면서 실제 유의한 마커도 잘 골라내는 방법이 필요하게 된다.


따라서 이러한 연구에서는 False Discovery Rate, 즉 유의하다고 판단한 것중에 틀릴 확률을 고정시키는 새로운 p-value를 정의하는 방법을 많이 사용한다. 우선 FDR의 정의부터 보면,


FDR = false positive / total positive (total positive = false positive + true positive)


즉, 유의하다고 판단한 것 중에 실제로는 유의하지 않은 것의 비율이다. 이 비율을 0.05로 고정한다면, 유의하다고 판단했을 때 틀릴 확률은 0.05로 고정할 수 있다. 이는 위의 접근법과는 다소 다르다. 1종 오류는 유의하지 않은데 유의하다고 판단할 확률이지만, FDR은 유의하다고 판단했을 대, 이것이 틀릴 확률이다. 위의 경우에는 3350개를 유의하다고 판단했는데 이 중 틀린 것이 2450이므로 FDR = 2450/3350 = 0.73 이다. 수많은 false positive로 인해 FDR이 높아졌음을 알 수 있고, 데이터가 밸런스하지 않기 때문에 실제 유의한 마커를 찾는 것이 매우 힘들다는 것을 알 수 있다.


근데 FDR은 실제 정답을 알아야 알 수 있다. 실제 유의한 (혹은 인과적 관계를 갖는) 마커를 알아야 FDR을 정확히 구할 수 있는데 이것은 힘든 일이다. 따라서 다양한 방법으로 FDR을 추정하는데 대표적인 방법으로는 Benjamini-Hochberg procedure가 있다.


위키피디아의 정의를 보자.

Benjamini–Hochberg procedure

The Benjamini–Hochberg procedure (BH step-up procedure) controls the FDR at level \alpha .[1] It works as follows:

  1. For a given \alpha , find the largest k such that P_{(k)} \leq \frac{k}{m} \alpha.
  2. Reject the null hypothesis (i.e., declare discoveries) for all H_{(i)} for i = 1, \ldots, k.


우선, 모든 마커의 p-value를 큰 것부터 작은 것으로 내림차순 정렬을 한 후, 개별 테스트의 p-value를 각각 다르게 적용시키는 방법이다. 예를 들어, alpha = 0.05, m=50000, k=50000 인 경우, 가장 p-value가 큰 마커이다. 이 마커의 경우 p-value의 기각역은 50000*0.05/50000 = 0.05 이다. 즉, p-value가 낮은 마커로 갈 수록 점점 엄격한 p-value의 컷오프를 적용한다. Benjamini-Hochberg procedure는 이러한 방식으로 FDR을 0.05로 고정한다.


# 2018.2.6 추가

Benjamini 방법을 통해 기각역을 정하는 것을 시각화해서 보면 위와 같은 그림이 된다. 기각역을 고정시키는 본페로니나 Holm's의 방법(회색선) 보수적인 기각역을 갖고, FDR의 경우(빨간색선) 어느 정도 false positive를 허용함으로써 너무 보수적이지 않도록 기각역을 조정한다.


참고 : http://t-lab.tistory.com/28

반응형
반응형

유전자 발현


인간의 DNA 속 기능의 단위인 유전자는 단백질을 암호화하고 있고, 유전자가 암호화하고 있는 단백질은 세포의 기능을 결정합니다. 따라서 어떤 세포 안에서 생성되는 수천개의 유전자는 그 세포가 무엇을 할지를 결정합니다. 각각의 세포는 다른 유전자를 생성함으로써 다른 기능을 수행하는 것입니다. 유전자 발현이란 이렇게 DNA가 최종 생산물인 단백질(혹은 ncRNA)을 생성하는 과정을 뜻합니다. 그리고 유전자 발현은 각각의 세포마다 다르게 일어납니다. 예를 들어, 시세포, 지방세포, 뇌세포 등은 각각 다른 단백질을 생성함으로써 원하는 생물학적 기능을 수행하게 됩니다. Central Dogma라고 불리는 DNA가 전사 되어 RNA가 되고 RNA가 번역되어 단백질이 되는 각각의 단계는 생성되는 단백질의 종류와 양을 조절할 수 있는 조절 포인트입니다.


어떻게 유전자 발현이 조절될까?


이처럼 유전자가 단백질이 되어가는 과정 속에서 유전자의 발현을 조절하여 유전자의 산물(전사체 혹은 단백질)의 양을 조절하는 것을 유전자 조절(gene regulation)이라고 합니다. 세포 내에서의 각 유전자들의 발현량 그 세포의 기능을 결정합니다. 유전자 조절은 여러 단계가 있지만, 그 중 전사 조절이 가장 중요하고 대부분의 유전자 조절이 일어나는 단계입니다. 사실 진핵 생물의 유전자 발현 조절은 매우 복잡합니다. 진핵생물에서는 전사체가 핵을 떠나기 전에 변형이 일어납니다. 단백질을 코딩하지 않는 부분인 "인트론"이 사라지며, 단백질을 코딩하는 부분인 "엑손" 만 남게 됩니다. 이 엑손이 서로 붙게되어 mature mRNA가 생성됩니다. 또 양 끝부분에도 변형이 일어나는데 이는 안정성에 영향을 끼칩니다. 이러한 RNA Processing의 과정 속에서도 유전자 조절이 일어날 수 있습니다. 또는 번역 단계에서도 miRNA 등의 small RNA에 의해 유전자 조절이 이루어지기도 합니다. 


A schematic of a eukaryotic cell and its interior shows the transcription of DNA to RNA, and the translation of RNA to protein in four steps: transcription, RNA splicing, nuclear export, and translation. Each step is represented by a labeled arrow. Transcription of a DNA template to a pre-mRNA and the splicing of the pre-mRNA into a mature mRNA are shown inside the cell nucleus. The nuclear export brings the mature mRNA to the cytoplasm, where the mature mRNA message is translated into a protein.Figure 1: 진핵생물에서 DNA가 단백질이 되어가는 과정

DNA의 번역, 비번역 부위가 mRNA로 전사된다. mRNA 프로세싱 도중 인트론 부분이 제거된다. 엑손 부분만 남아서 연결되며, 양 끝에 특별한 시퀀스가 붙는다. 이러한 프로세싱이 완료되면 mRNA는 핵을 빠져나가 세포질로 가게된다. 일단 세포질로 가게되면 mRNA는 단백질을 생성할 준비가 완료된다.

어떻게 세포는 자신들이 필요한 유전자를 발현 시킬까?


위에서는 유전자가 단백질로 변화하는 과정 속에서 유전자 조절이 언제 이루어지는지 알아보았습니다. 그렇다면 구체적으로 어떻게 세포는 원하는 유전자만 발현시켜 원하는 기능을 수행할 수 있을까요? 이는 각각의 세포들이 제각기 다른 전사 조절 인자들을 갖고 있기 때문입니다. 이러한 조절 인자들은 전사를 촉진(activate)시키기도 하고 방해(repress)하기도 합니다. 전사 조절 인자는 단백질이며, 이 전사조절인자도 유전자들이 코딩하고 있습니다.


일반적으로 전사는 RNA 중합효소가 소위말하는 프로모터 시퀀스에 결합함으로써 시작됩니다. 이 시퀀스는 전사 시작 지점에 근접한 upstream 방향에 존재합니다. (5' 쪽 방향) 하지만 downstream 방향에도 존재할 수 있습니다. (3' 쪽 방향) 비교적 최근에 연구자들은 인핸서 시퀀스라는 것을 발견하였습니다. 인핸서전사 조절 단백질들이 결합할 수 있는 결합 위치(binding site)를 제공함으로써 전사에서 중요한 역할을 하는 시퀀스입니다. 이 인핸서의 전사 조절 단백질이 붙게되면 염색질 구조가 변화되어 RNA 중합효소나 조절 단백질의 결합을 촉진하거나 억제하는 역할을 하게됩니다. 이 때 염색질 구조를 open chromatin structure라고 하는데, 이는 유전자 전사가 활성화 된다는 것과 연관이 있습니다. 반면 염색질의 구조가 빽빽한 경우, 전사가 억제되어 있는 것과 연관이 있습니다.


몇몇 조절 단백질은 다양한 유전자의 전사에 영향을 미칩니다. 이는 전사 조절 단백질 결합 위치 (regulatory protein binding site 혹은 transcription factor binding site라고도 함)가 다양한 곳에 존재하기 때문입니다. 결과적으로 조절 단백질은 다양한 유전자의 걸쳐 다양한 역할을 합니다. 조절 단백질의 역할은 단지 어떤 한 유전자의 발현을 조절하는 것이 아니라 다양한 유전자의 발현을 조절합니다. 이것이 각각의 세포가 한 번에 많은 수의 유전자를 조절할 수 있는 하나의 메커니즘입니다.



A two-part schematic shows how an activator protein binds DNA to initiate transcription. A linear DNA molecule is shown above a DNA molecule folded to form a loop. The enhancer sequence, promoter sequence, and site of transcription are represented by colored shading on both DNA molecules, and an activator molecule is represented by a globular structure. The interaction between RNA polymerase, a mediator protein, and the activator protein are shown in the bottom illustration.
Figure 2: 전사의 조절
활성 단백질이 인핸서 시퀀스에 결합하게되면 RNA 중합효소를 활성화 시키는 프로모터 부분에 단백질을 끌어들일 수 있고, 이로 인해 전사가 촉진된다. DNA는 위와 같이 굽어져 활성자 단백질은 RNA 중합효소의 활동을 중재하는 다른 단백질들과의 상호작용을 하게 된다.


우선 원핵 세포에 대해서 알아보면, 원핵생물에서 조절 단백질은 종종 영양소의 이용가능성에 의해 조절됩니다. 이는 박테리아와 같은 생물이 환경 조건에 반응하여 전사 패턴을 빠르게 조절할 수 있게 합니다. 덧붙여, 원핵생물의 조절 부위는 프로모터와 가깝게 위치합니다.

A three-part schematic shows how a repressor protein can inhibit transcription by preventing RNA polymerase from binding DNA. Part 1 shows the layout of a linear region of DNA. The operator is represented by colored shading on the DNA molecule and spans three nucleotides. The site of transcription is shaded a different color, and an arrow points from left to right above the shading to show the direction transcription proceeds. Part 2 shows the positions of an inactive repressor protein and RNA polymerase relative to a DNA molecule when transcription is occurring. Part 3 shows the positions of an active repressor protein and RNA polymerase in relation to a DNA molecule when transcription is repressed.
Figure 3: 프로모터 주위에서의 전사 조절
특정 단백질은 RNA 중합효소에 간섭을 함으로써 전사를 조절한다. 불활성화 상태로 존재하는 억제 단백질(repressor)은 다른 분자에의해 활성화 될 수 있으며, 활성화된 상탱서 operator라 불리는 부위에 결합하여 RNA 중합효소가 프로모터에 결합하는 것을 방해한다. RNA 중합효소가 프로모터 부위에 결합하여야 전사가 개시됨으로 이는 전사를 효과적으로 억제한다. 

활성자(activator)는 프로모터 주위에 조절 부위에 결합하여 RNA 중합효소의 활동을 촉진합니다. 억제자(repressor)는 조절부위에 결합하여 RNA 중합효소의 결합을 방해합니다. 


진핵생물의 유전자 발현 조절은 원핵생물에 비해 복잡합니다. 위에서 기술한 것과 마찬가지로 기본적으로는 프로모터 주위 조절 부위에 결합하는 활성자, 억제자에 의해 RNA 중합효소의 활동량이 조절되어, 전사 과정에서의 유전자 조절이 일어납니다. 하지만 진핵생물에서는 그 이상의 많은 수의 조절 단백질이 존재하며, 조절 단백질의 결합 부위는 프로머터와 멀리 떨어져 있는 경우도 많습니다. 이로 인해 유전자 발현의 조절이 더욱 유연하게 됩니다.


A schematic shows three transcriptional regulator proteins on a DNA molecule. The DNA molecule is folded in on itself to form loops and each regulator protein is bound to the apex of a DNA loop and interacting with a single mediator protein bound to RNA polymerase. RNA polymerase is in turn bound to a region of DNA between the promoter sequence and the site of transcription.
Figure 4: 많은 수의 전사 조절 인자
전사 조절 인자들은 각각 다른 역할을 갖고 있다. 위의 3가지 전사 조절인자는 Mediator 복합 단백질과 각각 다르게 상호작용하여 전사를 조절한다. 각각의 조절단백질이 있고 없음, 또한 이들이 어떻게 조합되느냐에 따라 유전자의 발현이 달라진다. 진핵 생물의 유전자 발현의 특징은 이러한 복합한 조절 과정을 통해 같은 유전자라도 다르게 번역될 수 있다는 것이다.


다른 세포 유형은 특징적인 전사 조절인자를 갖고 있습니다. 다세포 생물에서 다른 세포는 각각 다른 조절 인자들의 조합을 갖고 있습니다. 이로인해 각기 다른 기능을 하는 다양한 세포가 생성되고, 기능할 수 있는 것입니다.



A pedigree diagram shows how transcription factors influence the identities of four generations of cells. A single cell containing a nucleus is shown dividing to form two new cells (a second generation). Each of the two second-generation cells then divides to form two new cells, so this third generation has four cells. Each of the four third generation cells then divides to form two cells, for a total of eight fourth generation cells. The variable expression of transcription factors in each generation of cells is represented by the presence or absence of red, green, and yellow colored circles in their cytosol.
Figure 5: 전사 조절인자가 세포 유형을 결정한다.
세포 발달 과정에 따라 전사 조절 인자가 달라지는 것을 나타내는 그림
세포 유형의 다양성은 다른 전사조절인자들의 활동에 의한 것이다.

생명 활동을 위해서 세포는 환경의 변화에 반응해야합니다. 단백질 생산 과정의 중요한 두 가지의 스텝 (전사와 번역)에서의 유전자 조절이 이러한 환경 적응성에 중요한 역할을 합니다. 세포는 필요한 특정 유전자를 발현시켜, 세포의 기능을 수행하며, 또한 환경에 반응하는 유전자 조절을 통해 어떤 유전자가 전사되며 번역될지를 조절합니다.


참고 : Nature Education Gene expression

반응형
반응형

Chip-seq 데이터를 통한 binding motif의 분석


Chip-seq 을 통해 대략적인 protein binding site (혹은 histon modification)의 시퀀스를 알고, 이 시퀀스들 중에서 비슷한 시퀀스를 찾아내어 해당 protein에 specific한 시퀀스가 무엇인지를 알아내는 분석이다. 이를 수행하는 bioinformatics Tool은 매우 많으며, [Evaluating tools for transcription factor binding site prediction] 논문에서 좋은 평가를 받았던 rGADEM을 이용하여 binding motif를 찾는 분석을 해보도록 한다. rGADEM은 GADEM 방법을 r로 구현한 것이며, GADEM은 motif를 찾는데 Genetic 알고리즘과 EM 알고리즘을 결합하여 사용한다. 자세한 방법론은 본 포스팅에서 다루지 않는다. 본 포스팅은 이 튜토리얼을 참고하였다.

# rGADEM Tutorial # reference : https://bioconductor.org/packages/devel/bioc/vignettes/rGADEM/inst/doc/rGADEM.pdf source("https://bioconductor.org/biocLite.R") # biocLite("rGADEM", lib="C:/Users/Documents/R/win-library/3.4") # biocLite("BSgenome.Hsapiens.UCSC.hg19", lib="C:/Users/Documents/R/win-library/3.4") # biocLite("DNAStringSet", lib="C:/Users/R/win-library/3.4") # install.packages("RCurl") library(RCurl) library(rGADEM) library(BSgenome.Hsapiens.UCSC.hg19)

rGADEM은 bioLite 패키지에 있으며, 위와 같이 설치할 수 있다. rGADEM, BSgenome..., DNAStringSet 3개의 bioLite 패키지를 설치한 후, 이와 의존성이 있는 RCurl 패키지까지 설치하면 라이브러리 로드가 완료된다.


데이터


Test_100.bed

Test_100.fasta


rGADEM을 설치하면 위 예제 데이터가 패키지 안에 기본으로 들어있다. 이 예제 데이터를 통해 실습을 해보도록 한다.


chipseq 데이터로 binding motif를 분석하기까지의 pipeline은 QC, peak calling 등의 과정을 거쳐야한다. 하지만 이번 분석에서는 peak calling까지 끝난 데이터로 분석을 한다고 가정한다. peak calling이 완료되면 protein binding이 많이 일어난 부분의 시퀀스를 얻어낼 수 있다. 이 데이터는 주로 BED 혹은 FASTA 파일로 주어진다.


1. 데이터가 BED 포맷인 경우

BED <- read.table("C:\\Test_100.bed",header=FALSE,sep="\t") BED <- data.frame(chr=as.factor(BED[,1]),start=as.numeric(BED[,2]),end=as.numeric(BED[,3])) BED rgBED <-IRanges(start=BED[,2],end=BED[,3]) Sequences <- RangedData(rgBED,space=BED[,1]) rgBED Sequences


> BED


chr start end 1 chr1 145550911 145551112 2 chr1 112321064 112321265 3 chr1 120124183 120124384 4 chr1 114560780 114560981 5 chr1 8044002 8044203 6 chr1 154708057 154708258 7 chr1 21537833 21538034 8 chr1 117197889 117198090 9 chr1 22547577 22547778 10 chr1 170982215 170982416 11 chr1 203938925 203939126 12 chr1 198607893 198608094 13 chr1 244838696 244838897 14 chr1 22613354 22613555 15 chr1 36725231 36725432 50 chr1 35024860 35025061

> rgBED
IRanges object with 50 ranges and 0 metadata columns:
           start       end     width
       <integer> <integer> <integer>
   [1] 145550911 145551112       202
   [2] 112321064 112321265       202
   [3] 120124183 120124384       202
   [4] 114560780 114560981       202
   [5]   8044002   8044203       202
   ...       ...       ...       ...
  [46]  24574361  24574562       202
  [47]  46110458  46110659       202
  [48] 114377432 114377633       202
  [49] 152657429 152657630       202
  [50]  35024860  35025061       202


> Sequences
RangedData with 50 rows and 0 value columns across 1 space
       space                 ranges   |
    <factor>              <IRanges>   |
1       chr1 [145550911, 145551112]   |
2       chr1 [112321064, 112321265]   |
3       chr1 [120124183, 120124384]   |
4       chr1 [114560780, 114560981]   |
5       chr1 [  8044002,   8044203]   |
6       chr1 [154708057, 154708258]   |
7       chr1 [ 21537833,  21538034]   |
8       chr1 [117197889, 117198090]   |
9       chr1 [ 22547577,  22547778]   |
...      ...                    ... ...
42      chr1 [221975293, 221975494]   |
43      chr1 [ 59123669,  59123870]   |
44      chr1 [ 76297843,  76298044]   |
45      chr1 [188010599, 188010800]   |
46      chr1 [ 24574361,  24574562]   |
47      chr1 [ 46110458,  46110659]   |
48      chr1 [114377432, 114377633]   |
49      chr1 [152657429, 152657630]   |
50      chr1 [ 35024860,  35025061]   |


2. GADEM 실행

gadem <- rGADEM::GADEM(Sequences,verbose=1,genome=Hsapiens)

interation을 돌며 GADEM 알고리즘이 실행된다.


총 2개의 motif 가 생성되었다.

> length(gadem@motifList)
[1] 2



이 중에서 첫 번째 motif는 아래와 같이 생겼다.

plot(gadem@motifList[[1]])



> gadem@motifList[[1]]@alignList
[[1]]
An object of class "align"
Slot "seq":
[1] "GCCCCGACCTCTTATCTCTG"

Slot "chr":
[1] "chr1"

Slot "start":
[1] 43552181

Slot "end":
[1] 43552382

Slot "strand":
[1] "+"

Slot "seqID":
[1] 38

Slot "pos":
[1] 100

Slot "pval":
[1] 2.209965e-09

Slot "fastaHeader":
[1] 38


[[2]]
An object of class "align"
Slot "seq":
[1] "ACCCCAACCTCTTATCTCTG"

Slot "chr":
[1] "chr1"

Slot "start":
[1] 43552181

Slot "end":
[1] 43552382

Slot "strand":
[1] "+"

Slot "seqID":
[1] 38

Slot "pos":
[1] 58

Slot "pval":
[1] 2.365196e-09

Slot "fastaHeader":
[1] 38


[[3]]
An object of class "align"
Slot "seq":
[1] "ACCCCAACCCCTTATTTCTG"

Slot "chr":
[1] "chr1"

Slot "start":
[1] 43552181

Slot "end":
[1] 43552382

Slot "strand":
[1] "+"

Slot "seqID":
[1] 38

Slot "pos":
[1] 121

Slot "pval":
[1] 5.472386e-09

Slot "fastaHeader":
[1] 38

GADEM 알고리즘은 이 motif를 설명할 수 있는 총 26개의 시퀀스를 찾았다. 이 중 3개의 시퀀스가

GCCCCGACCTCTTATCTCTG
ACCCCAACCTCTTATCTCTG
ACCCCAACCCCTTATTTCTG

이다. 이러한 비슷한 시퀀스를 tfbs 라고 하며, tf protein이 이 곳에 달라붙어 regulatory role을 수행하게 된다.

[[26]]
An object of class "align"
Slot "seq":
[1] "CCTTCCTTCCTTTCTTCCTT"

Slot "chr":
[1] "chr1"

Slot "start":
[1] 200254533

Slot "end":
[1] 200254734

Slot "strand":
[1] "-"

Slot "seqID":
[1] 36

Slot "pos":
[1] 193

Slot "pval":
[1] 0.0001878598

Slot "fastaHeader":
[1] 36


위 결과처럼 - strand의 결과도 볼 수 있는데, 이 경우에는 BED파일에서 reverse strand를 보면 된다. 하지만 위 결과는 자동으로 reverse strand를 보여준다. http://genome.ucsc.edu/cgi-bin/das/hg19/dna?segment=chr1:200254533,200254734를 확인하면 위 시퀀스의 reverse인 aaggaagaaaggaaggaagg 를 확인할 수 있다.



3. INPUT이 FASTA 파일인 경우

# 2. Input이 FASTA 파일일 경우
path <- system.file("extdata/Test_100.fasta", package="rGADEM")
FastaFile <- paste(path,sep="")
Sequences <- readDNAStringSet(FastaFile, "fasta")
Sequences

Fasta파일의 경우 위와 같이 전처리 하면 되며, 이후의 절차는 BED 파일과 동일하다.

> Sequences
  A DNAStringSet instance of length 49
     width seq                                                                                                      names               
 [1]   202 CTACAGCTGTTCCTTGTCATCAGCCTGGGGGTGGGTAGTATTTTGATCTTA...GTCCCCATGTGACTGTAGGGTTCCTGAAACCTGGCAGGCCACTCTGCTTG FOXA1 _ 1
 [2]   202 TTATTCTGATGTGGTTTTGCGGTTATACAGTAAGCAGCACTGCTTATGTGG...ACACCAGAGGCCACCAGGACCAGAATGTTTACCAATGTAGGCAGTCACTA FOXA1 _ 10
 [3]   202 AAAGGAGAAACACAGCCAAATAATAAAACAATATCTTCTGTAAGTAAAGAG...CAAAGGTGCAAAGCCCTCTTTCAGATCCATCTCCACCATTTCCCTTCAGG FOXA1 _ 11
 [4]   202 TGTACCCCCCCAATATTTCATGATATTTACATGTTTGCATAGTACTTTCCT...CACAGGCAGAGTCAACATTGGAACTCGGAACACTGAGCCTGGCATTCCAA FOXA1 _ 12
 [5]   202 TTTAAGACTGCCACCTGAAATCAAGTCCAGTGGCTGTTCCTGTCTTCCCGT...TTATTTAACCTTTTGCCATTAGTTTACAAGAAGACGGGTTGAGCGAGTCA FOXA1 _ 13
 ...   ... ...
[45]   202 ATTAGTTCATGCCAGGCAGGGTTTGACCAAAACCTTGGACTCACTCCTGTC...TGCTGCTGCTAAGCCAGTGAGATAGATGGTGGTTTGGAAACACCCTCATG FOXA1 _ 5
[46]   202 CCAGAGCCACCACAGCCAGGCCTCTGCGGCCAGTGTCAACAAGGGGCCAGG...TGGGGTTTTGTTTACACACCTAGGGTCACCTGAAAACACCTGCTGTTTAA FOXA1 _ 6
[47]   202 CAGATCAGAGCCTGGGAGCGGGCCATGTGCAGCTGGATGGGCAGCTGGAGG...GCCCACCCTCCTGCCTTCCCAGCCAAGGAGGGAAGGGAGCTGTGGGAGGA FOXA1 _ 7
[48]   202 GGAATGTGATTTACCCAGATAAATCATCAGCTCAAGGGACTGCTTGGAGAG...TCCAGAGCTAGACGCAGAGGAAGGGGTCAAACATGTCCACATGGAACCTG FOXA1 _ 8
[49]   202 GGCTTTTCCAAGAACAATAGTGTTCTCCTAACAAACATTCGTTCCATCAGC...GGTGTTAGGGACAGAGTCCCAGGTGGCATAAAGTCGGGTTGGTCCTTGGC FOXA1 _ 9

예제 Fasta 파일의 경우 아래와 같은 motif를 찾았고, 총 74개의 sequence가 이 consensus에 부합했다. 즉, FOXA1라는 transcription factor의 binding motif (혹은 transcription factor binding site)의 consensus를 위의 Fasta 파일의 데이터를 통해 예측해볼 수 있다.

plot(gadem@motifList[[1]])



[[72]] An object of class "align" Slot "seq": [1] "CTATTGACTTT" Slot "chr": [1] "chr" Slot "start": [1] 0 Slot "end": [1] 0 Slot "strand": [1] "-" Slot "seqID": [1] 4 Slot "pos": [1] 93 Slot "pval": [1] 0.0001517677 Slot "fastaHeader": [1] 4 [[73]] An object of class "align" Slot "seq": [1] "ATATTTACTTG" Slot "chr": [1] "chr" Slot "start": [1] 0 Slot "end": [1] 0 Slot "strand": [1] "+" Slot "seqID": [1] 42 Slot "pos": [1] 135 Slot "pval": [1] 0.0001719873 Slot "fastaHeader": [1] 42 [[74]] An object of class "align" Slot "seq": [1] "CTATTTGCTGG" Slot "chr": [1] "chr" Slot "start": [1] 0 Slot "end": [1] 0 Slot "strand": [1] "+" Slot "seqID": [1] 41 Slot "pos": [1] 53 Slot "pval": [1] 0.0001754087 Slot "fastaHeader": [1] 41


반응형

'Domains > Bioinformatics' 카테고리의 다른 글

Samtools, Bcftools 설치 방법  (1) 2018.05.14
GATK4 설치  (0) 2018.02.20
Variant calling 이란?  (0) 2017.11.20
IGV Tutorial [BAM File]  (0) 2017.10.16
Sam File  (0) 2017.10.16