SlideShare a Scribd company logo
データベースからのデータ取得
奈良医大 4回 原 篤志
自己紹介
・奈良医大4年
・免疫学教室
・ねずみの感染実験とかやっています
今回使うコードやファイルは
https://github.com/bonohu/DrBonoDojo/blob/master/3-1
にあります
データ取得にコマンドラインを使うワケ
・圧縮データを解凍してほしくない
圧縮されたデータ(.gz, .zip, .bz2 etc)をSafariでダウンロードする
と同時に解凍されてしまう...
・まとめて複数ファイルを保存できる
連番とか階層構造になってるデータなどを一気にダウンロー
ドできる!
よく使うコマンド
cd :ディレクトリを移動
mkdir :ディレクトリを作る
less :ファイルの中身を見る(Spaceで進む、bで戻る、qで閉じる)
ls :ディレクトリの内容を見る
-a :隠しファイルも表示
-l :サイズやパーミッションを表示
rm :ファイル削除
-r :中身ごとディレクトリ削除
mv :ファイルの移動、名前変更
grep :ファイル中の文字列を検索
ワイルドカード
ワイルドカード 一致する文字列
? 任意の一文字
* 任意の文字列
[文字列] 文字列に含まれる一文字
[!文字列] 文字列に含まれない一文字
h?ge → hoge, huge
h*ge → heuge, hikage
h[aiueo]ge → huge, hoge
h[!aiueo]ge → hyge
txtファイルだけ消したい!
→ rm *.txt
全部消したい!
→ rm *
例
文字列の特徴から複数の文字列を指定する
正規表現
ワイルドカードより詳しく指定できる
正規表現 一致する文字列
. 任意の一文字
* 直前の文字の繰り返し
[文字列] 文字列に含まれる、いずれかの一文字
[^文字列] 文字列に含まれない、いずれかの一文字
 直後のメタ文字の意味を打ち消す
他にも色々
拡張正規表現もある
標準出力とパイプライン
> : 標準出力
2> : エラー出力
>> : 上書きして出力
| : コマンドの結果を次のコマンドに渡す
ファイルを取得する主なコマンド
curl
wget
再帰的に保存できない
対応しているプロトコルが多い
再帰的に保存できる
対応しているプロトコルはHTTP, HTTPS, FTPのみ
データベースいろいろ
アノテーションもいろいろ
● Entrez:NCBIが定義した遺伝子1つ1つにあてがわれるID
ex) 2597, 16193
● Genbank:NCBIが塩基配列を提供するDB (DDBJ, EMBLにもシェアされている)
ex) X60188, NR_003589, LC170036
● Refseq
ex) NM_018009, NP_001035700
● Ensembl
ex) ENSG00000010404, ENST00000296026, ENSP00000296026
● Uniprot
● GEO
ex) GSE36570, GSM896985
● ArrayExpress
ex) E-MTAB-8284
DDBJ KEGG PDJNCBIEBI Uniprot
TOGOWS
ユーザー
TOGOWSとは
色々なデータベースのデータを統合して、
簡単にアクセスできるようにするサービス
TOGOWSを通してデータを取得
curl -O http://togows.org/entry/ddbj-ddbj/LC170036.fasta
ヘッダー
配列
curl -O http://togows.org/entry/ddbj-ddbj/LC170036
curl -O http://togows.org/entry/uniprot/HIF1_CAEEL.fasta
繰り返し処理で複数のデータを取得
DBから連番のデータを一気にダウンロードしたい!
繰り返し使えば一発でできます!
for i in `seq 437098 437155`
do
echo “getting LC$i”
curl http://togows.org/entry/ddbj-ddbj/LC$i.fasta >> seq.fasta
sleep 1
done
437098, 437099・・・437155
curlの結果をseq.fastaに書き加えていく
LC437098〜LC437155のfastaファイルが一気に取得できた!
繰り返し処理で複数のデータを取得
・
・
・
seq.fasta
・
・
・
余談:クォートの違い
シングルクォート
hoge=’Hello World!’
echo ‘echo $hoge’
ダブルクォート
hoge=’Hello World!’
echo “echo $hoge”
バッククォート
hoge=’Hello World!’
echo `echo $hoge`
Hello World!
echo $hoge
echo Hello World!
余談:クォートの違い
シングルクォート
hoge=’Hello World!’
echo ‘echo $hoge’
ダブルクォート
hoge=’Hello World!’
echo “echo $hoge”
バッククォート
hoge=’Hello World!’
echo `echo $hoge`
Hello World!
echo $hoge
echo Hello World!
中身をコマンドとして処理
`hogehoge`と$(hogehoge)は同義
中身の変数、正規表現を展開
単なる文字列として処理
リストから一気にデータ取得
アクセッションナンバーのリストからデータを取得する
IFS=$'n'
for entry in `cat entries.txt`
do
curl -O http://togows.org/entry/ddbj-ddbj/$entry.fasta
done
entries.txtから1行ずつ取り出してデータを取得
ダウンロードできてない...
(NM...はRefseqのIDなので)
リストから一気にデータ取得
異なるDBのIDは分けてから取得する
grep “^NM” entries.txt > entriesNM.txt
for i in `cat entriesNM.txt`
do
curl -O http://togows.org/entry/ncbi-nucleotide/$entry.fasta
done
いろんなDBを合わせて取得することはできない!
別々に取り扱う!
DBそのものを取得
UniprotKBにあるタンパク質配列を全てダウンロードする
curl -O ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz
Ensemble human genomeの塩基配列をfasta形式で取得 (GRCh38)
curl -O ftp://ftp.ensembl.org/pub/current_fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.toplevel.fa.gz
lftpを用いた再帰的ダウンロード
ファイルの一覧を取得
条件に合うファイル名を抽出し、取得するコマンドを生成
実行
lftpを用いた再帰的ダウンロード
lftp <<-END
open ftp.ensembl.org/pub/current_fasta
find
END
再帰的にディレクトリ内のファイルを一覧表示
ENDと入力されたら終了
おわり
get_ensembl_list.sh
bash get_ensembl_list.sh > ensembl_list.txt
get_ensembl_list.shでensemblにあるfasta形式のファイル一覧を表示し、
ensembl_list.txtに書き込む
ensemblにあるfasta形式ファイルの一覧を取得する
fasta形式のタンパク質配列をまとめて取得
lftpを用いた再帰的ダウンロード
grep pep.all.fa.gz ensembl_list.txt | awk '{print "GET" $1 }' > ensembl_pep.txt
ensembl_list.txtのうちタンパク質配列を検索 頭にlftpのファイル取得コマンド、GETをつける
ensembl_pep.txt
lftp <<-END
open ftp.ensembl.org/pub/current_fasta
ensembl_list-header.txt
ensembl_pep.txt
END
ensembl_list-footer.txt
lftpを用いた再帰的ダウンロード
lftpを用いた再帰的ダウンロード
fasta形式のタンパク質配列をまとめて取得できた!

More Related Content

What's hot

追いかけファイル読み込み開発注意点
追いかけファイル読み込み開発注意点追いかけファイル読み込み開発注意点
追いかけファイル読み込み開発注意点Tetsuya Sasamori
 
データベースのお話
データベースのお話データベースのお話
データベースのお話
Hidekazu Tanaka
 
Firefox OS + Raspberry Pi
Firefox OS + Raspberry PiFirefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
EnsekiTT
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極める
bsdhack
 
LINQ基本のキ
LINQ基本のキLINQ基本のキ
LINQ基本のキ
Kouji Matsui
 
分散データベース gun について調べた
分散データベース gun について調べた分散データベース gun について調べた
分散データベース gun について調べた
keisunagawa
 
Unix1
Unix1Unix1
カウチなやつら CouchDB in the room
カウチなやつら CouchDB in the roomカウチなやつら CouchDB in the room
カウチなやつら CouchDB in the room
Makoto Ohnami
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
otmb
 
Pgunconf neo4j fdw
Pgunconf neo4j fdwPgunconf neo4j fdw
Pgunconf neo4j fdw
Toshi Harada
 
Cache勉強会
Cache勉強会Cache勉強会
Cache勉強会
Shinji Miyazato
 
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
Takamasa Sakai
 
20150520 lt-neo4j勉強会-neofj fdw
20150520 lt-neo4j勉強会-neofj fdw20150520 lt-neo4j勉強会-neofj fdw
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
 
コード読経会
コード読経会コード読経会
コード読経会
Masahiko Toyoshi
 
PHP+DB
PHP+DBPHP+DB
ドキュメント共有システム「ShareDoc」
ドキュメント共有システム「ShareDoc」ドキュメント共有システム「ShareDoc」
ドキュメント共有システム「ShareDoc」
Wataru Shiraishi
 
ファイルの隠し方
ファイルの隠し方ファイルの隠し方
ファイルの隠し方
mfumi
 

What's hot (20)

追いかけファイル読み込み開発注意点
追いかけファイル読み込み開発注意点追いかけファイル読み込み開発注意点
追いかけファイル読み込み開発注意点
 
データベースのお話
データベースのお話データベースのお話
データベースのお話
 
Firefox OS + Raspberry Pi
Firefox OS + Raspberry PiFirefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極める
 
LINQ基本のキ
LINQ基本のキLINQ基本のキ
LINQ基本のキ
 
分散データベース gun について調べた
分散データベース gun について調べた分散データベース gun について調べた
分散データベース gun について調べた
 
Unix1
Unix1Unix1
Unix1
 
カウチなやつら CouchDB in the room
カウチなやつら CouchDB in the roomカウチなやつら CouchDB in the room
カウチなやつら CouchDB in the room
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
 
Pgunconf neo4j fdw
Pgunconf neo4j fdwPgunconf neo4j fdw
Pgunconf neo4j fdw
 
hiding
hidinghiding
hiding
 
Nas
NasNas
Nas
 
Cache勉強会
Cache勉強会Cache勉強会
Cache勉強会
 
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
 
20150520 lt-neo4j勉強会-neofj fdw
20150520 lt-neo4j勉強会-neofj fdw20150520 lt-neo4j勉強会-neofj fdw
20150520 lt-neo4j勉強会-neofj fdw
 
Bazaar
BazaarBazaar
Bazaar
 
コード読経会
コード読経会コード読経会
コード読経会
 
PHP+DB
PHP+DBPHP+DB
PHP+DB
 
ドキュメント共有システム「ShareDoc」
ドキュメント共有システム「ShareDoc」ドキュメント共有システム「ShareDoc」
ドキュメント共有システム「ShareDoc」
 
ファイルの隠し方
ファイルの隠し方ファイルの隠し方
ファイルの隠し方
 

Similar to 3-1

extracting only a necessary file from a zip file
extracting only a necessary file from a zip fileextracting only a necessary file from a zip file
extracting only a necessary file from a zip file
Toshiyuki Shimono
 
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
Satoshi Kume
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書Masahiko Toyoshi
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
Etsuji Nakai
 
第3回 FIC&FCS合同勉強会
第3回 FIC&FCS合同勉強会第3回 FIC&FCS合同勉強会
第3回 FIC&FCS合同勉強会Hiroyuki Honta
 
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)Naoki Okino
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
Takahiro Iwase
 
04 filesystem include
04 filesystem include04 filesystem include
04 filesystem include
文樹 高橋
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
Yapcasia2012 ltthon
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthonturugina
 
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
Takeru Nakazato
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤTakashi Hoshino
 

Similar to 3-1 (12)

extracting only a necessary file from a zip file
extracting only a necessary file from a zip fileextracting only a necessary file from a zip file
extracting only a necessary file from a zip file
 
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
 
第3回 FIC&FCS合同勉強会
第3回 FIC&FCS合同勉強会第3回 FIC&FCS合同勉強会
第3回 FIC&FCS合同勉強会
 
2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)2012 0623-x-road-tokyo-xoops-x(ten)
2012 0623-x-road-tokyo-xoops-x(ten)
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 
04 filesystem include
04 filesystem include04 filesystem include
04 filesystem include
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
Yapcasia2012 ltthon
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthon
 
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 

Recently uploaded

Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 

Recently uploaded (10)

Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 

3-1