반응형

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"] 으로 불러올 수 있다.



반응형
반응형

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
반응형

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는 쉽게 할 수 있을 것으로 보인다.

반응형
반응형

Python 설치 및 실행하기




Python은 프로그래밍 언어의 일종으로 배우기 쉽기 때문에 입문용으로 많이 사용된다.


Data science 분야에서 전반적으로 사용하고 있다. 


다운로드 경로 https://www.python.org/downloads/ 에서 원하는 버전을 다운로드 받는다.


tar -zxf Python-*.tgz

cd Python-3.5.1

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

make && make install



Python 2.X 버전은 python 모듈을 쉽게 설치할 수 있는 easy_install이나 pip를 기본적으로 제공하고 있지 않다.


setuptools를 다운로드 받아서 설치해 줘야 한다.



setuptools를 다운 받았으면 설치한 python을 사용하여 아래와 같이 입력 한다.


python setup.py install


그러면 python/bin 폴더에 easy_install이 생긴다.


pip를 설치하기 위해서는 다시 한 번 아래처럼 입력 한다.


easy_install pip


bin 폴더에 pip도 생겼다.



pip를 사용하여 모듈을 설치할 때 pip install <MODULE> 를 입력하면 된다.


반응형

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

Primer 서열 분석을 위한 python 코드  (0) 2021.08.17
String Format으로 길이 고정하기  (0) 2020.06.24
python multi-level argparse  (0) 2019.07.12
python 파일 입출력  (0) 2019.07.12
cannot mkdir R_TempDir 에러  (0) 2016.09.07
반응형

http://www.repeatmasker.org/RMDownload.html 에 접속


1. perl 버전이 5.8.0 이상인지 확인

2. Search Engine으로 사용할 프로그램 다운로드

3. Repeatmasker 다운로드.


tar zxf RepeatMasker-open-?-?-?.tar.gz 


cd RepeatMasker


perl ./configure


1. 사용할 perl의 PATH

2. Repeatmasker를 설치할 PATH

3. trf의 PATH ( trf 실행 파일의 주소까지 넣어야 함 )

4. 설치할 Search Engine. 적어도 한 가지를 설치하여야 하며 이번에는 bin folder를 경로에 입력.


으로 설치가 끝남.


Repeatmakser 4.0.6은 library의 업데이트를 필요로 하므로 작업이 더 필요한데 4.0.7은 그냥 진행 가능함.



설치가 끝나면 실행 명령은 


RepeatMasker -species <human> -q <hg38.fa>


human은 약 1주일 정도 소요됨.




※ RepeatMasker 사용시 simple repeat을 찾기 위해 trf를 사용하는데 4.0.6 기준으로 trf는 GLIBC_2.14 library를 필요로 함.


error message = trf409.linux64: /lib64/libc.so.6: version `GLIBC_2.14' not found


프로그램을 돌릴 때 trf가 제대로 안돌아 가더라도 결과가 나오기 때문에 프로그램이 정상적으로 돌아간다고 착각할 수 있음.


미리 trf를 따로 실행해서 제대로 결과가 나오는지 확인 필요함.



반응형

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

GCC 설치하기  (1) 2017.09.18
cURL 로컬 설치하기  (0) 2017.08.24
GBrowse2 설치하기  (0) 2017.04.25
Perl 설치 및 실행하기  (0) 2017.04.25
유닉스 명령어 grep, sed, awk 사용해보기  (0) 2016.08.24
반응형

Perl과 apache가 설치되어 있어야함.


windows버전은 GBrowse 1.70 버전까지 지원했다는 글이 있는데 현재는 확인 불가 ( 시도해 보았으나 성공하지 못함. )


Gbrowse2 다운로드 url : https://sourceforge.net/projects/gmod/files/Generic%20Genome%20Browser/


perl module을 다수 설치해야함.


perl Build.pl을 해서 초기 설정을 잡아주어야 함 이 때 module이라는 이름의 perl module이 설치되어 있지 않다면 cpan Module::Build 부터 해주어야 함.


그 이후에는 ./Build installdeps 를 하면 dependency를 알아서 설치해줌. but 수동 설치가 필요한 부분이 존재함


1. 

Please enter the location of Kent source tree: 

Can't find the bigWig.h and jkweb.a files at this location.

Try again, or hit <enter> to cancel: 


Kent source tree는 Kentutils를 설치해야 함.


[링크]

git clone https://github.com/ENCODE-DCC/kentUtils.git 

git에서 다운 받은 후 README.md를 읽으면 설치 방법이 있음.


cd kentuils && make


export KENT_SRC=/PATH/TO/INSTALL/kentUtils/src:$KENT_SRC


2.

Running install for module 'Bio::DB::Sam'

Checksum for /home/kyoungwoo/.cpan/sources/authors/id/L/LD/LDS/Bio-SamTools-1.43.tar.gz ok

Configuring L/LD/LDS/Bio-SamTools-1.43.tar.gz with Build.PL

This module requires samtools 0.1.10 or higher (samtools.sourceforge.net).

Please enter the location of the bam.h and compiled libbam.a files: 


samtools의 bin 파일이 아니라 소스 파일의 경로를 확인해서 넣어주면 됨.

필수 perl module 설치가 끝나면 ./Build test ./Build isntall을 해서 build를 하고 ./Build apache_config를 해서 화면으로 출력되는 config를 복사.
apache config 파일 내에 붙여넣기를 하면 끝남.

apache config파일은 /etc/httpd/conf/httpd.conf 이며 내용 수정 후 apache를 재시작 하면 됨. apachectl -k graceful

브라우저를 켜서 localhost/gbrowse2 로 접속.


반응형

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

GCC 설치하기  (1) 2017.09.18
cURL 로컬 설치하기  (0) 2017.08.24
Repeatmasker 설치  (0) 2017.05.05
Perl 설치 및 실행하기  (0) 2017.04.25
유닉스 명령어 grep, sed, awk 사용해보기  (0) 2016.08.24
반응형

다운로드는 공식 홈페이지 https://www.perl.org/get.html 에서 받으면 된다. (stable source code 추천)


wget http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz (4/25/2017 stable 버전)


less README를 하면 설치 가이드를 볼 수 있다.



./Configure -des -Dprefix=$HOME/localperl -Dusethreads


-des = configure 과정 중에 질문이 있는데 항상 default로 진행 된다.

-Dprefix = 프로그램이 설치될 경로 이다.

-Dusethreads = 일부 프로그램을 perl의 multi threads를 요구하기때문에 compile단계에서 설정해주면 나중에 재설치할 필요가 없음. 단, 해당 옵션으로 설치했을 때 단일 thread 프로그램은 조금 느려질 수 있다. (사용을 추천)


make test && make install


make하는데 시간이 상당히 소요된다.


install 이 끝난 후에는 -Dprefix에 넣었던 PATH 안에 있는 의 bin과 lib 폴더를 export 해주면 끝.

반응형

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

GCC 설치하기  (1) 2017.09.18
cURL 로컬 설치하기  (0) 2017.08.24
Repeatmasker 설치  (0) 2017.05.05
GBrowse2 설치하기  (0) 2017.04.25
유닉스 명령어 grep, sed, awk 사용해보기  (0) 2016.08.24
반응형

line을 읽을 때 아래와 같이 구분자가 \t으로 되어 있지 않고 space로 되어 있는데다가 그 길이가 그때그때마다 다를 경우 parsing하기가 쉽지 않다. 


regular expression을 써서 구분하면 된다.


julia> a

" t= 0.2652  S=    38.3  N=    99.7  dN/dS=  0.5082  dN = 0.0697  dS = 0.1371\n"


julia> matchall(r"\d+.\d+",a)
6-element Array{SubString{String},1}:
 "0.2652"
 "38.3"  
 "99.7"  
 "0.5082"
 "0.0697"
 "0.1371"

아래의 list를 받아서 원하는 index에서 숫자를 가져오면 된다. string으로 되어 있기 때문에 float으로 바꿔서 가져와야 사용할 수 있다.

반응형

+ Recent posts