kuroの覚え書き

96の個人的覚え書き

flaskで作ったアプリをdaemon化してserviceとして起動する(導入編)

Flaskで作ったアプリをサーバに置いて本格的に運用するなら、いちいちコマンドラインから起動するのは面倒くさい。
サーバを再起動する度にvncでログインして起動して、ログインしたまんまにしておかないとならないというのではイマイチだ。

最初apacheをwwwサーバとしてmod_wsgiを使ってflaskアプリを動かそうかと思ったが、今時はnginxというのをリバースプロキシとして動作させてgunicornかuWSGIというWSGIサーバを通してpythonで作ったアプリを動かすのがメジャーらしい。

とりあえず現状apacheが動いていることだしmod_wsgiを入れてどうにかするか?という方針でいってみる。

早速
$ pip install mod_wsgi
とインストールを試みると

/usr/bin/ld: /home/kuro/.pyenv/versions/3.6.1/lib/libpython3.6m.a(abstract.o): 再配置 R_X86_64_32S (`_Py_NotImplementedStruct' に対する) は共有オブジェクト作成時には使用できません。-fPIC を付けて再コンパイルしてください。
    /home/kuro/.pyenv/versions/3.6.1/lib/libpython3.6m.a: error adding symbols: 不正な値です
    collect2: エラー: ld はステータス 1 で終了しました
    error: command 'gcc' failed with exit status 1

こんな感じでエラーが出る。
このエラーを回避するには、
>||
$ CFLAGS="-fPIC" pyenv install 3.6.1
|

vcfファイルをいろいろなところからダウンロード

病気サンプルの原因遺伝子を特定するためのふるいとして、既知のSNPを除く、もしくは調べるという作業はまず必要となってくる。
そのために既知の病気の原因になっていると思われるSNPや、逆に普通の人が何%かの割合で持っていて、特に病気の原因とは考えられないSNPを記したファイルを参照する必要がある。
IGV.jsではクラウドに置かれたvcfを参照できるようになっているが、どんどん更新されていくSNPのデータを反映しきれていないので、自前でファイルをホストして参照する必要が出てくる。
そのためのファイルをあちこちから集めてくる必要があるのだが、これがなかなかに厄介だ。

最新版は比較的すぐに配布サイトが見つかるが、ちょっと前のバージョンも持っておきたいとなると、なかなかそういうファイルを置いているサイトは見つからない。なので見つけ次第リストアップしておく。

https://www.ncbi.nlm.nih.gov/projects/SNP/
https://www.ncbi.nlm.nih.gov/variation/docs/human_variation_vcf/
https://software.broadinstitute.org/gatk/download/bundle
https://www.ensembl.org/info/data/ftp/index.html