

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
anndata とは?基礎から学ぶポイント
このページでは anndata という Python のライブラリについて、初心者でも分かるように丁寧に解説します。
anndata は何をするものか、どんなデータを扱うのか、どのように使い始めるのかを順番に見ていきます。
anndata の役割とは
AnnData は「annotated data」の略で、データ本体とデータに付いた説明を一つの箱にまとめる仕組みです。つまり数値データと、それに紐づく説明やメタデータを一緒に管理できます。
主な役割は二つです。第一に大きなデータマトリクス X を効率よく扱えること。第二に行データや列データのメタ情報を別のオブジェクトとして保存できることです。
AnnData の中身
典型的な AnnData オブジェクトにはいくつかの部品があります。以下は代表的なものです。
- X:データの主成分マトリクス。遺伝子発現や特徴量の数値データを格納します。
- obs:細胞ごとのメタデータを表すデータフレーム。例として細胞IDや条件、細胞型など。
- var:特徴ごとの情報を表すデータフレーム。遺伝子名や特徴名など。
- uns:未構造化データと呼ばれる補助データ。カラー設定や解析フラグなど自由に保管します。
- obsm、obsp、varm:座標情報や間接的な補足データの保存場所。
- raw:元の生データを保持する場所。再現性を確保するときに役立ちます。
使い方の基本
使い方はとてもシンプルです。まずは AnnData クラスを使ってデータを作成します。例として以下のようにします。
from anndata import AnnData
adata = AnnData(X=X_matrix, obs=obs_dataframe, var=var_dataframe)
ここで X_matrix はデータマトリクス、 obs_dataframe は細胞ごとの情報、 var_dataframe は遺伝子情報などをそれぞれ用意します。
作成したデータは次の段階で解析ツールに渡されます。Scanpy のようなツールはこの AnnData をデータ容器として利用します。
Scanpy との関係
単一細胞データ解析ツールの Scanpy は AnnData をデータの中心に置く設計です。Scanpy はデータの正規化、クラスタリング、可視化などの処理を AnnData の部品に対して順番に実行します。
注意点と実践のコツ
データが大きくなると メモリ の使用量が増えます。実験データは大きいことが多いので、初めは小さなデータセットで基本を練習し、必要に応じてデータを分割して作業しましょう。
表で見る AnnData の代表的な部品
| 説明 | |
|---|---|
| X | データの主成分マトリクス。数値データを格納します。 |
| obs | 行ラベルに対応するメタデータ。例: 細胞の条件、クラス、クリアデータ。 |
| var | 列ラベルに対応する情報。例: 遺伝子名、特徴名。 |
| uns | 未構造データ。解析の補助情報や設定を格納します。 |
| obsm | 細胞の座標情報などの補助データを格納します。 |
| varm | 特徴の座標情報を格納します。 |
| raw | 元の未加工データを保存します。再現性のための保管庫として使います。 |
実践的な使い方のヒント
初めて触る人はまずデータの形を確認しましょう。adata.X の形状が (細胞数, 遺伝子数) を意味します。obs の列名と var の行名を確認して、どのデータがどの特徴を表しているかを把握します。
まとめ
anndata はデータとその説明を一つの箱にまとめることで、複雑な生物学データの解析をシンプルにします。AnnData の部品を理解することから始め、 Scanpy などの解析ツールと組み合わせて使うと巨大なデータでも効率的に作業できます。
anndataの同意語
- AnnData
- anndataライブラリが提供する、遺伝子発現データなどの注釈付きデータを格納する主要なデータ構造。X(データ行列)、obs(細胞のメタデータ)、var(遺伝子のメタデータ)などを1つのオブジェクトにまとめます。
- AnnDataオブジェクト
- AnnDataクラスのインスタンス。データ本体のXと、細胞や遺伝子の注釈情報を1つにまとめたデータ構造です。
- anndataライブラリ
- Pythonのオープンソースライブラリで、単一細胞データの注釈付きデータを扱う AnnData の実装と機能を提供します。
- anndataパッケージ
- 上と同義。Python環境で利用するライブラリとしての呼び方です。
- アノデータマトリクス
- 注釈付きデータマトリクスの英語表現を日本語にした直訳。anndataのデータ本体を指すことが多い表現です。
- 注釈付きデータマトリクス
- X(データ本体の行列)と obs/var の注釈を一体化して管理するデータ構造の総称。単一細胞データ解析で中心となる構造です。
- 注釈付きデータ行列
- 同じ意味の別表現。データ本体の行列と、それに対応する注釈情報を併せ持つデータ形式を指します。
- AnnDataクラス
- AnnDataというクラス名そのもの。Pythonのanndataライブラリで中心的に扱われるデータ構造の正式名称です。
anndataの対義語・反対語
- 未構造化データ
- 構造化・注釈付きではない、形式が定まっていないデータ。AnnData は観測データや特徴量をラベル付きで格納する構造化データの容器なので、未構造化データは対照的です。
- 生データ
- データを収集したままの加工前の状態。AnnData は前処理済みデータを想定する場面が多いので、生データは対義的な状態と捉えられます。
- 注釈なしデータ
- サンプル(obs)や遺伝子(var)などの注釈情報が欠落しているデータ。AnnData は注釈付きデータを格納する前提です。
- 空データ
- 観測数・変数数がゼロのデータセット。AnnData の基本的な構造が欠けている状態を意味します。
- データなし
- データそのものが存在しない状態。分析・格納の対象がゼロの状態です。
- X行列だけのデータ
- 特徴量を格納する X 行列のみを持ち、観測・変数の注釈情報(obs/var/uns)が欠けている状態。
- 非テーブル型データ
- 表形式データではなく、画像・テキストなど非表形式データ。AnnData は表形式データ向けの容器なので、非テーブル型は対義的です。
- 非ラベル付きデータ
- データにラベル・カテゴリ情報が付与されていない状態。
- 複数データ構造を同時に持つデータ
- AnnData のような統合された単一データ構造ではなく、複数のデータ構造(ファイル群やデータベースなど)で管理されている状態。
anndataの共起語
- AnnData
- 単一細胞RNAシーケンスデータを格納する中心的なデータ構造。X(発現データ)やobs、var、uns などのメタデータを一つにまとるクラスです。
- scanpy
- AnnDataを前提に単一細胞データの前処理・解析・可視化を行うPythonライブラリ。主な処理はこの組み合わせで行われます。
- h5ad
- AnnDataオブジェクトを保存するためのHDF5形式のファイル。大規模データの保存・読み込みに適しています。
- X
- 発現データの中心的な行列。セル数×遺伝子数で構成され、dense(密行列)または sparse(疎行列)として格納されます。
- obs
- 各セルのメタデータを格納する領域。例: 細胞タイプ、細胞周期、処理条件など。
- var
- 各遺伝子のメタデータを格納する領域。例: 遺伝子名、遺伝子特徴、検出情報など。
- uns
- 未整理(unstructured)データ領域。辞書形式で自由なメタデータを格納します。
- obsm
- 多次元の観測データ行列。例: PCA座標やUMAP座標など、セルごとの低次元表現を格納します。
- layers
- X以外のデータ層を格納する領域。例: raw_counts、normalized_counts など、複数のデータ表現を管理します。
- adata
- AnnDataオブジェクトを指す実務的な変数名。分析の対象となるデータを格納する実体です。
- read_h5ad
- H5ADファイルからAnnDataを読み込む関数・メソッド。
- write_h5ad
- AnnDataをH5AD形式で保存する関数・メソッド。
- anndata2ri
- PythonのAnnDataとRのデータ構造を橋渡しするツール。言語間でデータを移行する際に使用します。
- numpy
- 数値計算ライブラリ。データ配列の基礎となるデータ構造を提供します。
- pandas
- データ操作ライブラリ。obs/varのデータはDataFrame風に扱われ、整形・結合に便利です。
- scipy.sparse
- SciPy の疎行列実装。XがCSR/CSC形式で格納されることが多く、メモリ効率が高いです。
- scRNA-seq
- 単一細胞RNAシーケンス。分析対象となるデータの種類を指します。
- single-cell
- 単一細胞データ全般の総称。scRNA-seqと同義で使われることも多い語です。
- UMAP
- 次元削減と可視化の代表的手法。obsmに座標が格納され、データの視覚化に用います。
- PCA
- 主成分分析。データの次元を削減する基本的手法の一つです。
- TSNE
- t-SNE。非線形次元削減による可視化手法。UMAPと併せて使われることがあります。
- neighbors
- 最近傍グラフの計算。sc.pp.neighbors などで近傍情報を作成し、UMAPやクラスタリングの基盤になります。
- connectivities
- 近傍グラフの結合情報。neighborsの結果として得られ、データの構造を表現します。
- Seurat
- R言語の類似ツール。AnnData/Scanpyとデータを比較・移行する際に参照されることが多い名門ツールです。
anndataの関連用語
- AnnData
- anndataライブラリの中心となるデータ容器クラス。発現データと細胞・遺伝子のメタデータを1つにまとめて管理します。
- X
- 主データマトリクス。形は n_obs × n_vars。細胞ごとの遺伝子発現量を格納する密行列または SciPy の疎行列です。
- obs
- 細胞ごとのメタデータを格納するデータフレーム。例: バッチ、細胞タイプ、クラスタなど。
- var
- 遺伝子ごとのメタデータを格納するデータフレーム。例: 遺伝子名、高変動性フラグ、遺伝子属性。
- uns
- 非構造化データを格納する辞書。ハイパーパラメータや計算結果のキャッシュ、探索的メタデータを自由に格納します。
- layers
- X以外のデータマトリクスを格納する辞書。正規化済みデータ、補正データなどを layer 名で管理します。
- raw
- 生データを保持する領域。未正規化の X をコピーして保存することが多いです。
- obsm
- 細胞ごとの補助マトリクス。例: PCA座標、UMAP座標、t-SNE座標など。
- varm
- 遺伝子ごとの補助マトリクス。例: 遺伝子負荷、遺伝子間の関連情報。
- obsp
- 細胞間の距離や近傍グラフなど、観測値同士の関係データを格納します。
- varp
- 遺伝子間の関係データを格納する補助データ。
- backed
- バックドモードの設定。ファイルをディスク上でメモリマップして扱い、大規模データを扱いやすくします。
- h5ad
- .h5ad形式のファイル。AnnDataオブジェクトを保存する標準フォーマットです。
- read_h5ad
- h5adファイルを読み込み、AnnDataオブジェクトを取得する関数です。
- write_h5ad
- AnnDataオブジェクトを h5ad 形式で保存する関数です。
- concatenate
- 複数のAnnDataを結合して1つのオブジェクトにします。軸の指定や結合ルールを選べます。
- obs_names
- obs(細胞)の名前リスト。インデックスとして使われます。
- var_names
- var(遺伝子)の名前リスト。遺伝子名のインデックスです。
- obs_names_make_unique
- obs_names の重複を自動的に解消して一意化します。
- var_names_make_unique
- var_names の重複を自動的に解消して一意化します。
- pandas
- obsとvarは Pandas の DataFrame として扱われ、強力なデータ操作が可能です。
- numpy
- X が NumPy 配列として格納される場合の基本データ型。数値演算の基盤。
- scipy.sparse
- X が疎行列の場合、SciPy の CSR/CSC 形式で格納され、メモリ効率が向上します。
- CSR
- Compressed Sparse Row。行方向の非ゼロ要素を格納する疎行列形式。
- CSC
- Compressed Sparse Column。列方向の非ゼロ要素を格納する疎行列形式。
- dense_matrix
- 全ての要素を密に格納するNumPy配列。非ゼロが多いとメモリを大量に消費します。
- normalize_total
- 各細胞の総発現量を一定値にそろえる正規化処理。
- log1p
- データを対数変換する前処理として、1を足してから自然対数をとる変換。
- scale
- データを平均0・分散1になるように標準化する前処理。
- highly_variable_genes
- 高変動性遺伝子を識別し特徴選択に用いる指標。



















