반응형

Synteny Circos plot 그리기.




2017/08/23 - [bioinformatics] - SyMap 설치 및 실행하기

2017/08/15 - [bioinformatics] - Circos plot 그리기.


두 프로그램을 사용하여 synteny circos plot을 그려보고자 한다.



SyMap에서는 


symap결과는 align이 끝난 뒤 SyMAP Queries 로 들어가 받을 수 있는 CSV 파일을 쓴다.


받을 때 반드시 Select columns에 가서 각 assembly의 start와 end를 체크해서 block의 시작과 끝을 다운받는다.


이제 csv 파일을 circos의 link 포맷으로 바꿔야 하는데 link의 포맷은 아래와 같다.


...
hs1 100 200 hs2 250 300
hs1 400 550 hs3 500 750
hs1 600 800 hs4 150 350
...


assembly1 start1 end1 assembly2 start2 end2


의 양식으로 바꾸면 된다. 여기서 assembly1과 assembly2는 당연히 circos의 karyotype을 설정할 때 넣어줬던 이름과 같아야한다.


또한 link의 개수가 25000개를 넘어가면 너무 많다는 경고와 함께 너무 많은 링크는 해석하기 어려울 것이라고 하면서 실행되지 않는다. 


  but the maximum is currently set at [25000]. To increase this number change

  max_links in etc/housekeeping.conf. Keep in mind that drawing that many links

  may create an image that is too busy and uninterpretable.


etc/housekeeping.conf에서 변수 조절 할 수 있으나 별로 추천하지 않는다. 차라리 block의 사이즈에 제한을 두고 link의 개수를 줄이는 것이 좋다.



Circos에서는 configure파일을 조정해줘야 하는데


1. 두 assembly의 karyotype을 모두 불러오기.

2. 위의 파일을 불러오기.

3. color, orientation 조절하기.


등을 모두 설정하면 아래와 같은 그림을 그릴 수 있다.




실제로 위의 그림을 그릴 때 사용한 옵션은 각각


1.


karyotype = circos/circos-0.69-/data/karyotype/assembly1.txt,circos/circos-0.69-3/data/karyotype/assembly2.txt


2.


<links>


<link>

ribbon = no

file          = assembly1_to_assembly2.link

color         = black_a5

radius        = 0.95r

#bezier_radius = 0.1r

thickness     = 1

</link>


</links>


3. 


chromosomes_order = assemblya1,assemblya2,assemblya3,assemblya4,assemblya5,assemblya6,assemblya7,assemblya8,assemblya9,assemblya10,assemblya11,assemblya12,assemblya13,assemblya14,assemblya15,assemblya16,assemblya17,assemblya18,assemblya19,assemblya20,assemblya21,assemblya22,assemblya23,assemblya24,assemblya25,assemblya26,assemblya27,assemblya28,assemblya29,assemblya30,assemblya31,assemblyaX,assemblybX,assemblyb31,assemblyb30,assemblyb29,assemblyb28,assemblyb27,assemblyb26,assemblyb25,assemblyb24,assemblyb23,assemblyb22,assemblyb21,assemblyb20,assemblyb19,assemblyb18,assemblyb17,assemblyb16,assemblyb15,assemblyb14,assemblyb13,assemblyb12,assemblyb11,assemblyb10,assemblyb9,assemblyb8,assemblyb7,assemblyb6,assemblyb5,assemblyb4,assemblyb3,assemblyb2,assemblyb1

chromosomes_reverse = assemblybX,assemblyb31,assemblyb30,assemblyb29,assemblyb28,assemblyb27,assemblyb26,assemblyb25,assemblyb24,assemblyb23,assemblyb22,assemblyb21,assemblyb20,assemblyb19,assemblyb18,assemblyb17,assemblyb16,assemblyb15,assemblyb14,assemblyb13,assemblyb12,assemblyb11,assemblyb10,assemblyb9,assemblyb8,assemblyb7,assemblyb6,assemblyb5,assemblyb4,assemblyb3,assemblyb2,assemblyb1


그리고 input으로 넣는 link파일에서 크로모좀이 같으면 color=크로모좀을 넣고

다르면 color=black을 넣는다.


assemblya8 64927554        64987328        assemblyb8 67051330        67111104        color=chr8

assemblya26        372029  420198  assemblyb4 25320273        25373211        color=black


3번이 조금 헷갈릴 수 있을거 같은데 assembly a와 assembly b를 각각 assembly 이름으로 바꿔놓으면 된다.




반응형

'bioinformatics' 카테고리의 다른 글

Phylip 설치 및 실행하기  (0) 2017.09.18
CAFE v4.0 설치 및 실행하기  (0) 2017.09.11
Arrow/Quiver 설치 및 사용하기  (0) 2017.08.24
SyMap 설치 및 실행하기  (0) 2017.08.23
GMAP 설치 및 실행하기  (0) 2017.08.22
반응형

Nature or Nurture (유전 또는 환경) ? 



Nature or nurture에 대한 이미지 검색결과



태어나면서 부터 가지고 태어난 유전적 요인으로 인한 영향이 클지 아니면 자라면서 받은 주변 환경의 영향이 클지에 대한 토론은 꽤 오래 전부터 하고있었다. 문헌에는 17세기 문학 작품 셰익스피어의 The Tempest에서 발견할 수 있다.

(원문, The Tempest 4.1: a born devil, on whose nature nurture can never stick)


물론 저 때 당시의 유전이란 개념은 제대로 없었겠지만 천성? 쯤으로 생각했었을듯... 큰 의미에서는 유전이랑 다르지 않다고 생각한다.



일반적으로 서로 다른 환경에서 자란 유전적 정보 동일한 일란성 쌍둥이를 찾아서 얼마나 비슷한지를 조사하는 식으로 유전과 환경이 끼치는 영향력을 조사한다. 

근거는 부족한 내용이지만 이미 BC 5세기 부터 Hippocrates가 쌍둥이에 대한 관심을 가지고 있었고 비슷한 질병에 잘 걸린다라는 것을 밝힌 바 있다고 한다. 

현대에 와서는 Sir Francis Galton이라는 사람이 유전과 환경에 대한 연구를 진행하였으나 이 당시에는 일란성 쌍둥이와 이란성 쌍둥이를 구분하지는 못 했다. 


현대에서는 King's college London 이라는 세계 대학 랭킹 25위 안에 드는 대학에 Department of twin research and genetic epidemiology 라는 곳이 쌍둥이에 대한 연구를 많이 하고 있다. 아마도 쌍둥이 연구 기관중에는 가장 큰 것이라고 생각된다. 총 12,000 쌍의 성인 쌍둥이가 등록되어 있으며 2010년 이후로 출판한 논문 수만 500편이 넘어간다고 한다.



일란성 쌍둥이라고 할 지라도 DNA가 100% 일치하는 것은 아니다. 하나의 난자와 정자에서 출발하기 때문에 수정란일 때의 DNA는 동일하지만 성장 과정에서 계속해서 DNA를 복사, 분리하는 과정이 진행되고 이 과정에서 염기 서열에 변이가 일어날 수 있다. 이러한 변이가 일어날 확률이 매우 낮으며 같은 것에서 시작해서 차이가 나는것이 처음붙터 차이가 나는것 보다는 당연히 비슷할 것이고 따라서 무작위로 두 사람을 비교하는 것 보다는 쌍둥이의 DNA가 당연히 훨씬 비슷할 것이다. 

DNA의 염기서열 변화로 인한 차이뿐만 아니라 외부 환경이 epigenetic한 변화를 일으킬 수도 있다. (epigenetic이란 DNA 염기서열 변화는 없지만 다른 요인으로 유전자 발현을 조절하는 것을 말한다. 대표적으로 DNA metylation, histone modification, miRNA expression 등이 해당한다.)



즉 유전이 기본 베이스가 되나 외부 환경 또는 무작위 변수에 의하여 DNA염기 서열 자체가 바뀌거나 전사, 번역에 영향을 주는 변이가 생길 수 있고 그러면 형질 자체가 다르게 발현될 수도 있다는 얘기다. 



재밌는건 관련 문헌 조사를 해보면 유전 또는 환경에 대해서 가장 관심이 많은 분야는 교육과 건강이다. 


교육 부분에서는 지능 지수(IQ)가 얼마나 비슷한지를 본다. 


건강 부분에서는 비만 정도나 특정 질환에 대한 저항성 등을 본다.



하지만 여전히 궁금한건 그래서 둘 중 누가 더 영향을 강하게 끼치느냐? 일 것이다.


정답은 "무엇을 보느냐에 따라 다르다" 이다.



다수의 논문에서 IQ는 어렸을 때는 유전적인 비율이 적다가 성인이 되면서 높아지는 것으로 나타난다...? 이유는 정확히 밝혀지지 않았다. 1994년 Behavior Genetics에 출판된 논문을 보면 이 유전적인 비율은 어떤 특성인지에 따라 또 달라짐. 말하기, 기억력, 등등에서 비율이 다르다고 한다.



2012년 nature 자매지인 Internation Journal of Obesity에 출판된 논문 (J Naukkarinen et al, Causes and consequences of obesity: the contribution of recent twin studies, International Journal of Obesity, 2012) 에서는 비만 정도는 라이프 스타일에 영향을 많이 받을 것이라고 이 전까지 생각해 왔지만 유전적 요인도 크게 작용한다고 말하고 있다.  658명의 일란성 쌍둥이를 25년간 추적했을 때 두 쌍둥이간의 BMI지수가 significant하게 차이나는 쌍둥이는 18쌍 밖에 없었다고 한다. 비슷한 환경에서 자라는 일란성 쌍둥이는 라이프 스타일도 비슷하겠지만 25년동안 추적한다면 독립한 이후에도 비슷하다고 해석할 수 있을 것 같다. but, 어렸을 때 식습관이 비슷하게 형성된다면 독립 이후에도 영향을 줄 것 같다는 생각이 든다.


2011년에 Epigenomics 에서 출판된 논문 (Alegría-Torres JA, Baccarelli A, Bollati V. Epigenetics and lifestyle. Epigenomics. 2011;3(3):267-277. doi:10.2217/epi.11.22.)  에서는 영양, 행동, 스트레스, 육체적 활동, 일하는 습관, 흡연이나 음주 여부등의 생활 습관이 epigenetic한 영향을 끼친다고 말하며 관련 논문을 정리한 바 있다. 




결론은 아직까지 유전이 어느정도, 환경이 어느정도 영향을 미친다고 말 할 단계는 아니지만, 그것이 지능 지수인지, 비만인지, 또는 특정한 질병에 대한 저항성인지에 따라 어떤 것이 더 영향을 크게 미치는지는 대략적으로만 알고있다. 관련 연구가 진행 될 수록 어떠한 행동을 하면 그것이 긍정적으로 또는 부정적으로 작용하는지 알게 될 것이며 (뇌 발달에 유아기 환경이 영향을 크게 미친다는 것은 이미 잘 알려져 있음) 향후 사람들의 행동에 영향을 줄 수 있을 것이라고 생각된다.


 

Reference -


Alegría-Torres JA, Baccarelli A, Bollati V. Epigenetics and lifestyle. Epigenomics. 2011;3(3):267-277. doi:10.2217/epi.11.22.


J Naukkarinen et al, Causes and consequences of obesity: the contribution of recent twin studies, International Journal of Obesity, 2012


반응형
반응형

StatsBase 모듈 사용하기




Julia에서 수치를 다 구한 뒤에 그에 대한 stats을 구할 때 사용할 수 있다.


Array에다가 값을 다 넣은 뒤에 summarystats 함수를 사용하면 편하다.


but Array type에 따라서 자꾸 에러가 나서 정리해 보고자 한다.


Summarystats 함수는 real-valued array를 받아서 mean, minimum, 25 percentile, median, 75 percentile and maximum을 구해준다.


help?> summarystats()

  summarystats(a)


  Compute summary statistics for a real-valued array a. Returns a SummaryStats object containing the mean,

  minimum, 25th percentile, median, 75th percentile, and maxmimum.



julia> summarystats(a)

Summary Stats:

Mean:           2.800000

Minimum:        1.000000

1st Quartile:   2.000000

Median:         3.000000

3rd Quartile:   4.000000

Maximum:        4.000000



먼저 summarystats()를 사용하기 위해서는 StatsBase 모듈을 불러와야한다.


using StatsBase


만약 StatsBase가 설치되어 있지 않다면


Pkg.add("StatsBase")


로 설치할 수 있다.


설치된 모듈은 $HOME/.julia/lib/version/ 안에 있다.



사용법은


summarystats는 real array를 받기 때문에 julia에서는 array선언할 때 아래와 같이 선언해 줘야 한다.


testarray = Array{Real}(0)


Array(Real,0) 으로 선언할 수도 있지만 이렇게 선언하고 코드를 돌리면 


WARNING: Array{T}(::Type{T}, m::Int) is deprecated, use Array{T}(m) instead.


위와 같은 선언은 deprecated되었다고 말한다.


Array를 선언한 후에 값을 넣을 때는 append!를 하면 된다.


append!(testarray,"value")


append!가 끝나면 아래와 같이 마무리 해주면 된다.


result = summarystats(testarray)



println(result)


Summary Stats:

Mean:           290.114559

Minimum:        2.000000

1st Quartile:   89.000000

Median:         128.000000

3rd Quartile:   180.500000

Maximum:        95925.000000


결과가 제대로 나오는 것을 확인할 수 있다!

반응형
반응형

cURL 로컬 설치하기




Julia에서 Pkg.add를 하려고 했는데 아래와 같은 에러메세지가 나타났다.


julia> Pkg.add("StatsBase")

INFO: Installing Plots v0.12.2

INFO: Building Plots

INFO: Cannot find deps/plotly-latest.min.js... downloading latest version.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0

curl: (35) SSL connect error

==================================================[ ERROR: Plots ]==================================================


LoadError: failed process: Process(`curl -L -f -o /home/kyoungwoo/.julia/v0.6/Plots/deps/plotly-latest.min.js https://cdn.plot.ly/plotly-latest.min.js`, ProcessExited(35)) [35]

while loading /home/kyoungwoo/.julia/v0.6/Plots/deps/build.jl, in expression starting on line 7


====================================================================================================================


==================================================[ BUILD ERRORS ]==================================================


WARNING: Plots had build errors.


 - packages with build errors remain installed in /home/kyoungwoo/.julia/v0.6

 - build the package(s) and all dependencies with `Pkg.build("Plots")`

 - build a single package by running its `deps/build.jl` script


====================================================================================================================

INFO: Package database updated

INFO: METADATA is out-of-date — you may not have the latest version of StatsBase

INFO: Use `Pkg.update()` to get the latest versions of your packages


curl이 제대로 자동하지 않는 것 같아 shell 화면에서 명령어만 따로 실행해 보았다..


Thu Aug 24 15:21:26 [kyoungwoo@biglab-master gtf_to_fasta]$ curl -L -f -o /home/kyoungwoo/.julia/v0.6/Plots/deps/plotly-latest.min.js https://cdn.plot.ly/plotly-latest.min.js

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

curl: (35) SSL connect error


SSL connect error 35가 나오는 것을 확인하였다.


구글링해서 문제 해결방법을 찾아보니 curl의 버전이 낮아서 최신버전을 설치하라고 해서



local로 cURL을 설치하는 법을 찾아보았다.



들어가서 다운로드 후 configure 파일을 생성하기 위해서는 ./buildconf 를 실행해 줘야 한다.


buildconf 후에 configure 파일이 만들어지면 


./configure --prefix=/PATH/TO/INSTALL/CURL

make && make install


export PATH = /PATH/TO/INSTALL/CURL/bin:$PATH

export PATH = /PATH/TO/INSTALL/CURL/lib:$PATH


끝!


Julia 명령도 정상적으로 잘 실행되는 것을 확인했다.


반응형

'Computer Science > linux' 카테고리의 다른 글

GMP 설치하기  (1) 2017.09.19
GCC 설치하기  (1) 2017.09.18
Repeatmasker 설치  (0) 2017.05.05
GBrowse2 설치하기  (0) 2017.04.25
Perl 설치 및 실행하기  (0) 2017.04.25
반응형

PacificBiosciences 에서 제공하는 Arrow/Quiver 설치 및 사용하기.




Pacbio only assembly는 Canu나 Falcon 등의 프로그램으로 진행됨. assembly가 끝나고 난 뒤 polish과정을 거쳐야 하는데 polish는 SNPs이나 small tandem repeat등으로 인해 assembly에 생기는 작은 오류를 수정하는 과정이다.


과거에는 Quiver라는 이름으로 제공되었으나 legacy가 되고 Arrow로 이름이 바뀌었다.

(정확히는 프로그램 이름은 여전히 Quiver이나 안에 있는 알고리즘이 Arrow가 쓰이는 것이다.)



git hub에서 GenomicConsensus라는 이름으로 제공되는 패키지를 받아서 설치해야한다.



GenomicConsensus는 Python 모듈이며 2.7+ 버전을 요구한다. (3.X버전은 안됨)


git clone 설치 후 


python setup.py install


로 설치 가능한데 


아래와 같은 dependency가 필요하다.


        'pbcore >= 1.2.9',

        'pbcommand >= 0.3.20',

        'numpy >= 1.6.0',

        'h5py >= 2.0.1',

        'ConsensusCore >= 1.0.1'

        # , 'ConsensusCore2 >= 0.9',

 

다른 모듈들은 pip 등으로 설치 가능하나 ConsensusCore는 따로 설치해 줘야 한다.


ConsensusCore2는 legacy로 들어간듯 하고 그냥 ConsensusCore를 설치하면 된다.



Pacbio에서 만든 파이썬 모듈같다. 위와 마찬가지로


Python setup.py install 


하면 되는데 이번엔 SWIG를 설치하라고 한다....



SWIG는 인터페이스 컴파일러라는데 정확히는 뭔지 파악 불가..


http://www.swig.org/download.html


설치방법은 일반적인 프로그램이랑 같다.


./configure --prefix=/PATH/TO/INSTALL/SWIG

make && make install


export PATH=/PATH/TO/INSTALL/SWIG/bin:$PATH


SWIG을 설치하고 다시 ConsensusCore2를 설치하면 된다.






반응형

'bioinformatics' 카테고리의 다른 글

CAFE v4.0 설치 및 실행하기  (0) 2017.09.11
Synteny Circos plot 그리기  (0) 2017.08.30
SyMap 설치 및 실행하기  (0) 2017.08.23
GMAP 설치 및 실행하기  (0) 2017.08.22
AGOUTI 설치 및 실행하기  (0) 2017.08.21
반응형

SyMap 설치 및 실행하기




SyMap은 university of arizona의 arizona genomics computational lab에서 개발한 프로그램으로


두 개 이상의 genome간의 synteny 분석을 하는데 사용되는 tool이다.


홈페이지 : http://www.agcol.arizona.edu/software/symap/index.html


Soderlund et al., 2006, SyMAP: A system for discovering and viewing syntenic regions of FPC maps, Genome Res. 16:1159-1168.

Soderlund et al., 2011, SyMAP v3.4: a turnkey synteny system with application to plant genomes, Nucleic Acids Res. 39(10):e68.



대부분의 synteny alignment 프로그램은 2개 이상의 genome을 지원하지 않는다. 


SyMap은 아래와 같이 Rice의 Chr1을 기준으로 양 옆으로  genome을 놓고 alignment 결과를 비교할 수 있다.


하지만 Chromosome 하나씩 골라서 비교를 하고 있기 때문에 genome 전체적인 synteny map을 보고싶다면 circos plot을 그리는 것을 추천한다.





circos plot으로 그리면 아래와 같이 나온다. 



3D version으로 여러개의 chromosome을 비교할 수도 있지만 아래의 결과는 서버 내에서 graphical support가 있어야 그릴 수 있다. (VGA 카드)




설치 및 실행 방법은


실행은 GUI를 쓰고 있기 때문에 DISPLAY가 필요하다.


terminal 프로그램을 통해서 리눅스 서버에서 작업을 하고 있다면 X11 DISPLAY가 필요하다고 나올 것이다.


xming 프로그램을 추천한다.


xming을 설치하고 실행한 후 다시 symap을 실행하면 열린다.



symap -20480N -no3d -p 16



으로 실행하면 20G의 메모리를 사용하며 CPU는 16개를 사용하고 3D plot은 찍지 않겠다는 의미로 실행이 된다.


메모리 디폴트 값이 매우 적기 때문에 large genome을 사용하고있다면 필히 메모리를 늘려야 하며 3d 는 서버에 VGA카드가 없으면 해당 옵션을 넣어주지 않으면 프로그램 실행 도중 에러가 날 수 있다. CPU는 프로그램 내에서도 바꿀 수 있기 때문에 넣지 않아도 무관하다.




실행이 정상적으로 되면 위와 같은 화면이 나온다.


여기서 팁을 주자면 모니터 좌측 상단에 실행이되며 이동이 불가능한 상태로 켜지는데 마우스를 창 가장 우측이나 하단에 놓고 사이즈를 조절하면 




위와같이 최대화가 보이도록 조절 할 수 있게 된다!


Project로 각각의 genome과 annotation을 넣어서 Project끼리 비교를 하게 되는데 /PATH/TO/INSTALL/SYMAP/data/pseudo/ 안에 폴더를 생성하면 uncategorized 위치에 생성한 폴더 명과 일치하는 project가 생긴다. 


Project를 로딩 후 각각 genome fasta 파일과 annotation 파일의 경로를 넣은 뒤 loading하면 alignment 준비는 끝난다.


Alignment는 전체 genome을 쪼개서 주어진 CPU를 사용하여 진행하는데 테스트로 한 번 돌리면 포유동물 2.5Gb가 30개로 쪼개진다. CPU를 3, 5, 6개로 주면 시간을 최적화 할 수 있다.



Align된 결과는 data/pseudo_pseudo/ 폴더 안에서 찾을 수 있다. block이나 anchor 파일을 찾으면 block단위로 찾을 수 있다.

반응형

'bioinformatics' 카테고리의 다른 글

Synteny Circos plot 그리기  (0) 2017.08.30
Arrow/Quiver 설치 및 사용하기  (0) 2017.08.24
GMAP 설치 및 실행하기  (0) 2017.08.22
AGOUTI 설치 및 실행하기  (0) 2017.08.21
Augustus 설치 및 실행하기  (0) 2017.08.16
반응형

GMAP 설치 및 실행하기




GMAP: a genomic mapping and alignment program for mRNA and EST sequences

논문 https://doi.org/10.1093/bioinformatics/bti310



2005년 bioinformatics에 나온 논문으로 mRNA나 EST sequence를 genome에 alignment해주는 프로그램 이다.


꾸준히 업데이트 되는 중 


다운로드는 http://research-pub.gene.com/gmap/



최신 버전을 다운로드 받은 후


tar -zxf http://research-pub.gene.com/gmap/src/gmap-gsnap-*.tar.gz

./configure --prefix=/PATH/TO/INSTALL/GMAP

make && make install


gmap을 사용하기 위해서는 먼저 gmap_build를 해야함. 기타 alignment프로그램과 마찬가지로 indexing 작업이 선행되어야 한다.


gmap_build -d genomename genome.fasta


indexing이 끝나면 파일은 gmap/share/폴더로 들어간다. 다른 폴더로 옮기지 않으면 밑에 gmap 실행에서 -D를 바꿀 필요는 없다.


gmap -D PATH/TO/GENOME/DIRECTORY -d genomename -t threads -f output_file_format genome.fasta


-d 에는 위에서 genome build할 때 쓴 genomename을 쓰면 된다. 이후 parameter는 직접 옵션을 보고 넣으면 된다.


가능한 genomename을 보고 싶으면 -d 뒤에 ? 를 넣어서 실행하면 가능한 값을 보여준다.








반응형

'bioinformatics' 카테고리의 다른 글

Arrow/Quiver 설치 및 사용하기  (0) 2017.08.24
SyMap 설치 및 실행하기  (0) 2017.08.23
AGOUTI 설치 및 실행하기  (0) 2017.08.21
Augustus 설치 및 실행하기  (0) 2017.08.16
HMMER 설치 및 실행하기  (0) 2017.08.16
반응형

AGOUTI 설치 및 실행하기




AGOUTI: improving genome assembly and annotation using transcriptome data 


https://doi.org/10.1186/s13742-016-0136-3



transcriptome data로 genome assembly와 gene annotation을 ipmorving 시키는 프로그램 이다.


RNAPATH 라는 유사 프로그램이 2010년 genome research에 있다.


RNAPATH와의 가장 큰 차이는 denoise 방식을 거친다는 것이다.


Python 2.7+ 버전에서 실행 가능 하다.


git clone https://github.com/svm-zhang/AGOUTI.git


폴더 안에 agouti.py 스크립트가 있다.



python agouti.py scaffold -assembly FILE -bam FILE -gff FILE


input file은

1. genome (fasta)

2. paired-end RNA-seq mapping file (bam)

3. annotation (gff)




반응형

'bioinformatics' 카테고리의 다른 글

SyMap 설치 및 실행하기  (0) 2017.08.23
GMAP 설치 및 실행하기  (0) 2017.08.22
Augustus 설치 및 실행하기  (0) 2017.08.16
HMMER 설치 및 실행하기  (0) 2017.08.16
NCBI BLAST+ 설치 및 실행하기  (0) 2017.08.16
반응형

Genome으로부터 sequence 가져오기.




gtf, gff, bed format 등으로부터 sequence를 가져와야 할 때가 자주 생긴다.


julia에서 주의해야할 점은 start index가 0이 아니라 1이라는 것이다.


Plus strand일 경우 그냥 가져오면 되지만


Minus strand 일 때는 reverse complimentary한 sequence를 가져와야 한다.


comp = ['G' => 'C', 'T' => 'A', 'A' => 'T', 'C' => 'G', 'g' => 'c', 't' => 'a', 'a' => 't', 'c' => 'g']


if strand == '+'

sequence = reference[chromosome][startpos:endpos]

elseif strand == '-'

sequence = reverse(map(x -> comp[x] , reference[chromosome][startpos:endpos])

end


comp라는 dictionary를 만들어서 각각 대응되는 염기를 넣는다.


strand가 + 일 경우 genome sequence를 넣어둔 reference라는 dictionary에서 chromosome을 넣고 start와 end coordinate를 넣어주는 것으로 sequence를 가져오면 되지만, - 일 경우 +와 동일한 방법으로 가져온 sequence를 complimantary하게 바꾼 뒤 reverse함수를 사용해서 뒤집는다.




반응형
반응형

Julia 설치 및 실행하기




Julia. 아직 배우는 중이라 어떤 부분에서 장점이 있는지 파악하는 중이다.


Python과 C의 장점만을 가져와서 만드려고 했고 계산과학쪽에서 다루기 위하여 만들어졌다.


적어도 Python 보다는 배우기가 어렵다. but, 파이썬이 지나치게 쉬운거지 Julia가 어려워서는 아니다.



설치를 위해 홈페이지 https://julialang.org/ 에서 최신버전 linux binary 파일을 다운로드 한다. 아직 개발 -ing 중이기 때문에 버전이 1 이상으로 올라가지 않았으며 약 6개월 주기로 버전이 업데이트 되는듯 하다.


wget https://julialang-s3.julialang.org/bin/linux/x64/0.6/julia-0.6.0-linux-x86_64.tar.gz


압축을 풀고 나면 bin 폴더 안에 julia 실행 파일이 있다.



julia는 module을 설치할 때 Pkg.add("MODULE") 으로 설치할 수 있으며 $HOME/.julia/ver/MODULE 로 설치된다.


Julia에서의 장점은 module을 각자 개별 설치가 가능하다는 것이다. python 같은 경우 내 local 안에 python을 설치한 것이 아니라면 내가 module을 설치할 수 없다. but, julia는 그냥 설치하면 된다. 


내가 만든 프로그램을 남이 설치할 때 편하다. module이 있는지 체크하고 없다면 그냥 Pkg.add(MODULE) 되도록 코드를 짜면 된다.



나중에 따로 정리하겠지만 plotting 하는 모듈들을 테스트 해보고 있다. Python을 쓸 때는 rpy를 써야 했고 개인적으로 안익숙해져서 R과 Python을 번갈아 사용하면서 plotting을 하는 귀찮음이 있었는데 julia는 쉽게 할 수 있을 것으로 보인다.

반응형

+ Recent posts