Book description
バイオインフォマティクス(生命情報科学)とは、コンピュータによる情報解析の手法を生物学の問題に応用する学問のことを指します。本書は、基本的なプログラミングに関する知識を持ったバイオ研究者を対象に、“ロバストで再現性のある研究”のため、複雑で大規模な配列データから意味を抽出し、探索するための技術を解説します。データを処理する方法としてPython、R、Gitなどのオー プンソースツールを用いるため、次世代のデータにも適用できます。近年、ニーズが高まりつつあるバイオ分野において不可欠なデータ処理技術のすべてがこの一冊に詰まっています。
Table of contents
- 表紙
- はじめに
- 第Ⅰ部 基本方針:ロバストで再現性のあるバイオインフォマティクスのためのデータスキル
- 1章 バイオインフォマティクスの学習方法
- 1.1 なぜバイオインフォマティクスなのか? 増大する生物学データ
- 1.2 バイオインフォマティクスを学ぶためのデータスキルの学習
- 1.3 再現性がありロバストな研究のための新たな課題
- 1.4 再現可能な研究
- 1.5 ロバストな研究とバイオインフォマティクスの黄金律
- 1.6 ロバストで再現性のある技法を採用すれば研究生活も楽になる
- 1.7 ロバストな研究に向けての推奨事項
- 1.7.1 実験の計画に注意を払う
- 1.7.2 人間のためにコードを書き、コンピュータのためにデータを書く
- 1.7.3 コンピュータを自分のために働かせる
- 1.7.4 アサーションを設定し、コードとメソッドの中でエラーが目立つようにする
- 1.7.5 コードをテストせよ。理想的にはコードにコードをテストさせよ
- 1.7.6 可能であれば既存のライブラリを使用する
- 1.7.7 データを読み取り専用として扱う
- 1.7.8 頻繁に使用するスクリプトは時間をかけてツールに仕立てる
- 1.7.9 データが高品質であることを証明できるようにする
- 1.8 再現可能な研究に向けての推奨事項
- 1.8.1 コードとデータを公開する
- 1.8.2 すべてをドキュメント化する
- 1.8.3 図と統計をスクリプトの出力結果にする
- 1.8.4 コードをドキュメントとして使用する
- 1.9 バイオインフォマティクスのデータスキルを継続的に改善する
- 第Ⅱ部 前提条件:バイオインフォマティクスプロジェクトを開始するための必須スキル
- 2章 バイオインフォマティクスプロジェクトの準備と管理
- 2.1 プロジェクトディレクトリとディレクトリ構造
- 2.2 プロジェクトドキュメント
- 2.3 ディレクトリを使用してプロジェクトをサブプロジェクトに分割する
- 2.4 ファイル処理タスクを自動化できるようにデータを整理する
- 2.5 プロジェクトノートのためのマークダウン記法
- 2.6 マークダウン記法の基礎
- 2.7 Pandocを使用してマークダウン形式をHTMLへ変換する
- 3章 Unixシェル再入門
- 3.1 なぜバイオインフォマティクスでUnixを使うのか?:モジュール性とUnix哲学
- 3.2 ストリームとリダイレクションの操作
- 3.2.1 標準出力をファイルにリダイレクトする
- 3.2.2 標準エラーのリダイレクト
- 3.2.3 標準入力リダイレクトの使用
- 3.3 全能のUnixパイプ:スピードと美しさを1つに
- 3.3.1 パイプの動作:grepとパイプによる簡単なプログラムの作成
- 3.3.2 パイプとリダイレクションの結合
- 3.3.3 リダイレクションについてもう少し:パイプのtee
- 3.4 プロセスの管理と対話
- 3.4.1 バックグラウンドプロセス
- 3.4.2 プロセスの強制終了
- 3.4.3 終了ステータス:プログラムで、コマンドが働いたかどうかを確認する方法
- 3.5 コマンド置換
- 4章 リモートマシンで作業する
- 4.1 SSHでリモートマシンに接続する
- 4.2 SSH鍵による迅速な認証
- 4.3 nohupとtmuxで長い時間稼働するジョブを制御する
- 4.3.1 nohup
- 4.4 Tmuxを使ってリモートマシンで作業する
- 4.4.1 Tmuxのインストールと構成
- 4.4.2 Tmuxセッションの作成、切断、再接続
- 4.4.3 Tmuxウィンドウで作業する
- 5章 科学者のためのGit
- 5.1 なぜGitがバイオインフォマティクスプロジェクトで必要か
- 5.1.1 Gitによりプロジェクトのスナップショットを保存できる
- 5.1.2 Gitはコードの重要な変更を記録する
- 5.1.3 Gitはソフトウェア関連リソースをきちんと整理し、人がいなくなった後でもいつでも使えるように保つ
- 5.2 Gitのインストール
- 5.3 Gitの基本:リポジトリの作成、ファイルの追跡、変更のステージングおよびコミット
- 5.3.1 Gitのセットアップ:Gitに自分が誰であるかを伝える
- 5.3.2 git initとgit clone:リポジトリを作成する
- 5.3.3 Gitでファイルを追跡する:git addとgit status パート1
- 5.3.4 Gitでファイルをステージングする:git addとgit status パート2
- 5.3.5 git commit:プロジェクトのスナップショットを取得する
- 5.3.6 ファイルの差分を見る:git diff
- 5.3.7 コミット履歴を見る:git log
- 5.3.8 ファイルの移動と削除:git mvとgit rm
- 5.3.9 Gitに何を無視するかを知らせる:.gitignore
- 5.3.10 ステージングを元に戻す:git reset
- 5.4 Gitを使った協働作業:git remote、git push、git pull
- 5.4.1 GitHubで共有された中央リポジトリを作る
- 5.4.2 Gitをリモートから認証する
- 5.4.3 Gitにリモートから接続する:git remote
- 5.4.4 git pushでリモートリポジトリにコミットをプッシュする
- 5.4.5 git pullでリモートリポジトリからコミットをプルする
- 5.4.6 共同研究者と作業する:プッシュとプル
- 5.4.7 マージコンフリクト
- 5.4.8 GitHubワークフロー:フォークとプルリクエスト
- 5.5 Gitを使って楽をする:過去のコミットで作業する
- 5.5.1 過去のファイルを復元する:git checkout
- 5.5.2 仮変更を保存する:git stash
- 5.5.3 git diff再訪:コミットとファイルを比較する
- 5.5.4 コミットを取り消したり編集したりする:git commit --amend
- 5.6 ブランチで作業する
- 5.6.1 ブランチを作り作業する:git branchとgit checkout
- 5.6.2 ブランチをマージする:git merge
- 5.6.3 ブランチとリモート
- 5.7 Gitの学習を継続する
- 6章 バイオインフォマティクスのデータ
- 6.1 バイオインフォマティクスデータの取得
- 6.1.1 wgetとcurlを使用したデータのダウンロード
- 6.1.2 rsyncとscp
- 6.2 データの整合性
- 6.2.1 SHAとMD5のチェックサム
- 6.3 データの間の差を見る
- 6.4 データの圧縮と圧縮データの操作
- 6.4.1 gzip
- 6.4.2 gzipで圧縮されたファイルの操作
- 6.5 ケーススタディ:再現性を確保できるデータのダウンロード方法
- 第Ⅲ部 実践:バイオインフォマティクスのデータスキル
- 7章 Unixツール
- 7.1 UnixツールとUnixワンライナーアプローチ:Programming Pearlsから学んだ教訓
- 7.2 Unixパイプラインを使うタイミングと安全な使い方
- 7.3 Unixツールによるテキストデータの検査と操作
- 7.3.1 headとtailによるデータの検査
- 7.3.2 lessコマンド
- 7.3.3 wc、ls、awkによるプレーンテキストデータの要約情報
- 7.3.4 cutによる列データの操作
- 7.3.5 columnによる表形式データへの整形
- 7.3.6 強力なツールgrep
- 7.3.7 プレーンテキストデータのデコード:hexdump
- 7.3.8 sortによるプレーンテキストデータの並べ替え
- 7.3.9 uniqコマンドで一意の値を見つける
- 7.3.10 joinコマンド
- 7.3.11 AWKによるテキスト処理
- 7.3.12 Bioawk:生物学的データのためのAWK
- 7.3.13 sedを用いたストリーム編集
- 7.4 高度なシェル技法
- 7.4.1 サブシェル
- 7.4.2 名前付きパイプとプロセス置換
- 7.5 Unix哲学再考
- 8章 R言語入門
- 8.1 RとRStudio入門
- 8.2 R言語の基礎
- 8.2.1 Rにおける簡単な計算、関数の呼び出し、ヘルプの取得
- 8.2.2 変数と代入
- 8.2.3 ベクトル、ベクトル化、添字指定
- 8.3 Rでのデータの扱いとその可視化
- 8.3.1 データをRに読み込ませる
- 8.3.2 データフレームの探索と変換
- 8.3.3 スライシングとダイシングによるデータの探索:データフレームのサブセット化
- 8.3.4 ggplot2によるデータ探索の可視化(I):ScatterplotsとDensities
- 8.3.5 ggplot2によるデータ探索の可視化(II):平滑化
- 8.3.6 cut()によるデータのビニングとggplot2を使った棒グラフの描画
- 8.3.7 データのマージと結合:ベクトルのマッチングとデータフレームのマージ
- 8.3.8 ggplot2ファセットの使用
- 8.3.9 さらなるRデータ構造:リスト
- 8.3.10 lapply()とsapply()関数を使って、リストに関数を適用する
- 8.3.11 分割−適用−結合(Split-Apply-Combine)パターンを使用する
- 8.3.12 dplyrによるデータフレームの探索
- 8.3.13 文字列の操作
- 8.4 Rスクリプトによるワークフロー開発
- 8.4.1 制御フロー:if、for、while
- 8.4.2 Rスクリプトによる作業
- 8.4.3 複数ファイルの読み込みと結合のためのワークフロー
- 8.4.4 データのエクスポート
- 8.5 さらなるRの道筋とリソース
- 9章 範囲データの操作
- 9.1 ゲノム範囲と座標系に対する短期集中コース
- 9.2 GenomicRangesを用いた範囲データ:実行例の紹介
- 9.2.1 Bioconductorパッケージのインストールと操作
- 9.2.2 IRangesを使用した汎用範囲の保存
- 9.2.3 基本的な範囲の操作:算術演算、変換、集合演算
- 9.2.4 重複する範囲を見つける
- 9.2.5 最も近い範囲を見つけて距離を計算する
- 9.2.6 ランレングス符号化とビュー
- 9.2.7 GenomicRangesによるゲノム範囲の保存
- 9.2.8 GRangesListによるデータのグループ化
- 9.2.9 アノテーションデータの利用:GenomicFeaturesとrtracklayer
- 9.2.10 プロモーター領域の取得:flankとpromoters
- 9.2.11 プロモーター配列の取得:GenomicRangesを配列データに接続
- 9.2.12 遺伝子間およびイントロン領域の取得:gaps、reduce、setdiff
- 9.2.13 重複する範囲を見つけて作業する
- 9.2.14 GRangesオブジェクトのカバレッジの計算
- 9.3 BEDToolsを使用したコマンドラインでの範囲データ操作
- 9.3.1 BEDToolsのintersectを使った重複の計算
- 9.3.2 BEDToolsのslopとflank
- 9.3.3 BEDToolsによるカバレッジ
- 9.3.4 他のBEDToolsサブコマンドとPybedtools
- 10章 配列データの操作
- 10.1 FASTA形式
- 10.2 FASTQ形式
- 10.3 ヌクレオチドのコード
- 10.4 塩基品質スコア
- 10.5 例:低品質塩基の検査とトリミング
- 10.6 FASTA/FASTQ解析の例:ヌクレオチドの数え上げ
- 10.7 索引付きFASTAファイル
- 11章 アラインメントデータの操作
- 11.1 アラインメント形式の理解:SAMとBAM
- 11.1.1 SAMヘッダー
- 11.1.2 SAMアラインメントセクション
- 11.1.3 ビット表現フラグ
- 11.1.4 CIGAR文字列
- 11.1.5 マッピング品質
- 11.2 SAM形式のアラインメントを操作するためのコマンドラインツール
- 11.2.1 samtools viewを使ってSAMとBAMを相互変換する
- 11.2.2 samtoolsのsortサブコマンドとindexサブコマンド
- 11.2.3 samtools viewによるアラインメントの抽出とフィルタリング
- 11.3 samtools tviewとIntegrated Genomics Viewerによるアラインメントの可視化
- 11.3.1 samtools pileupを使用したパイルアップ、バリアントコール、塩基アラインメント品質
- 11.4 Pysamで独自のSAM/BAM処理ツールを作成する
- 11.4.1 BAMファイルを開き、領域からアラインメントを取り出し、リードに対する操作を繰り返す
- 11.4.2 AlignmentFileオブジェクトからのSAM/BAMヘッダー情報の抽出
- 11.4.3 AlignedSegmentオブジェクトを操作する
- 11.4.4 アラインメント統計を記録するプログラムの作成
- 11.4.5 その他のPysam機能、およびその他のSAM/BAM API
- 12章 シェルスクリプト作成、パイプラインの記述、タスクの並列化
- 12.1 基本的なBashスクリプティング
- 12.1.1 ロバストなBashスクリプトの作成と実行
- 12.1.2 変数とコマンド引数
- 12.1.3 Bashスクリプト内の条件文:if文
- 12.1.4 forループとグロブ(パターンマッチ)を使ったBashによるファイル処理
- 12.2 findとxargsを使ったファイル処理の自動化
- 12.2.1 findとxargsを使う
- 12.2.2 findでファイルを見つける
- 12.2.3 findの検索式
- 12.2.4 findの-execオプション:findの結果に対するコマンドの実行
- 12.2.5 xargs:Unixパワーツール
- 12.2.6 xargsに置換文字列を与え、ファイルにコマンドを適用する
- 12.2.7 xargsと並列化
- 12.3 makeとmakefile:パイプラインのための別オプション
- 13章 TabixとSQLite:メモリを使わないアプローチ
- 13.1 BGZFとTabixを使用した索引付きのタブ区切りファイルへの高速アクセス
- 13.1.1 bgzipを使ってTabixのためにファイルを圧縮する
- 13.1.2 Tabixによるファイルの索引作成
- 13.1.3 Tabixを使う
- 13.2 SQLiteを使ったリレーショナルデータベースの操作
- 13.2.1 バイオインフォマティクスでリレーショナルデータベースが必要になるとき
- 13.2.2 SQLiteのインストール
- 13.2.3 CLIによるSQLiteデータベースの探求
- 13.2.4 データの操作:全能のSELECT文
- 13.2.5 SQLite関数
- 13.2.6 SQLite集約関数
- 13.2.7 副問い合わせ(サブクエリー)
- 13.2.8 リレーショナルデータベースの編成と結合(join)
- 13.2.9 データベースへの書き込み
- 13.2.10 テーブルの削除とデータベースの削除
- 13.2.11 Pythonを使ってSQLiteと対話する
- 13.2.12 データベースのダンプ
- 14章 おわりに
- 14.1 この先、どう学べばよいのか?
- 用語集
- 参考文献
- 監訳者あとがき
- 奥付
Product information
- Title: バイオインフォマティクスデータスキル ―オープンソースツールを使ったロバストで再現性のある研究
- Author(s):
- Release date: September 2020
- Publisher(s): O'Reilly Japan, Inc.
- ISBN: 9784873118635
You might also like
book
Bioinformatics Data Skills
Learn the data skills necessary for turning large sequencing datasets into reproducible and robust biological findings. …
book
SQL for Data Analysis
With the explosion of data, computing power, and cloud data warehouses, SQL has become an even …
book
Analytical Skills for AI and Data Science
While several market-leading companies have successfully transformed their business models by following data- and AI-driven paths, …
scenario
Customer Analytics with Python: Develop and Interpret a Hierarchical Clustering
Get insights about structures and hierarchies in your data.