差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
sraメタデータとシーケンスデータの自動ダウンロード [2022/03/26 07:07] – 160.237.156.27 | sraメタデータとシーケンスデータの自動ダウンロード [Unknown date] (現在) – 削除 - 外部編集 (Unknown date) 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== SRAメタデータとシーケンスデータの自動ダウンロード ====== | ||
- | |||
- | ===== ローカル環境でメタデータを取得 ===== | ||
- | |||
- | ==== Seleniumをインストール ==== | ||
- | |||
- | Windows Power Shell | ||
- | |||
- | ``` | ||
- | pip install selenium | ||
- | ``` | ||
- | |||
- | ==== Chrome Driverをインストール ==== | ||
- | |||
- | ``` | ||
- | pip install chromedriver-binary | ||
- | ``` | ||
- | |||
- | 環境変数等でパスを通す必要はなく、プログラム中で '' | ||
- | |||
- | ==== SRA番号取得 ==== | ||
- | |||
- | まずWindowsローカル環境で、Seleniumを用いてMiFishプライマーで増幅された領域のシーケンスデータのSRR番号を取得した。 | ||
- | |||
- | 以下のスクリプトを実行することで、SRR番号のリストを取得できる。 | ||
- | |||
- | ``` | ||
- | import time | ||
- | from selenium import webdriver | ||
- | import chromedriver_binary | ||
- | |||
- | driver = webdriver.Chrome() | ||
- | |||
- | # DBCLS SRAにGETメソッドでリクエストを送信 | ||
- | driver.get(" | ||
- | time.sleep(5) | ||
- | |||
- | # cssタグを指定して、プロジェクトを取得 | ||
- | pjts_selector = " | ||
- | projects = driver.find_elements_by_css_selector(pjts_selector) | ||
- | |||
- | # NCBI SRAで検索するための文字列を作成 | ||
- | search_str = "" | ||
- | for pjt in projects: | ||
- | search_str = search_str + " or " + pjt.text | ||
- | search_str = search_str.replace(" | ||
- | print(search_str) | ||
- | |||
- | driver = webdriver.Chrome() | ||
- | driver.get(" | ||
- | |||
- | time.sleep(10) | ||
- | |||
- | # send toボタンをクリック | ||
- | driver.execute_script(' | ||
- | time.sleep(5) | ||
- | |||
- | # Choose Destination → Fileを選択 | ||
- | driver.execute_script(' | ||
- | time.sleep(5) | ||
- | |||
- | # Format → Accession Listを選択 | ||
- | driver.execute_script(' | ||
- | time.sleep(5) | ||
- | |||
- | # Create Fileをクリック | ||
- | driver.execute_script(' | ||
- | time.sleep(5) | ||
- | |||
- | time.sleep(5) | ||
- | driver.quit() | ||
- | ``` | ||
- | |||
- | 各クリックイベントをトリガーとして実行されるJavascriptの実行とクリックのタイミングに時差があるので、各クリックイベントの後に'' | ||
- | |||
- | ===== Linux仮想環境上のDockerコンテナ環境でSeleniumサーバーを起動し、メタデータを取得 ===== | ||
- | |||
- | 学生実験で使用したHyper-Vで起動したLinux仮想環境(Ubuntu20.10)でDockerコンテナ仮想環境上でSeleniumサーバーを起動し、メタデータを取得することができるかを確認した。 | ||
- | |||
- | ==== sources.listの編集 ==== | ||
- | |||
- | [[sources.listの更新|sources.listの更新]] を元にsources.listを編集し、aptコマンドを使用可能にする。 | ||
- | |||
- | ==== Dockerのインストール ==== | ||
- | |||
- | 以下のコマンドをターミナル上で実行 | ||
- | |||
- | ``` | ||
- | $ sudo apt-get update | ||
- | $ sudo apt-get install \ | ||
- | apt-transport-https \ | ||
- | ca-certificates \ | ||
- | curl \ | ||
- | gnupg \ | ||
- | lsb-release | ||
- | $ curl -fsSL https:// | ||
- | $ echo \ | ||
- | "deb [arch=amd64 signed-by=/ | ||
- | $(lsb_release -cs) stable" | ||
- | $ sudo apt-get update | ||
- | $ sudo apt-get install docker-ce docker-ce-cli containerd.io | ||
- | ``` | ||
- | ==== docker-composeのインストール ==== | ||
- | ターミナル上で以下のコマンドでインストール | ||
- | |||
- | ``` | ||
- | $ COMPOSE_VERSION=$(git ls-remote https:// | ||
- | $ curl -L https:// | ||
- | $ sudo chmod +x / | ||
- | ``` | ||
- | |||
- | ==== Remminaのインストール ==== | ||
- | |||
- | Remminaはリモートデスクトップクライアントソフトウェアであり、VNCに対応している。VNCによるリモートデスクトップ接続によりDockerコンテナ内で動作するWebブラウザがスクレイピングによって自動で動く動作を確認できるため、デバッグがしやすくなる。 | ||
- | |||
- | まずGUI上でUbuntu Softwareを起動する。 | ||
- | {{: | ||
- | |||
- | Ubuntu Software上でremminaを検索し、「ソース」が「latest/ | ||
- | {{: | ||
- | |||