- m3.com 電子書籍
- 実験医学別冊 改訂 独習Pythonバイオ情報解析
商品情報
内容
Pythonの定番テキストが待望の改訂!大規模データの取り扱いや図による可視化など汎用的なPythonの使い方から,シングルセル,RNA-seq解析までバイオインフォマティクスの基礎が身につきます.サンプルデータとコード見本付きで,今日から実践しながら学べます.改訂では,生成AIの活用方法やScanpyの詳細な解説を加筆し,各種ライブラリのアップデートに対応しました.
序文
改訂にあたり
1980年のノーベル化学賞に輝いたFrederick Sanger とWalter Gilbert のDNA シークエンシング法は,生命の設計図を「読む」技術の礎を築き,次世代型DNA シークエンサー(NGS)へと進化を遂げました.そして2024年,膨大なデータを「理解する」技術として,タンパク質立体構造予測AI のAlphaFold を開発したDemis Hassabis とJohn Jumper が化学賞を,ニューラルネットワークの基礎を築いたJohn J. Hopfield とGeoffrey Hinton が物理学賞を受賞したのです.これは,生命科学における「読む」技術から「理解する」技術へという歴史的な転換点を象徴する出来事でした.
一方で,これらの技術を誰もが簡単に利用できる時代だからこそ,新たな課題も浮上しています.先日,自由研究のため私たちの研究室を訪れた高校生グループが,温泉水中の微生物を対象としたメタゲノム解析に挑戦しました.彼らはPython プログラミングはおろか,メタゲノム解析に関しても全くの初心者でした.われわれが指導したのは,ChatGPT とGoogle Colaboratory の基本的な使い方のみ.しかし驚くべきことに,彼らはこれらのツールを巧みに操り,データを解析し,結果を可視化することに成功したのです.この時点では,生成AI の可能性に改めて驚かされると同時に,科学技術の民主化の力を実感しました.しかし,ここで私たちは科学における本質的な課題に直面することになります.プログラムにバグが発生した際,彼らはその原因を特定することも修正することもできず,さらに重要なことに,可視化されたグラフの解釈や結果の生物学的な意味を理解することができなかったのです.これは,生成AI 時代の科学における象徴的な出来事かもしれません.
AlphaFold が示したように,AI は確かに人間の直感を超える発見をもたらします.一方で,ゲノム科学における代表的な推論方法であるアブダクション(仮説形成)において,AI が提示する解析結果や仮説が生物学的文脈で本当に意味をなすのか,実験的検証に値するのか,を判断するには,依然として深いアルゴリズムの理解と生物学的洞察が不可欠です.特に,マルチオミクスと称する膨大かつ多様なデータ群の解析では,使用するアルゴリズムの本質を理解していないと,AI が提案した解析結果が誤った結論へと導く危険性すらあります.
本改訂では,このような歴史的転換点を背景としつつも初版を踏襲し,単なるツールの使い方にとどまらず,アルゴリズムとその理論的基盤を深く理解することを重視しました.読者が生成AI や新しい解析技術を活用しつつ,それらの背景にある科学的根拠を理解し,独自の視点で問題を解決する力を育むことをめざしています.初版で掲げたD. E. Knuth 著『The Art of Computer Programming』の理念をさらに発展させ,現代の科学者に求められるスキルを提供する一助となり,本書が次なる科学の躍進を支える基盤となることを願っています.
最後に,国立遺伝学研究所 生命情報・DDBJ センターの皆様,ライフサイエンス統合データベースセンター(DBCLS)の皆様,先進ゲノム解析研究推進プラットフォームの皆様,さらには私どもと哲学を共有し忍耐強く改訂版の出版に導いていただいた羊土社の皆様に心より深く感謝申し上げます.
2024年11月
編集を代表して
黒川 顕
目次
第1章 この本の使い方と事前準備【森 宙史】
1.1 Pythonを用いる理由
1.2 プログラミングを行うためのマシンの用意
1.2.1 macOSを推奨する理由
1.3 MinicondaおよびMiniforgeについて
1.3.1 MinicondaまたはMiniforgeのインストール方法
1.3.2 Pythonのバージョン確認
1.3.3 condaで利用するリポジトリの設定
1.3.4 condaによる仮想環境の構築について
1.4 プログラムの表記法
1.5 本書で何を扱わないか
1.6 本書で用いるプログラムやサンプルデータの置き場所
第2章 生成AIを用いたプログラミング【東 光一】
2.1 はじめに
2.2 生成AI時代にプログラミング学習が必要か?
2.3 LLMサービスのプログラミングにおける活用
2.3.1 代表的なLLMサービス
2.3.2 LLMの主要な活用場面
2.3.3 LLM利用の注意点
2.4 LLM利用の具体例
2.5 おわりに
第3章 Jupyter Notebookの使い方【谷澤靖洋】
3.1 Jupyter Notebookの基本操作
3.1.1 インストールと起動
3.1.2 新規ノートブックの作成
3.1.3 コードの実行
3.1.4 編集モードとコマンドモード
3.1.5 セルの種類
3.1.6 ヘルプの表示とキーボードショートカット
3.1.7 コマンドパレット
3.2 Jupyter Notebookの便利な機能
3.2.1 コマンドの補完
3.2.2 ヘルプの表示
3.2.3 マジックコマンド
3.2.4 シェルコマンドの利用
3.2.5 表形式データの表示
3.2.6 グラフの描画
3.3 今後の学習に向けて
3.3.1 JupyterLab
3.3.2 Google Colaboratory
3.3.3 Visual Studio Code
3.4 おわりに
第4章 Python速習コース【新海典夫】
4.1 はじめに
4.2 関数とメソッド
4.2.1 関数(functions)
4.2.2 メソッド(method)
4.3 変数
4.3.1 変数の基本
4.4 複合データ型
4.4.1 リスト(list)
4.4.2 タプル(tuple)
4.4.3 辞書型(ディクショナリ)
4.4.4 集合型(セット)
4.5 制御構文
4.5.1 if文
4.5.2 for文
4.5.3 while文
4.5.4 リスト内包表記
4.6 自作関数
4.6.1 自作関数の基本
4.6.2 可変長引数
4.7 モジュールのimport
4.8 おわりに
4.9 参考文献
▶参考1 sort()とsorted()
▶参考2 natsort
▶参考3 タプルとリストの違いについて
▶参考4 文字列のスライス操作
▶参考5 複合型データを学んだうえでの「変数」の補足(オブジェクト)
▶参考6 データのコピーについて
▶参考7 論理演算
▶参考8 「イテレータ」「イテラブル」といった用語について
第5章 文字列処理の基本 〜ファイルの読み書き,正規表現【高橋弘喜】
5.1 文字列処理
5.1.1 テキストファイル
5.1.2 バイナリファイル
5.2 ファイルの読み書き
5.2.1 ファイルを読み込む
5.2.2 ファイルに書き込む
5.2.3 改行コード
5.2.4 ファイル読み込み(具体例1:GFF3形式)
5.2.5 ファイル書き込み(具体例)
5.3 ファイル読み込み(具体例2:SAM形式)
5.3.1 ビット演算子
5.4 正規表現
5.5 おわりに
第6章 Biopythonを用いた塩基配列データの扱い方 〜オブジェクト指向入門【谷澤靖洋】
6.1 クラスを利用したプログラミング
6.1.1 クラスとオブジェクト
6.1.2 クラスを定義する
6.1.3 クラスの利用
6.1.4 より高度なクラスの利用
6.1.5 オブジェクト指向
6.2 Biopythonを使った配列ファイルの読み書き
6.2.1 SeqRecordオブジェクトとSeqオブジェクト
6.2.2 FASTAファイルの読み書き
6.2.3 FASTAファイルへのランダムアクセス
6.3 GenBankファイルの読み込み
6.3.1 GenBank形式ファイル
6.3.2 Biopythonを使ったGenBankファイルのパース
6.3.3 ファイル全体のfeatureをループで回す
6.4 GFFファイルの読み込み
6.4.1 GFFファイルの構造
6.4.2 GFFファイルのパース
6.4.3 GTFファイルについて
6.5 おわりに
▶参考 データクラスの利用
第7章 pandasはじめの一歩 〜表形式データの扱い方【坂本美佳】
7.1 準備
7.1.1 pandasのimport
7.1.2 本章で使用するデータファイル
7.2 Series
7.2.1 Seriesの作成と四則計算
7.2.2 データの抽出
7.3 DataFrameの基本操作
7.3.1 DataFrameの作成
7.3.2 DataFrameを使った計算
7.3.3 関数を使った操作
7.3.4 データの抽出
7.3.5 DataFrameの編集
7.4 欠損値,重複の扱い
7.4.1 欠損値の削除
7.4.2 欠損値の補完
7.4.3 重複の除去
7.4.4 メソッドチェーン
7.5 DataFrameに対する関数の適用
7.5.1 DataFrameの集計
7.5.2 NumPyの関数の利用
7.5.3 map関数の利用
7.6 行/列のループ処理
7.6.1 DataFrameをそのままループで回す
7.6.2 1行ずつor1列ずつ取り出す
7.6.3 forループを使う場合の注意点
7.7 DataFrameの結合
7.7.1 2つ以上のDataFrameの連結
7.7.2 indexをkeyとして連結
7.7.3 index以外をkeyとして連結
7.8 その他の機能
7.8.1 MultiIndex
7.8.2 データのグルーピング
7.8.3 カテゴリごとにグルーピングして計算
7.9 DataFrameの書き出し
7.10 おわりに
第8章 RNA-Seqカウントデータの処理 〜pandas実践編【坂本美佳】
8.1 準備
8.1.1 RNA-Seqとは
8.1.2 この章で用いるRNA-Seqデータ
8.1.3 本章で使用するデータファイル
8.2 データファイルの読み込みとアノテーション
8.2.1 カウントデータ
8.2.2 データの概観
8.2.3 列名を変更する
8.2.4 ミトコンドリア上の遺伝子を除く
8.2.5 アノテーションファイルの読み込み
8.2.6 カウントデータとdescriptionを連結する
8.2.7 カウントデータ部分の切り出し
8.2.8 ファイルの保存
8.3 カウントデータの正規化
8.3.1 リード数で正規化(RPM/FPM)
8.3.2 遺伝子長による正規化(RPKM/FPKM)
8.3.3 TPM正規化
8.3.4 NumPyを使った高速バージョンとの比較
8.4 発現変動遺伝子の抽出
8.5 TPM正規化したデータのクラスタリング
8.6 おわりに
第9章 データの可視化 〜Matplotlib,Seabornを用いたグラフ作成【孫 建強】
9.1 解析環境のセットアップおよびデータの準備
9.1.1 可視化ライブラリ
9.1.2 ライブラリのインストール
9.1.3 データの準備
9.2 Matplotlibライブラリの使い方
9.2.1 グラフのプロット領域
9.2.2 グラフの作成方法
9.2.3 グラフの保存方法
9.2.4 基本グラフを描くメソッド
9.2.5 座標軸や凡例を調整するメソッド
9.3 基本グラフ
9.3.1 ヒストグラム
9.3.2 ボックスプロット
9.3.3 散布図
9.3.4 線グラフ
9.3.5 棒グラフ
9.3.6 ヒートマップ
9.3.7 ベン図
9.4 プロット領域の分割
9.4.1 複数グラフ
9.5 おわりに
第10章 統計的仮説検定 〜RNA-Seqデータを用いた検定の基本からモデル選択まで【森 宙史】
10.1 必要ライブラリのimport
10.2 基本的な用語や概念
10.2.1 母集団と標本(サンプル)
10.2.2 標本データの尺度水準
10.2.3 確率変数と確率分布
10.3 さまざまな確率分布
10.3.1 二項分布
10.3.2 ポアソン分布
10.3.3 正規分布
10.4 統計的仮説検定について
10.4.1 帰無仮説と対立仮説
10.4.2 p値
10.4.3 片側検定と両側検定
10.4.4 検定の使い分け
10.5 TPMデータを用いた検定の例
10.5.1 TPMとは
10.5.2 TPMデータの概観
10.5.3 相関係数について
10.5.4 群間の全体像の検定
10.5.5 群間の各カテゴリ(変数)の検定
10.6 検定の多重性の問題
10.7 実際のRNA-Seqにおける統計的仮説検定
10.8 GLMによる確率モデルの最尤推定とAICによるモデル選択
10.9 発現量変動解析について
10.10 DESeq2について
10.11 今後の統計的仮説検定の位置づけについて
第11章 シングルセル解析① 〜テーブルデータの前処理【東 光一】
11.1 はじめに
11.1.1 高次元データを「見る」
11.1.2 scRNA-Seq解析
11.1.3 なぜわざわざ自分で解析するのか
11.1.4 本章で扱うデータ
11.2 データの前処理
11.2.1 データの読み込み
11.2.2 クオリティコントロール(細胞と遺伝子のフィルタリング)
11.2.3 データの正規化と対数変換
11.2.4 特徴量選択(発現量変動の大きい遺伝子の抽出)
11.2.5 データの標準化
11.2.6 処理データの保存
11.3 おわりに
第12章 シングルセル解析② 〜次元削減【東 光一】
12.1 データ読み込み
12.2 主成分分析
12.3 t-SNE
12.3.1 t-SNEのアルゴリズム概要
12.3.2 t-SNEの注意点
12.3.3 t-SNEの実例
11.4 UMAP
12.4.1 UMAPのアルゴリズム概要
12.4.2 UMAPの実例
12.5 その他の次元削減手法
第13章 シングルセル解析③ 〜クラスタリング【東 光一】
13.1 データ読み込み
13.2 階層的クラスタリング
13.2.1 階層的クラスタリングのアルゴリズム概要
13.2.2 階層的クラスタリングの実例
13.3 k-meansクラスタリング
13.3.1 k-meansクラスタリングのアルゴリズム概要
13.3.2 k-meansクラスタリングの実例
13.4 近傍グラフに基づくクラスタリング
13.4.1 近傍グラフに基づくクラスタリングのアルゴリズム概要
13.4.2 Leiden法によるクラスタリングの実例
13.5 その他のクラスタリング手法
13.6 クラスタリング後の解析
13.7 おわりに:結局どれを使えばいいのか
付録A NumPy入門【東 光一】
A.1 NumPyのimport
A.2 NumPyで配列を作る
A.3 行ベクトルと列ベクトル
A.4 多次元配列を作る
A.5 二次元配列の操作
A.6 NumPyのブロードキャスト
A.7 乱数
A.8 実践
A.8.1 カウントデータを相対存在量に変換してみる
A.8.2 円周率のモンテカルロ計算
A.9 おわりに
付録B Scanpyを使ったシングルセル解析【東 光一】
B.1 はじめに
B.2 インストール
B.3 データセット
B.4 anndataの構造
B.5 Scanpyの概要
B.6 データの読み込み
B.7 クオリティコントロール(細胞と遺伝子のフィルタリング)
B.8 正規化
B.9 特徴量選択(発現量の変動が大きい遺伝子)
B.10 次元削減
B.10.1 主成分分析(PCA)
B.10.2 t分布型確率的近傍埋め込み(t-SNE)
B.10.3 UMAP
B.11 クラスタリング
B.12 深層生成モデルの利用
B.13 おわりに
索引
執筆者一覧
便利機能
- 対応
- 一部対応
- 未対応
- 全文・
串刺検索 - 目次・
索引リンク - PCブラウザ閲覧
- メモ・付箋
- PubMed
リンク - 動画再生
- 音声再生
- 今日の治療薬リンク
- イヤーノートリンク
- 南山堂医学
大辞典
リンク
- 対応
- 一部対応
- 未対応
対応機種
iOS 最新バージョンのOSをご利用ください
外部メモリ:23.3MB以上(インストール時:53.8MB以上)
ダウンロード時に必要なメモリ:93.0MB以上
AndroidOS 最新バージョンのOSをご利用ください
外部メモリ:23.3MB以上(インストール時:53.8MB以上)
ダウンロード時に必要なメモリ:93.0MB以上
- コンテンツのインストールにあたり、無線LANへの接続環境が必要です(3G回線によるインストールも可能ですが、データ量の多い通信のため、通信料が高額となりますので、無線LANを推奨しております)。
- コンテンツの使用にあたり、m3.com電子書籍アプリが必要です。 導入方法の詳細はこちら
- Appleロゴは、Apple Inc.の商標です。
- Androidロゴは Google LLC の商標です。
書籍情報
- ISBN:9784758122788
- ページ数:446頁
- 書籍発行日:2025年1月
- 電子版発売日:2025年2月13日
- 判:AB判
- 種別:eBook版 → 詳細はこちら
- 同時利用可能端末数:3
お客様の声
まだ投稿されていません
特記事項
※ご入金確認後、メールにてご案内するダウンロード方法によりダウンロードしていただくとご使用いただけます。
※コンテンツの使用にあたり、m3.com 電子書籍アプリが必要です。
※eBook版は、書籍の体裁そのままで表示しますので、ディスプレイサイズが7インチ以上の端末でのご使用を推奨します。