반응형

GCC 설치하기

 

 

 

GCC 홈페이지 - https://gcc.gnu.org/

 

GCC는 GNU C Compiler의 약자로서 일반적인 프로그램 설치를 위해 많이 쓰인다.

 

9/19/2017 기준으로 최신 버전은 7.2이다. 최근 1~2년 사이에 major update가 많이 진행되었는지 숫자가 높아졌다.

 

 

설치 방법은 어렵지 않지만 depedency가 있다.

 

gcc를 설치하기 위해서는 gmp 4.2+, mpfr 2.3.1+, mpc 0.8.0+ 가 필요하다. 

 

 

root권한이 있다면 libgmp-dev, libmpc-dev, libmpfr-dev를 시스템에 설치하면 되지만 local로 설치할 때는 각각 설치한 후 PATH를 잡아주는 번거로운 작업을 거쳐야 한다. 

 

Ubuntu

sudo apt-get install libgmp-dev libmpfr-devl libmpc-dev

 

Red Hat and Fedora

sudo yum install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel

 

Manual install

 

gmp, mpfr, mpc은 아래의 포스팅에서 설치방법을 확인할 수 있다. gmp, mpfr, mpc 순서대로 설치해야 한다.

 

2017/09/19 - [linux] - GMP 설치하기

 

2017/09/19 - [linux] - MPFR 설치하기

 

2017/09/19 - [linux] - MPC 설치하기

 

 

이제 gcc를 설치하기 위해 가까운 미러 사이트인 일본 (http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/)에 들어가서 원하는 버전을 다운 받자. 

 

현재 최신버전인 7.2 버전으로 진행하였다.

 

wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-7.2.0/gcc-7.2.0.tar.gz

tar -zxf gcc-7.2.0.tar.gz

cd gcc-7.2.0

./configure --prefix=/PATH/TO/INSTALL/GCC--with-gmp=/PATH/TO/INSTALL/GMP --with-mpfr=/PATH/TO/INSTALL/MPFR --with-mpc=/PATH/TO/INSTALL/MPC 

make && make install

위의 명령어에서 gmp, mpfr, mpc를 Manual하게 설치하지 않았다면 configure할 때 PATH는 따로 잡아주지 않아도 된다.

 

 

 

make 할 때 에러가 떠서 아래처럼 fix했다.

 

1.

error: 'GATHER_STATISTICS' was not declared in this scope

 

라는 에러가 뜨면서 설치가 중단됐는데 아래와 같이 변수를 unset해주니 해결됐다.

 

unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE

출처 : https://stackoverflow.com/questions/29981492/gcc-4-9-2-installation-failed-on-linux

 

 

2.

 

libmpc.so.3가 잡히지 않아서 LD_LIBRARY_PATH로 library 경로를 따로 잡아주었다.

export LD_LIBRARY_PATH=/PATH/TO/INSTALL/GMP/lib:/PATH/TO/INSTALL/MPFR/lib:/PATH/TO/INSTALL/MPC/lib:$LD_LIBRARY_PATH 

 

3.

configure: error: I suspect your system does not have 32-bit development libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib. 

64bit only compiler로 하고싶지 않아서 --enable-multilib 옵션을 추가하였다.

 

 

반응형

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

MPFR 설치하기  (0) 2017.09.19
GMP 설치하기  (1) 2017.09.19
cURL 로컬 설치하기  (0) 2017.08.24
Repeatmasker 설치  (0) 2017.05.05
GBrowse2 설치하기  (0) 2017.04.25
반응형

Phylip 설치 및 실행하기




홈페이지 - http://evolution.genetics.washington.edu/phylip.html


University of Washington에서 만든 간단한 phylogenetic tree를 그려주는 프로그램이다.


몇 안되는데 True or False 값으로만 유전자 존재 유무를 체크하고 그려주는 binary phylogenetic tree 프로그램이다. MSA로 진행하는 프로그램을 Cluster Omega를 포함해서 많으니 그 쪽을 참고하기 바란다. binary input을 사용하는 모듈은 clique이다.


주의해야 할 점은 발현하는 유전자 FPKM cutoff를 주고 그 이상 발현되는 유전자만을 따로 추려내도록 해야 한다. 


mis-aligned된 reads로 인한 FPKM을 고려하지 않으면 결과가 의도치 않은 방향으로 나올 것이다.



윈도우 버전으로 사용할 때는 따로 설치는 필요 없고 다운받은 파일의 압축만 풀면 된다.


Linux 버전으로 사용할 때는 tar.gz 파일을 받아서


tar -zxf phylip-3.696.tar.gz

cd phylip-3.696/src/

make -f Makefile.unx install


하고 나면 phylip-3.696/exe 폴더 내에 실행파일이 생긴 것을 확인할 수 있다.



실행파일을 열면 바로 infile이 없다고 나오면서 inputfile의 이름을 넣으라고 나오는데 윈도우에서는 실행한 위치에 파일이 있어야 읽을 수 있다. linux에서는 실행한 곳에 파일이 있으면 된다.


inputfile의 format은 윈도우버전의 exe/testdata 폴더 안에서 확인할 수 있는데 프로그램이 오래 전에 만들어져서 tab으로 간격을 두지 않고 띄어쓰기의 숫자로 간격이 정해진다. 


반드시 testdata를 보고 띄어쓰기의 개수를 맞춰서 진행하면 에러 없이 진행되는 것을 확인할 수 있다.




반응형

'bioinformatics' 카테고리의 다른 글

MHAP 설치 및 실행하기  (0) 2017.09.19
Racon 설치 및 실행하기  (0) 2017.09.19
CAFE v4.0 설치 및 실행하기  (0) 2017.09.11
Synteny Circos plot 그리기  (0) 2017.08.30
Arrow/Quiver 설치 및 사용하기  (0) 2017.08.24
반응형

CAFE v4.0 설치 및 실행하기




CAFE v4.0 Software for Computational Analysis of gene Family Evolution


gene gain and loss를 계산하기 위해 CAFE 설치를 해보기로 했다.


homepage - https://hahnlab.github.io/CAFE/index.html



다운로드는 홈페이지 내의 다운로드 탭에서 github 링크를 따라가서 cafe-version.tar.gz을 다운받는다.


tar xf cafe*tar.gz 


./configure 

make


CAFE/release/cafe 실행파일이 생성된다.



tutorial.pdf 파일을 보고 따라해 보자.


1. ensembl biomarket에서 종의 protein sequence를 받아야 한다.



ensembl genes, species를 고르고 attributes에서 sequence->peptide를 고르고 header information에서 trascript ID를 빼고 CDS length를 넣어주면 된다.


Results를 누르고 이메일로 받거나 그냥 다운받으면 된다.


다운받으면 모두 한 폴더에 넣은 뒤 압축을 풀면 된다.



2. longest isoform 만을 추려내야 한다.


cafe/manual/tutorial files에 가면 script가 존재한다.  (https://iu.box.com/v/cafetutorial-files)


튜토리얼 파일 전부를 받으면 용량이 5Gb가 넘어가니 필요한 부분만 따로 받는것이 좋다.


python python_scripts/cafetutorial_longest_iso .py -d twelve_spp_proteins/

cat twelve_spp_proteins/longest*.fa > makeblastdb_input.fa


-d 뒤에는 sequence가 있는 폴더명을 적어주면 되고 폴더 안에있는 .fa 확장자 파일을 읽어서 longest 파일만을 가져온다.

여러 종의 longest 파일이 각각 존재하니 한 파일로 묶어 주어야 한다.



3. blast로 align하기.


makeblastdb -in makeblastdb_input.fa -dbtype prot -out blastdb

blastp -num_threads 4 -db blastdb -query makeblastdb_input.fa -outfmt 7 -seg yes > blast_output.txt


시간이 상당히 많이 걸린다. tutorial에서는 align된 결과도 위의 tutorial files에서 제공하고 있다.



4. clustering 하기


mcl이 설치되어 있어야 한다. 


wget https://www.micans.org/mcl/src/mcl-latest.tar.gz

tar -zxf mcl-latest.tar.gz 

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

make && make install

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


이후에 mcl를 사용해서 gene family 레벨에서 clustering을 진행한다.


grep -v "#" blast_output.txt | cut -f 1,2,11 > blast_output.abc

mcxload -abc blast_output.abc --stream-mirror --stream-neg-log10 -stream-tf 'ceil(200)' -o blast_output.mci -write-tab blast_output.tab

mcl blast_output.mci -I 3

mcxdump -icl out.blast_output.mci.I30 -tabr blast_output.tab -o dump.blast_output.mci.I30


tutorial에 있던 python script를 사용해서 결과를 만든다.

cafetutorial_mcl2rawcafe.py -i dump.blast_output.mci.I30 -o unfiltered_cafe_input.txt -sp "ENSAPLG ENSFALG ENSGALG ENSTGUG ENSMGAG"

cafetutorial_clade_and_size_filter.py -i unfiltered_cafe_input.txt -o filtered_cafe_input.txt -s



5. tree 계산하기


((( cow :0.09289 ,( cat :0.07151 , horse :0.05727) :0.00398) :0.02355 ,(((( orang

:0.01034 ,( chimp :0.00440 , human :0.00396) :0.00587) :0.00184 , gibbon

:0.01331) :0.00573 ,( macaque :0.00443 , baboon :0.00422) :0.01431)

:0.01097 , marmoset :0.03886) :0.04239) :0.03383 ,( rat :0.04110 , mouse

:0.03854) :0.10918) ;


위와 같은 NEWICK 포맷의 종간 거리가 계산되어 있는 파일이 필요하다.


튜토리얼에서는 이미 계산되어 있는 경우 그냥 가져다 쓰면 된다고 나와있지만 그런 경우는 별로 없을 것 같다.


ultrametric으로 새로 계산하기 위해서 r8s 라는 프로그램을 소개하고있다.



phylogenetic tree를 계산하는 방법은 세 가지 인데


Cladogram - branch의 길이는 의미 없음. 대략적으로 어떻게 분류되는지만 보여준다.

Phylogram - 길이는 유전적인 관계를 나타낸다. 같은 종류에 묶여있더라도 길이에 따라 더 가까운 관계가 존재한다.

Ultrametirc - Phylogram과 비슷하나 유전적인 관계보다 시간적인 요소에 가중치를 두었다. 



r8s는 phylogram으로 계산한 방식을 ultrametric으로 바꿀 수 있는 프로그램인데 링크가 다 깨져 있어서 접속 불가.



ultrametric tree를 그려주는 BEAST 프로그램으로 대체하였다.


2017/09/27 - [bioinformatics] - BEAST 설치 및 실행하기










반응형

'bioinformatics' 카테고리의 다른 글

Racon 설치 및 실행하기  (0) 2017.09.19
Phylip 설치 및 실행하기  (0) 2017.09.18
Synteny Circos plot 그리기  (0) 2017.08.30
Arrow/Quiver 설치 및 사용하기  (0) 2017.08.24
SyMap 설치 및 실행하기  (0) 2017.08.23
반응형

De novo assembly of the Aedes aegypti genome using Hi-C yields chromosome-length scaffolds



cost-effective chromosome-length scaffold를 소개하고 있다. short-read로 생산된 draft genome을 chromosome level로 올리려면 long read나 optical mapping data가 필요하였다. 기존의 Hi-C 방식의 scaffold는 chromosome scale inversion, misjoin 등을 만들어서 어려움이 있었지만 이 논문에서 새로운 알고리즘 (split,anchor, order, and orient) Figure1. 을 소개하면서 그 방식을 통하여 scaffold하면 에러를 줄일 수 있다고 말하고 있다. 실제로 only short Illumina reads(67X)로 생산된 human genome에 in situ Hi-C 데이터(6.7X)를 사용해서 scaffolding했을 때 23개의 large chromosome이 전체의 99.5%의 서열을 가지고 있었다. Zika virus의 운반책인 이집트모기의 genome을 같은 방식으로 assembly 하였고 다른 strain의 모기도 Hi-C 데이터를 생산하여 두 종이 150-200million years 전에 분화되었으며 특정 chromosome에서의 rearrangement가 일어나는 것을 확인하였다. Hi-C 데이터를 생산하고 위의 알고리즘을 적용하면 포유동물의 genome을 만드는데 10,000 달러 이하로 만들 수 있을 것이라고 말하고있다.



resource -

Dudchenco O et al., De novo assembly of the Aedes aegypti genome using Hi-C yields chromosome-length scaffolds, Science, 2017

반응형
반응형

ArgParse 모듈 사용하기




if Pkg.installed("ArgParse") == nothing

        println("Pakage 'ArgParse' will be installed...")

        Pkg.add("ArgParse")

end


using ArgParse


ArgParse 모듈은 스크립트의 옵션을 조절하게 해 준다.


프로그램을 만들 때 ArgParse를 사용하면 argument 관리하기가 훨씬 쉽다. 위의 내용을 스크립트 상단에 추가하면 ArgParse가 없으면 설치하고 불러온다.


공식 설명은 http://carlobaldassi.github.io/ArgParse.jl/stable/ 에 있다.


using ArgParse function parse_commandline() s = ArgParseSettings() @add_arg_table s begin "--opt1" help = "an option with an argument" "--opt2", "-o" help = "another option with an argument" arg_type = Int default = 0 "--flag1" help = "an option without argument, i.e. a flag" action = :store_true "arg1" help = "a positional argument" required = true end return parse_args(s) end function main() parsed_args = parse_commandline() println("Parsed args:") for (arg,val) in parsed_args println(" $arg => $val") end end main()



세 가지 조건의 argument를 만들 수 있는데


1. 옵션

2. flag

action = :store_true 

가 들어가며 true or false값으로만 저장된다.

3. 필수

required = true 

이며 반드시 값이 들어가야 한다.


arg1에 넣어준 값은 parsed_args["arg1"] 으로 불러올 수 있다.



반응형
반응형

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

+ Recent posts