anndata とは?初心者のための基本と使い方ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
anndata とは?初心者のための基本と使い方ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢: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:未構造化データと呼ばれる補助データ。カラー設定や解析フラグなど自由に保管します。
obsmobspvarm:座標情報や間接的な補足データの保存場所。
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 の代表的な部品

<th>機能
説明
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
高変動性遺伝子を識別し特徴選択に用いる指標。

学問の人気記事

トルクの単位・とは?初心者向けに徹底解説!なぜ単位が違うのかまで分かる共起語・同意語・対義語も併せて解説!
2059viws
引用・参考文献とは?初心者でもわかる使い方とポイント解説共起語・同意語・対義語も併せて解説!
804viws
ensureとは?初心者にもわかる意味と使い方を徹底解説共起語・同意語・対義語も併せて解説!
696viws
座標計算・とは?初心者向けガイドで完全マスター共起語・同意語・対義語も併せて解説!
674viws
絶縁抵抗値とは?初心者でも分かる測定の基本と安全のコツ共起語・同意語・対義語も併せて解説!
564viws
示差走査熱量測定とは?初心者向けガイドで学ぶ基本と実験のポイント共起語・同意語・対義語も併せて解説!
553viws
no・とは?初心者にもわかる意味と使い方ガイド共起語・同意語・対義語も併せて解説!
546viws
ナイロン樹脂とは?初心者にもわかる基本と用途ガイド共起語・同意語・対義語も併せて解説!
506viws
k型熱電対とは?初心者にも分かる基礎解説と活用事例共起語・同意語・対義語も併せて解説!
482viws
welchのt検定とは?不等分散のデータを比較する統計手法をやさしく解説共起語・同意語・対義語も併せて解説!
457viws
summarize・とは?初心者向け解説と使い方のコツ共起語・同意語・対義語も併せて解説!
436viws
論述問題・とは?初心者にも分かる解説と解き方のコツ共起語・同意語・対義語も併せて解説!
434viws
気圧の単位とは?中学生にもわかるPa・atm・bar・Torrの違いと換算ガイド共起語・同意語・対義語も併せて解説!
425viws
穴加工・とは?初心者が知っておく基本と現場での活用ポイント共起語・同意語・対義語も併せて解説!
412viws
大辞林とは?初心者にもわかる日本語辞典の使い方と特徴共起語・同意語・対義語も併せて解説!
401viws
洗浄バリデーションとは?初心者が押さえる基本と実務のポイント共起語・同意語・対義語も併せて解説!
367viws
3/4・とは?分数の基本を分かりやすく解く完全ガイド共起語・同意語・対義語も併せて解説!
364viws
z変換・とは?初心者が知っておくべき基礎と日常への応用共起語・同意語・対義語も併せて解説!
363viws
100g・とは?初心者が今すぐ知っておきたい基本と使い方共起語・同意語・対義語も併せて解説!
362viws
endnoteとは?研究ノートを整理する基本ツールの解説共起語・同意語・対義語も併せて解説!
360viws

新着記事

学問の関連記事