Edited at

geneXplain platform の apiを利用してみた


geneXplain platformのapiを利用してみた

ドイツのgeneXplain社が開発しているgeneXplain platform はブラウザーを利用してライフサイエンス関連のデータ解析を行う商用のツール

apiを利用して自動化も可能だよと紹介されたので、早速apiを利用してみることにしたhttps://github.com/genexplain/genexplain-api

これを実行するためにはgeneXplainのアカウントが必要で、無償のアカウントをgeneXplain platform registrationで登録する

(ストレージの上限が15MBという制限があるけれど)

Screen Shot 2019-02-22 at 18.01.30.png


apiについて

GitHub にはR 用 https://github.com/genexplain/geneXplainRJava用 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


gx_app.py

#!/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']

こうして利用可能なアプリケーションの一覧が取得できた

今回はここまで:smile: