sraメタデータとシーケンスデータの自動ダウンロード

SRAメタデータとシーケンスデータの自動ダウンロード

Windows Power Shell

pip install selenium
pip install chromedriver-binary

環境変数等でパスを通す必要はなく、プログラム中で import chromedriver_binary のようにインポートすればパスが通る。

まずWindowsローカル環境で、Seleniumを用いてMiFishプライマーで増幅された領域のシーケンスデータのSRR番号を取得した。

以下のスクリプトを実行することで、SRR番号のリストを取得できる。

import time
from selenium import webdriver
import chromedriver_binary

driver = webdriver.Chrome()

# DBCLS SRAにGETメソッドでリクエストを送信
driver.get("https://sra.dbcls.jp/result.html?target_db=sra&term=mifish&rows=100&sort=Updated&order=desc")
time.sleep(5)

# cssタグを指定して、プロジェクトを取得
pjts_selector = ".tabulator-cell[tabulator-field='_id']"
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(" or ", "", 1)
print(search_str)

driver = webdriver.Chrome()
driver.get("https://www.ncbi.nlm.nih.gov/sra/?term=" + search_str)

time.sleep(10)

# send toボタンをクリック
driver.execute_script('document.getElementById("sendto").click();')
time.sleep(5)

# Choose Destination → Fileを選択 
driver.execute_script('document.getElementById("dest_File").click();')
time.sleep(5)

# Format → Accession Listを選択
driver.execute_script('document.getElementById("file_format").options[2].setAttribute("selected", "selected")')
time.sleep(5)

# Create Fileをクリック
driver.execute_script('document.querySelector("#submenu_File > button").click();')
time.sleep(5)

time.sleep(5)
driver.quit()

各クリックイベントをトリガーとして実行されるJavascriptの実行とクリックのタイミングに時差があるので、各クリックイベントの後にtime.sleep(5)を実行すると、バグが起こりにくくなる。(なくても上手く行くことはあるが、あると確実)

学生実験で使用したHyper-Vで起動したLinux仮想環境(Ubuntu20.10)でDockerコンテナ仮想環境上でSeleniumサーバーを起動し、メタデータを取得することができるかを確認した。

sources.listの更新 を元にsources.listを編集し、aptコマンドを使用可能にする。

以下のコマンドをターミナル上で実行

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

ターミナル上で以下のコマンドでインストール

$ COMPOSE_VERSION=$(git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oE "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | sort --version-sort | tail -n 1)
$ curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null
$ sudo chmod +x /usr/local/bin/docker-compose

Remminaはリモートデスクトップクライアントソフトウェアであり、VNCに対応している。VNCによるリモートデスクトップ接続によりDockerコンテナ内で動作するWebブラウザがスクレイピングによって自動で動く動作を確認できるため、デバッグがしやすくなる。

まずGUI上でUbuntu Softwareを起動する。

Ubuntu Software上で⁠remminaを検索し、「⁠ソース」が「latest/stable」のRemminaを選択し、インストール。画像では既にインストールされているので、「削除」になっている。

  • sraメタデータとシーケンスデータの自動ダウンロード.1648278455.txt.gz
  • 最終更新: 2022/03/26 07:07
  • by 160.237.156.27