【シングルセル】RNA Velocity解析のためのvelocytoを用いたloomファイルの作成【scVelo】

【シングルセル】RNA Velocity解析のためのvelocytoを用いたloomファイルの作成【scVelo】

前回の記事で、scVeloを用いたRNA Velocity解析の基本を学びました。しかしながら、NCBI SRAなどの公共データベースのfastqファイルからどのようにRNA Velocity解析をやるのかイメージがつきづらいかと思います。この記事では、cellrangerから出力されたBAMファイルをvelocytoに読み込ませてloomファイルを作成して、RNA Velocity解析するためのファイルを準備する方法を学びます。

これによって好きな公共のシングルセルデータを使ってRNA Velocity解析ができるようになります。ぜひ学んでいきましょう。

Tested Environment

macOS Monterey (12.4), Quad-Core Intel Core i7, Memory 32GB, scvelo 0.3.3

Velocytoとloomファイルについて


Velocyto

VelocytoはscVeloと同じくシングルセルRNAシーケンスデータからRNA Velocityを推定するためのツールです。RNA Velocityを行えるツールとして最初登場しましたが、近年は後続のscVeloで解析するのが主流となっています。

https://github.com/velocyto-team

しかし、だからといってVelocytoを使わなくてよいわけではありません。scVeloを使うにはloomファイルが必要になります。

loomファイル

loomファイルは、scVeloやVelocytoでRNA Velocity解析に必要な情報を効率的に格納するために設計されています。

具体的には、以下の情報が含まれています。

  • 遺伝子発現量: 各細胞における各遺伝子の発現量
  • スプライシング情報: 各遺伝子について、スプライシングされていないRNAとスプライシングされたRNAのリードカウント
  • 細胞情報: 各細胞のメタデータ(細胞種、クラスタ、実験条件など)
  • 遺伝子情報: 各遺伝子のメタデータ(遺伝子名、遺伝子IDなど)

loomファイルは、HDF5と呼ばれる階層的なデータ形式に基づいており、大規模なデータを効率的に保存・読み込みすることができます。また、メタデータを豊富に含めることができるため、データの解釈や解析に役立ちます。

BAMファイルからのVelocity解析のワークフロー


fastqファイルからRNA Velocity解析を行える状態にするまでいくつかワークフローを動かす必要があります。10X genomics 社がそのワークフローの図を公開してくれています。

https://www.10xgenomics.com/jp/analysis-guides/trajectory-analysis-using-10x-Genomics-single-cell-gene-expression-data

より引用

大まかな流れを言うと、FASTQファイルをcellrangerで処理した後にmatrixファイルを得た後、velocyteによってloomファイルを得ます。

こちらはloomファイルを得るときに必要なvelocytoのコマンド例です。

repeats="/path/to/repeats/mm10_rmsk.gtf"
transcriptome="/path/to/annoation/file/gencode.vM25.annotation.gtf"
cellranger_output="/path/to/cellranger/output/"

velocyto run10x -m $repeats \\
                $cellranger_output \\
                $transcriptome

こちらをみると、repeats, transcriptome, cellranger_outputの3つが必要なことがわかります。

repeats: リピート配列の注釈ファイル。

transcriptome: 遺伝子アノテーションファイル。遺伝子アノテーションファイルには、遺伝子の位置、エクソン、イントロンなどの情報が含まれています。

cellranger_output : Cell Rangerの出力ディレクトリ。Cell Rangerは、10x Genomicsが提供するシングルセルRNAシーケンスデータの解析パイプラインです。このディレクトリには、ゲノムにマッピングされたリード情報を含むBAMファイルが含まれています。

リピート配列の取得

リピート配列は、ゲノム中に繰り返し出現する配列で、RNA Velocityの計算に影響を与える可能性があるため、マスクする必要があります(必須ではありません)。UCSCゲノムブラウザからGTFとしてダウンロードしてくる必要があります。

こちらのvelocytoのハンズオンからUCSCゲノムブラウザに入れます。画像赤枠をクリックしてください。

https://velocyto.org/velocyto.py/tutorial/cli.html#preparation

アクセスが完了したら、

  • Genomeを「Human」
  • Output formatを「GTF ~~」
  • Output filenameを「human_rmsk.gtf」

として「Get output」として保存してください。

これでリピート配列が取得できました。

遺伝子アノテーションファイルの取得

遺伝子アノテーションファイルは GENCODE または Ensemblからダウンロードしてくるのが基本となります。今回は下記コマンドで取得してください。

wget <https://cf.10xgenomics.com/supp/cell-exp/refdata-gex-GRCh38-2020-A.tar.gz>
tar -zxvf refdata-gex-GRCh38-2020-A.tar.gz

サンプルfastqファイルの取得

今回は10X Gemomics社が用意したサンプルファイルを使います。ご自身で公共データベースからダウンロードしてきたものを使ってもらっても構いません。(その場合、レファレンス配列はHumanでやってることに気をつけてください)

wget <https://cf.10xgenomics.com/samples/cell-exp/3.0.0/pbmc_1k_v3/pbmc_1k_v3_fastqs.tar>
tar -xvf pbmc_1k_v3_fastqs.tar

velocytoを用いたloomファイルの作成手順


cellrangerでBAMファイルを得る

まずはcellrangerでBAMファイルを得ていきます。

cellranger count \\
  --id=run_count_1kpbmcs \\
  --fastqs=pbmc_1k_v3_fastqs \\
  --sample=pbmc_1k_v3 \\
  --transcriptome=refdata-gex-GRCh38-2020-A \\
  --create-bam true

Cellrangerの使い方はこちらの記事で詳しく解説しておりますので、こちらでの詳細な解説は割愛します。

レファレンス配列は下記コマンドでダウンロードしてます。

curl -O <https://cf.10xgenomics.com/supp/cell-exp/refdata-gex-GRCh38-2020-A.tar.gz>

解凍を忘れずに行ってください。

tar -xzvf refdata-gex-GRCh38-2020-A.tar.gz

CellrangerのこちらのDocker imageでやりました。

https://hub.docker.com/r/litd/docker-cellranger

BAMファイルができていることを確認しました。

loomファイルの作成

それではvelocyto使ってloomファイルを作っていきます。

まずはvelocytoのインストールしていきます。用いたCell RangerのDocker imageがCentOSだったため、いくつかライブラリを追加でインストールしました。また開発版のvelocytoをインストールしました。pip install velocyto をしてみてもし入らなかった場合に、以下の手順を参考にしてインストールしてみてください。

pip install numpy Cython
git clone <https://github.com/velocyto-team/velocyto.py.git>
cd velocyto.py
yum install gcc
yum install python3-devel

その後、velocyto run10x コマンドを使ってloomファイルを作成して完了です。

velocyto run10x \
  -m human_rmsk.gtf \
  run_count_1kpbmcs/outs \
  refdata-gex-GRCh38-2020-A/genes/genes.gtf

最後に


いかがだったでしょうか。Trajectory解析はそこまで解析方法は難しくないですが、解釈にいくつか難しさが存在するかもしれません。じっくりと各手法の意味を理解することが重要です。今後もしっかり学んでいきましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です