2. 설치¶
2.1. MongoDB 설치 및 데이터로딩¶
KinMatch/KinMatch Rest API는 반드시 mongodb가 설치 되어있어야 실행 가능하다. Mongodb 설치는 MongoDB 홈페이지를 통하거나 아래 방법을 통해 설치할 수 있다 (주의사항: 반드시 MongoDB-2.6버전을 설치 해야한다.)
# Linux인 경우
$ apt-get install mongodb
# OS X인 경우
$ brew install mongodb26
설치가 끝난 후 MongoDB를 실행한다.
$ sudo service mongodb start
계정을 생성한다. 이때 생성한 계정정보는 반드시 KinMatch config.py 설정 을 참고하여 config.py 에 명시해준다.
$ mongo
[in mongo prompt]
> use kinmatch #데이터베이스명
> db.addUser('아이디', '비밀번호')
생성한 계정에 예제 데이터(kinmatch_genotype_samples.zip )를 로딩한다.
$ unzip kinmatch_genotype_samples.zip
$ mongorestore kindmatch_genotype_samples
#로딩된 데이터확인
$ mongo
[in mongo prompt]
> use kinmatch
> db.genotypes.find()
대립유전자 빈도데이터(astr_af_korean.csv )를 로딩한다.
#kinc 이용
$ ./kinc add-allele-frequencies
#kind 이용
POST /kind/allele-frquencies/?name=Korean&type=A-STR&save-by=new&informat=csv&astr_af_korean.csv&description=korean_a-str_frequencies
#로딩된 데이터확인
$ mongo
[in mongo prompt]
> use kinmatch
> db.allele_frequencies.find()
2.2. KinMatch config.py 설정¶
사용자의 mongodb 정보를 맞도록 kinmatch/conf.py 에 기입해 주어야 한다.
DEFAULT_MONGODB_NAME = '데이터베이스명' # mongodb명
DEFAULT_MONGODB_USER = '아이디' # mongodb 아이디
DEFAULT_MONGODB_PASSWORD = '비밀번호' #mongodb 비밀번호
2.3. KinMatch 설치¶
KinMatch 소스코드를 복사한다.
<문의>
(주)인실리코젠, 데이터사이언스센터
http://insilicogen.com/wiki/KinMatch3
Virtualenv를 생성하고 활성화 시킨다. virtualenv는 sudo apt-get install virtualenv
를 통해 설치 할 수 있다.
$ virtualenv -p python3 .
$ source /bin/activate
requirements_kinc.txt 를 다운받은 후 pip install 을 통해 KinMatch에 필요한 파이썬 라이브러리를 설치한다.
$ pip install -r requirements_kinc.txt
잘 실행되는지 확인하기 위해서 ./kinc -h
를 입력하여 도움말을 확인한다.
$ cd kinmatch
$ ./kinc -h
usage: kinc [-h]
{add-allele-frequencies,list-allele-frequencies,delete-allele-frequencies,show-allele-frequencies,update-allele-frequencies,add-genotypes,search,search-multiple,check-between,report-hml}
...
KinMatch commandline interface
optional arguments:
-h, --help show this help message and exit
subcommands:
kinc has a few sub-commands
{add-allele-frequencies,list-allele-frequencies,delete-allele-frequencies,show-allele-frequencies,update-allele-frequencies,add-genotypes,search,search-multiple,check-between,report-hml}
-h for additional help
add-allele-frequencies
Add allele frequencies data to DB
list-allele-frequencies
List all available allele frequencies
delete-allele-frequencies
Delete allele frequencies by the name
show-allele-frequencies
Show the allele frequencies table
update-allele-frequencies
Update allele frequencies by using current DB
add-genotypes Add many genotype data in batch file (generated by
GeneMark)
search Search relationship.
search-multiple Search relationship between groups.
check-between Check relationship between two queries.
report-hml Report checking result to HML format ('-a' option for
group1, '-b' for group2 !!).
Copyright 2014, Insilicogen, Inc.
2.4. KinMatch Rest API 설치¶
KinMatch Rest API 소스코드를 복사한다.
<문의>
(주)인실리코젠, 데이터사이언스센터
http://insilicogen.com/wiki/KinMatch3
Virtualenv를 생성하고 활성화 시킨다. virtualenv는 sudo apt-get install virtualenv
를 통해 설치 할 수 있다.
$ virtualenv -p python3 .
$ source /bin/activate
requirements_kind.txt 를 다운받은 후 pip install 을 통해 KinMatch에 필요한 파이썬 라이브러리를 설치한다.
$ pip install -r requirements_kind.txt
kindsite/kindsite/settings.py 파일을 열어서 끝부분에 아래 코드를 추가한다.
$ vim kindsite/kindsite/settings.py
## kinmatch settings##
INSTALLED_APPS += (
'kind',
'rest_framework',
'rest_framework_swagger',
)
TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'kind/templates')]
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.BrowsableAPIRenderer',
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.TemplateHTMLRenderer',
'rest_framework_csv.renderers.CSVRenderer',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
),
'PAGINATE_BY': 10,
}
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'null': {
'level':'DEBUG',
'class':'django.utils.log.NullHandler',
},
'logfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': BASE_DIR + "/logfile",
'maxBytes': 50000,
'backupCount': 2,
'formatter': 'standard',
},
'console':{
'level':'INFO',
'class':'logging.StreamHandler',
'formatter': 'standard'
},
},
'loggers': {
'django': {
'handlers':['console'],
'propagate': True,
'level':'WARN',
},
'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False,
},
'kind': {
'handlers': ['console', 'logfile'],
'level': 'DEBUG',
},
}
}
데이터베이스를 생성한다.
$ cd kindsite
$ python manage.py syncdb #이때 생성되는 admin 아이디는 REST API요청의 API로그인키가 된다.
python manage.py runserver
를 실행하고 http://locahost:8000/docs/ 에 접속하여 document가 뜨는지 확인한다.