LoginSignup
1
1

More than 3 years have passed since last update.

【Scanpy, scRNA-seq】ScanpyのUMAPに再現性を持たせる

Posted at

起きていた問題

Scanpyで描いたUMAPに再現性がない。
予想としてはPCAの部分で相違が生まれていそう。

環境

こちらのDockerイメージをスパコンのSingularityコンテナとして利用。
バージョン情報:

scanpy==1.7.0 anndata==0.7.5 umap==0.5.1 numpy==1.19.2 scipy==1.5.2 pandas==1.1.3 scikit-learn==0.23.2 statsmodels==0.12.0 python-igraph==0.9.0 louvain==0.7.0 leidenalg==0.8.3, 

解決方法

#1187で議論されているように、環境変数OMP_NUM_THREADSを設定し、BLAS librariesが使用するCPU数を制限することで再現性が確保された。

import os
os.environ['OMP_NUM_THREADS'] = '1'

import numpy as np
import pandas as pd
import scanpy as sc

以下省略

疑問・補足

ローカルのDockerコンテナおよびJupyterLab上では、同様にしても再現性を確保できなかった。
なぜ?

また今回は上記の環境変数OMP_NUM_THREADSのみの指定で再現性が確保されたが、
#313で取り上げられている通り、ハッシュランダム化を無効化する、

os.environ['PYTHONHASHSEED'] = '0'

についても指定しておいたほうが良さそう。

1
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
1
1