geneXplain platformのapiを利用してみた
ドイツのgeneXplain社が開発しているgeneXplain platform はブラウザーを利用してライフサイエンス関連のデータ解析を行う商用のツール
apiを利用して自動化も可能だよと紹介されたので、早速apiを利用してみることにしたhttps://github.com/genexplain/genexplain-api
これを実行するためにはgeneXplainのアカウントが必要で、無償のアカウントをgeneXplain platform registrationで登録する
(ストレージの上限が15MBという制限があるけれど)
apiについて
GitHub にはR 用 https://github.com/genexplain/geneXplainRと Java用 genexplain/genexplain-apiが記載されている
ということで、これらを横目にPythonでアクセスしてみることにした
Python を利用してgeneXplain platformにアクセスしてみる
ツールの一覧の取得
GitHubのQuick startではアプリケーションの一覧を取得する例が掲載されているので、これをそのまま実行してみる
プログラム上に記述したりすると面倒なので、geneXplain platformの username と passwordは環境変数で与えることにする
export gx_username="登録したユーザー名"
export gx_password="登録したパスワード"
プログラム中では環境変数を呼び出してusernameとpasswordを取得している
requests
モジュールが無い場合はpipでインストールしておこう
$ python3 -m pip install requests
#!/bin/env python3
import requests
import sys
import os
import json
import pprint
server = 'https://platform.genexplain.com'
system = 'biouml'
class GeneXplain(object):
""" GeneXplain object currently supports login and application list only.
You must set environmental variable `gx_username` and `gx_password` at first.
"""
# api
_LOGIN = 'web/login'
_ANALYSIS_LIST = 'web/analysis/list'
def __init__(self):
self.session = None
self.username = os.environ['gx_username']
self.password = os.environ['gx_password']
def login(self):
url = os.path.join(server, system, GeneXplain._LOGIN)
self.session = requests.Session()
response = self.session.get(url, params={'username': self.username, 'password': self.password})
if response.status_code != 200:
raise ValueError(response.text)
return response
def list_applications(self):
url = os.path.join(server, system, GeneXplain._ANALYSIS_LIST)
response = self.session.get(url)
data = response.json()
if data['type'] != 0:
raise ValueError
else:
applications = data['values']
return applications
def main():
gx = GeneXplain()
response = gx.login()
applications = gx.list_applications()
pprint.pprint(applications)
if __name__ == '__main__':
main()
これを実行してみよう
$ python3 gx_app.py
['Data manipulation/Annotate diagram',
'Data manipulation/Annotate table',
'Data manipulation/Annotate track with genes',
'Data manipulation/Composite module to proteins',
'Data manipulation/Convert table',
'Data manipulation/Convert table to track',
...中略...
'Statistical analysis/PCA',
'Statistical analysis/Polynomial Regression analysis',
'Statistical analysis/Table imputation',
'Statistical analysis/Up and Down Identification',
'Statistical analysis/Variance filter']
こうして利用可能なアプリケーションの一覧が取得できた
今回はここまで