アメリエフの技術ブログ

Amelieff Staff Blog

【シングルセル解析】Seurat で公開データを読み込む方法 3 選

こんにちは、受託コンサルティングチームの hosor です。

先日、1 日に野良猫を 3 匹見ました。


お客様とお話していると「シングルセルの公開データを使って解析をしてみたいけれども、読み込み方法がよく分からない」というコメントをいただくことがあります。

そこで、今回はよく見られるデータ形式と Seurat での読み込み方法を 3 パターンご紹介していこうと思います。

データ変換

作業環境

  • Red Hat Enterprise Linux release 8.8 (Ootpa)
  • R v4.3.2
    • Seurat v5.0.3
    • SeuratDisk v0.0.0.9021

hdf5 ファイル

発現マトリクスのデータを 1 つにまとめたようなデータ形式です*1

○○.h5 というファイル名になります。

データの読み込みには、Read10X_h5 関数を使用します。

h5.data <- Read10X_h5("GSM8073459_PBS_LCMV.filtered_feature_bc_matrix.h5")
seurat.obj <- CreateSeuratObject(counts = h5.data)
seurat.obj
An object of class Seurat 
33991 features across 5243 samples within 1 assay 
Active assay: RNA (33991 features, 0 variable features)
 1 layer present: counts

※ データは GSE255499 を使用しました。

txt, csv, tsv ファイル

以下のように、行名が遺伝子、列名が細胞の発現マトリクスがそのまま表現されたデータ形式です。

cell 1 cell 2 cell 3 ...
gene 1 1 2 14 ...
gene 2 4 27 8 ...
gene 3 0 0 1 ...
... ... ... ... ...

発現マトリクスの中身を具体例に見ることができるという点が、hdf5 ファイルと異なる点になります。

○○.txt, ○○.csv, ○○.tsv いずれかのファイル名であることが多いです*2

以下は一例として csv ファイルを扱います。

データの読み込みには、read.csv 関数を使用します。

csv.data <- read.csv("GSE210963_counts.csv", row.names = 1, header = TRUE)
seurat.obj <- CreateSeuratObject(counts = csv.data)
seurat.obj
An object of class Seurat 
17389 features across 22552 samples within 1 assay 
Active assay: RNA (17389 features, 0 variable features)
 1 layer present: counts

※ データは GSE210963 を使用しました。

h5ad ファイル

Scanpy (Python のシングルセル解析ツール) で使用されるデータ形式です。

○○.h5ad というファイル名になります。

データの読み込みには、SeuratDisk の Convert 関数, LoadH5Seurat 関数を使用します*3

SeuratDisk::Convert(source = "GSE155121_human_data_raw.h5ad", dest = "h5seurat", overwrite = TRUE)
seurat.obj <- SeuratDisk::LoadH5Seurat(file = "GSE155121_human_data_raw.h5seurat")
seurat.obj
An object of class Seurat 
32738 features across 463304 samples within 1 assay 
Active assay: RNA (32738 features, 0 variable features)
 2 layers present: counts, data

※ データは GSE155121 を使用しました。

SeuratDisk は経験的にエラーが表示されることが多く、また h5ad ファイルが特に解析済みのデータの場合はデータを適切に移行できたか慎重に確認する必要があります。

そのため、心配な方は h5ad ファイルの使用を避けた方が無難です。

もし「使いたい公開データがあるが、どうしても読み込み方法が分からない」とお困りの場合は、アメリエフにお声がけください!

補足

こちらの記事が分かりやすかったです。

zenn.dev

*1:一般的に発現マトリクスは、3 つのファイル (barcodes.tsv.gz, features.tsv.gz, matrix.mtx.gz) で表現されます。

*2:メタデータなどが別ファイルに保存されていることもあります。

*3:力業ですが、まず Scanpy で h5ad ファイルを読み込み、必要なデータだけを別ファイルに保存した後に Seurat で読み込むことも可能です。