3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

scanpyのデータ統合関数(sc.tl.ingest)を使ってみる

Last updated at Posted at 2020-04-18

※2021年5月24日追記

東京大学定量生命科学研究所 大規模生命情報解析研究分野の中戸先生の研究室がホームページでscanpyのチュートリアルを和訳されたものを公開されていらっしゃいます。(seuratとvelocityもありました。)
チュートリアルの具体的な中身についてはそちらを参考にされるのが良いと思います。下記にURLを記載します。

scanpyとは

scanpyはscRNA-seqのデータ解析をpythonで行うツールです。Rのseuratを用いる人も多いかもしれませんが、scRNAseqのデータ解析をpythonでやりたいという人もたくさん一定数いるのではないでしょうか。そんな人に答えるツールです。
最近~~(半年ぐらい前に)~~そのscanpyにデータの統合を行うチュートリアルができました。(2020/04/18現在)

Scanpyにデータ統合が実装

上にすでに書いたように、scanpyのバージョン1.4.5からsc.tl.ingestという関数が実装されリファレンスとなるデータに、新しく取ったデータを統合できるようになりました。チュートリアルもすでにあります。(Integrating data using ingest and BBKNN:https://scanpy-tutorials.readthedocs.io/en/latest/integrating-data-using-ingest.html)

すごい!使いたい!

という人もたくさんいると思います。
しかし以下のようにcondaを用いてインストールをしようとすると

.sh
$ conda install -c bioconda scanpy
Collecting package metadata (repodata.json): done

(中略)

The following NEW packages will be INSTALLED:
  scanpy             bioconda/noarch::scanpy-1.4.3-py_0

と表示されてしまいます。このままインストールしてもscanpy-1.4.3がインストールされてしまい、(せっかくチュートリアルまであるのに!)データ統合の関数を使うことができません。

そのうちcondaのbiocondaでもscanpy1.4.5より上のバージョンに更新されると思いますがせっかくなので一足先に使ってみましょう。

scanpyの最新バージョンをpip installする

[注意!]
**condaとpipは混ぜてはいけない!**という主張があります。(混ぜても実は平気だよという主張もあリますが...)以下、自己責任でお願いします。

scanpyのホームページ(https://scanpy.readthedocs.io/en/latest)
をみてみると最新のバージョンは1.4.6のようです。
なのでscanpy-1.4.6をpip installしてみましょう。

.sh
$ pip install scanpy=="1.4.6"
Collecting scanpy==1.4.6

(中略)

Successfully installed anndata-0.7.1 h5py-2.10.0 matplotlib-3.2.1 scanpy-1.4.6

無事にpip installがうまく行きましたね。

バージョンの確認

しかし、安心するのはまだ早いです。
念のため、pythonから本当に1.4.6がinstallされているのか確認してみましょう。

.py
import scanpy as sc
sc.logging.print_versions()
>scanpy==1.4.6 anndata==0.7.1 umap==0.3.10 numpy==1.17.4 scipy==1.4.1  pandas==1.0.3 scikit-learn==0.22 statsmodels==0.10.1 python-igraph==0.7.1 louvain==0.6.1

無事にscanpyのバージョン1.4.6はインストールされているようです。

しかし、統合する関数を実際に使ったときにエラーが出るかもしれません。
チュートリアル(https://scanpy-tutorials.readthedocs.io/en/latest/integrating-data-using-ingest.html)
に沿って進めていきます。

.py
(中略)
sc.tl.ingest(adata, adata_ref, obs='leiden')
>running ingest
    finished (0:00:06)

データの統合関数もうまく働きました!(他にもこの記事では触れていませんがbbknn法を用いて統合することもできます。)

この関数を用いて統合した後、可視化するとreferenceと新しいデータのbatch effectの重なり具合なんかも見れちゃいます。
image.png
引用:https://scanpy-tutorials.readthedocs.io/en/latest/integrating-data-using-ingest.html

最後に

解析をするときにいつも思うのがバイオインフォマティクスというのはどんどんいろいろなツールが出てきて、それらを使うととりあえずそれっぽい結果が出てしまう分野でもあると思います。今回は統合の確からしさというのは検証していませんが、そういうところもしっかり学んでいきたいと思います。
誤りやアドバイスがありましたらご指導いただけると大変助かります。

参考文献

1,Seurat:https://satijalab.org/seurat/
2,Scanpy:https://scanpy-tutorials.readthedocs.io/en/latest/integrating-data-using-ingest.html
3,conda と pip でのパッケージ管理について:https://qiita.com/ynakayama/items/29efebeb38604d10acef

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?