Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Finding a Protein Motif: Fetching Data and Usin...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
nkimoto
February 18, 2022
Programming
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Finding a Protein Motif: Fetching Data and Using Regular Expressions
2022/02/18 (金) 【第11回】ゼロから始めるゲノム解析(Python編) 資料
nkimoto
February 18, 2022
Transcript
17 slides
【第11回】ゼロから始めるゲノム解析 (Python編) Finding a Protein Motif @kimoton
本勉強会の概要・目的 書籍名 対象者/目的 Mastering Python for Bioinformatics Python・バイオインフォ知識ほぼゼロの人 を対象に、正しいPythonのコーディング手 法について学ぶ
頻度 毎週〜隔週開催予定 登壇者 募集中!
Rosalindとは • 問題解決を通じてバイオインフォマティク ス、プログラミング、およびアルゴリズムを 学習するためのプラットフォーム • 大学やハッカソン、就職の面接にも 600回 以上の採用実績あり 参考:https://qiita.com/_kimoton/items/d534d0fa9b83dd7dc412
概要
環境構築 - 必要パッケージ群のインストール # 公開されているレポジトリからファイル群を取得 $ git clone https://github.com/kyclark/biofx_python $
cd biofx_python # requirements.txt に記載のパッケージをインストール $ pip3 install -r requirements.txt # pylintの設定ファイルをホームディレクトリに移動 $ cp pylintrc ~/.pylintrc # mypyの設定ファイルをホームディレクトリに移動 $ cp mypy.ini ~/.mypy.ini
本日のお題 タンパク質モチーフ配列の位置を出力せよ https://rosalind.info/problems/mprt/
• プログラムを用いてインターネットからデータをfetchする方法 • 正規表現を用いてタンパク質のモチーフを探索する方法 • マニュアルでタンパク質のモチーフを探索する方法 本日学ぶこと
前提知識編
UniProtについて https://www.uniprot.org/ SIB Swiss Institute of BioinformaticsとEuropean Bioinformatics Institute が運営するタンパク質のアミノ酸配列お
よびその機能情報を提供する代表的なデータベース。タンパク質に関連するさまざまな情報を横断的・網羅的に調 べることができる世界で最も広範なタンパク質の情報カタログ
UniProtのURL http://www.uniprot.org/uniprot/{uniprot_id} UniProtでは、タンパク質にユニークなアクセッションIDが割り振られており、 詳細ページのURL、及びFASTAファイルのURLは以下のように対応している。 https://www.uniprot.org/uniprot/B5ZC00 http://www.uniprot.org/uniprot/{uniprot_id}.fasta https://www.uniprot.org/uniprot/B5ZC00.fasta
IDを元にUniProtのURLを作成 UniProtでは、タンパク質にユニークなアクセッションIDが割り振られており、 URLも以下のように対応している。 def main() -> None: args = get_args()
for prot_id in map(str.rstrip, args.file): print(f'http://www.uniprot.org/uniprot/{prot_id}') $ ./mprt.py tests/inputs/1.txt http://www.uniprot.org/uniprot/A2Z669 http://www.uniprot.org/uniprot/B5ZC00 http://www.uniprot.org/uniprot/P07204_TRBM_HUMAN http://www.uniprot.org/uniprot/P20840_SAG1_YEAST
FASTAファイルのダウンロード(bash) bashスクリプトによりファイルのダウンロードを自動化 #!/usr/bin/env bash if [[ $# -ne 1 ]];
then printf "usage: %s FILE\n" $(basename "$0") exit 1 fi OUT_DIR="fasta" [[ ! -d "$OUT_DIR" ]] && mkdir -p "$OUT_DIR" while read -r PROT_ID; do echo "$PROT_ID" URL="https://www.uniprot.org/uniprot/${PROT_ID}" OUT_FILE="$OUT_DIR/${PROT_ID}.fasta" wget -q -o "$OUT_FILE" "$URL" done < $1 1 1 PATH環境変数の通っている 場所からbashを使用 2 2 引数の数「$#」が1でなければ エラー終了 3 3 出力ディレクトリがなければ作 成 4 4 ファイルの各行をPROT_IDと して格納 5 5 wgetコマンドでファイルをダウ ンロード
FASTAファイルのダウンロード(python) 1 2 4 1 出力ディレクトリがなければ作 成 2 ファイルからIDを読み取り 5
3 requestsモジュールにより作 成したURLにGETリクエストを 投げる 3 4 ステータスコード200の場合、 レスポンスをファイルに格納 5 200以外の場合、エラーメッ セージを表示して継続
N-glycosylation モチーフの構造 正規表現を用いて N [^P] [ST] [^P] で表される P以外 P以外
SorT https://prosite.expasy.org/PDOC00001
正規表現でN-glycosylationモチーフを表現 2つのN-glycosylationモチーフを持つ配列からN-glycosylationモチーフを取得 >>> seq = 'NNTSYS' >>> regex = re.compile('(?=(N[^P][ST][^P]))')
>>> regex.findall(seq) ['NNTS', 'NTSY'] >>> [match.start() + 1 for match in regex.finditer(seq)] [1, 2] マッチしたポジションを出力
解法編
解法1正規表現を用いてモチーフ探索 1 ファイルに記載されているID のFASTAファイルを取得 1 2 正規表現を作成 2 3 FASTAファイルをSeqIOモ
ジュールで読み込んでレコード があればrecに格納 3 4 その配列に正規表現のマッチ が存在すれば開始位置を出 力 4
解法2マニュアルでモチーフ探索 1 2 1 モチーフがマッチしたインデックスを 取得 正規表現を使わず、条件式を用いて全 てのkmerについて一致を確認 2 インデックスを1始まりに修正
3 IDとともに開始位置のリストをス ペース区切りで出力
More Decks by nkimoto
See All by nkimoto
Location Restriction Sites: Using, Testing, and Sharing Code
nkimoto
0
390
Overlap Graphs: Sequence Assembly Using Shared K-mers
nkimoto
0
250
Computing GC Content: Parsing FASTA and Analyzing Sequences
nkimoto
0
340
【第5回】ゼロから始めるゲノム解析(Python編)
nkimoto
0
780
【第3回】ゼロから始めるゲノム解析(Python編)
nkimoto
0
490
【第1回】ゼロから始めるゲノム解析(Python編).pdf
nkimoto
0
960
【第7回】ゼロから始めるゲノム解析.pdf
nkimoto
0
500
【第5回】ゼロから始めるゲノム解析(R編)
nkimoto
0
600
【第3回】ゼロから始めるゲノム解析(R編)
nkimoto
0
1.6k
Other Decks in Programming
See All in Programming
GraphQL の onError と Nullability のこれから
quramy
0
210
SODA - FACT BOOK(EN)
sodainc
1
230
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
AI-Powered Domain-Driven Design
ziobrando
0
430
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
650
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
250
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
310
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.8k
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
370
Getting Started with Vibe Coding
miccheng
0
200
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
Documentation Writing (for coders)
carmenintech
77
5.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
580
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
WCS-LA-2024
lcolladotor
0
990