Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Snowflake上でRを使う: RStudioセットアップとShinyアプリケーションのデプロイ
Search
Tatsuya Koreeda
PRO
March 01, 2024
Science
0
470
Snowflake上でRを使う: RStudioセットアップとShinyアプリケーションのデプロイ
「Snowpark Container Servicesで解き放つ!データアプリケーションの魔法!」で発表した資料になります。
https://techplay.jp/event/934878
Tatsuya Koreeda
PRO
March 01, 2024
Tweet
Share
More Decks by Tatsuya Koreeda
See All by Tatsuya Koreeda
大規模で多様な バイオデータ管理・解析のためのSnowflake データウェアハウス
ktatsuya
PRO
0
40
Snowflakeによる統合バイオインフォマティクス
ktatsuya
PRO
0
520
All-in-One Bioinformatics Platform Realized with Snowflake ~ From In Silico Drug Discovery, Disease Variant Analysis, to Single-Cell RNA-seq
ktatsuya
PRO
0
250
第28回 著者ゼミ:Identification of drug responsible glycogene signature in liver carcinoma from meta-analysis using RNA-seq data
ktatsuya
PRO
2
280
Other Decks in Science
See All in Science
白金鉱業Meetup Vol.16_【初学者向け発表】 数理最適化のはじめの一歩 〜身近な問題で学ぶ最適化の面白さ〜
brainpadpr
9
1.6k
Machine Learning for Materials (Lecture 9)
aronwalsh
0
230
(論文読み)贈り物の交換による地位の競争と社会構造の変化 - 文化人類学への統計物理学的アプローチ -
__ymgc__
1
120
WCS-LA-2024
lcolladotor
0
130
白金鉱業Meetup Vol.15 DMLによる条件付処置効果の推定_sotaroIZUMI_20240919
brainpadpr
2
580
ICRA2024 速報
rpc
3
5.4k
証明支援系LEANに入門しよう
unaoya
0
440
butterfly_effect/butterfly_effect_in-house
florets1
1
110
科学で迫る勝敗の法則(名城大学公開講座.2024年10月) / The principle of victory discovered by science (Open lecture in Meijo Univ. 2024)
konakalab
0
230
機械学習による確率推定とカリブレーション/probabilistic-calibration-on-classification-model
ktgrstsh
2
270
Introduction to Graph Neural Networks
joisino
PRO
4
2.1k
As We May Interact: Challenges and Opportunities for Next-Generation Human-Information Interaction
signer
PRO
0
190
Featured
See All Featured
It's Worth the Effort
3n
183
28k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
For a Future-Friendly Web
brad_frost
175
9.4k
4 Signs Your Business is Dying
shpigford
181
21k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Designing for humans not robots
tammielis
250
25k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
KATA
mclloyd
29
14k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Transcript
Snowflake上でRを使う: RStudioセットアップとShinyアプリケーションのデプロイ 2024.03.01 Tatsuya Koreeda
SPCS上にRStudioセットアップとShinyアプリケーションのデプロイを行う方法を検証した件を 話します。 以前zennで書いたこちらの内容の話がメインになります。 https://zenn.dev/t_koreeda/articles/db9a5265a8b708 <お話しないこと> ・Rを使った具体的な分析・可視化方法 ・統計モデリングや機械学習の話 今日お話すること
なぜRなのか Rはバイオインフォマティクス、エピデミオロジー、統計遺伝学など、バイオ系やヘルスケア業界で広く利用 されています。またアップデートも頻繁に行われております。(昨日、4.3.3がリリースされました)。データサ イエンティスト協会の出している図の中でも、Pythonと並んでRが紹介されています。 モチベーション https://cran.r-project.org/
Python と R それぞれの強み Python の強み ・ AI
システムや Web アプリケーション、IoT 機器・クラウド等 と相性が良い ・機械学習・深層学習モデルが構築しやすい R の強み ・ 統計学の理論に基づいた結果を算出しやすい(例:信頼区 間、p 値など) ・可視化されるグラフがシンプルで美しい(個人的に)
・バイオインフォマティクスに特化した専門的 なライブラリが豊富 ・ggplot2による作画がきれい ・統計解析に強み ・dplyrによるデータフレーム操作が簡便 個人的に感じるRの良いところ James Ding et
al., 2020 Characterisation of CD4+ T-cell subtypes using single cell RNA sequencing and the impact of cell number and sequencing depth
snowflakeでのRの位置づけ ・皆さんご存知の通り、snowflakeはPythonを使う ことがメイン ・DatabricksならSparkRが使えるのに ・そのためこれまでsnowflakeでRを使う方法がな かったが、Snowpark Container
Serviceの登場に より、Rが使える可能性がでてきた。 snowflake社が出しているSPCSの画像でも「R」のマー クがある!
7 実践
・docker imageをローカルからpushしてRstudioをホスト ・Shinyアプリケーションもホストしてみる 今回作成する構成図 Snowpark Container Service ローカル環境 internal
stage (repository)
Rstudio ・Rユーザーが開発するためのIDE。Posit社が管理している。 ・Rをより使いやすく、効率的に扱うための多くの機能を提供
Rstudioをホストする戦略 Rstudio Server Rstudio がLinux上のWebサーバーをベースに動くRstudio。ブラウザからRstudioの利用が可能。今回は Rockerプロジェクトの公開しているimageをベースにSPCS上にホストしていきます。 RockerプロジェクトのDockerコンテナ
• r-ver:Rがインストールされたイメージでバージョンごとにタグが振られている(r-ver:latestのDockerfile) • rstudio:r-verの上にRStudioをインストールしたイメージ(rstudio:latestのDockerfile) • tidyverse:rstudioの上にtidyverseパッケージやdevtoolsパッケージなどをインストールしたイメージ(tidyverse:latestのDockerfile) • verse:tidyverseの上にTinyTeXなどをインストールしたイメージ(verse:latestのDockerfile) • geospatial:verseの上に各種Rパッケージをインストールしたイメージ(geospatial:latestのDockerfile)
Docker Image docker pull kinngut/single-cell:latest で使えます ベースイメージ バイオインフォ向けに拡張させたイメージ
Spec ・containers. volumeMounts コンテナ内の特定のパスにボリュームをマウント する設定です。 ・volumes.source ボリュームのソースとして、Snowflakeのステージ を指定
・volumes.uid, gid ボリュームの所有者のユーザーID, グループID。 ステージ ボリュームにマウントされたファイルにア クセスするために必要
Rstudio Serverの起動 指定されたエンドポイントにアクセスし、snowflakeユーザーで認証すると、Rstudio Serverが起動できます。ggplot2でirisデータも問題 なく可視化できました!
Rパッケージのインストールでエラー cranへの名前解決ができていなさそう…. >外部とのネットワーク通信ができていな い?
ネットワークルールを定義して、 CREATE SERVICE の際に EXTERNAL ACCESS INTEGRATIONを設定することで解 決! ネットワークルール定義 EXTERNAL
ACCESS INTEGRATION
せっかくなのでセットアップしたR環境で解析してみる single-cell RNA sequencing:個々の細胞内の遺伝子発現パターンを研究するために使用される方法です。これにより、細胞集団内の個々の細 胞での遺伝子発現を分析することができます。今回は、COVID-19患者の末梢血細胞群のサンプルを使ったscRNA-seqデータを使って各免疫細胞 をラベリングしてみようと思います。 解析に必要なファイル snowflakeの外部ステージにアップ
ロードして、 SPCS上のRstudioで解 析してみます Stephanie Hicks「Welcome to the World of Single-Cell RNA-Sequencing」
データのアップロード データは250MB以下ならsnowsight上から内部ステージにアップロードできます(それ以上はsnowSQLのPUT経由でいれ る)。予めspecで設定したステージにファイルをアップロードすると、Rstudioのターミナルでボリュームに設定したパスの位 置にファイルが確認できます。 snowsql -a [アカウント名] -u [ユーザー名]
PUT file://[ローカルのファイルパス] @[ステージへのパス];
解析に用いるコード 色々と書いていますが、前処理でクオリティの 低いcellを除いた後にスケーリングさせ、PCAで 次元圧縮させたものをreferenceデータベースを 基に細胞種ラベリングを行い、UMAPで可視化 させています。
結果 無事Rstudio上でUMAPの可視化ができました!
- R言語のためのWebアプリケーションフレームワーク。Pythonでいうstreamlitの ような位置づけです。 - セットアップ: Rの知識があれば、Shinyアプリケーションを比較的簡単に作成でき ますが、Streamlitと比べると若干複雑です。 - コーディング:
UIとサーバーのロジックを分けて書く必要があり、リアクティブプログ ラミングの概念を理解しておく必要があります。 - インタラクティビティ : 高度にインタラクティブなウェブアプリケーションを作成でき、 カスタムUIコンポーネントを作成するオプションもあります。 - カスタマイズ: HTML、CSS、JavaScriptを使用して高度にカスタマイズ可能です。 - デプロイ: Shiny ServerやShinyApps.ioを通じてアプリケーションを公開できます。 shinyアプリケーション
shiny と Streamlitの比較 Shiny (R言語) • 用途: インタラクティブなウェブアプリケーションを作成することができ、特に統計的な分析 やグラフィカルな表示に優れています。
• 特徴: UIとサーバーコンポーネントを定義することでアプリケーションを構築します。Shiny アプリは、反応性が高く、ユーザーの入力に基づいてリアルタイムで結果を更新できます。 Streamlit (Python言語) • 用途: データ分析や機械学習モデルのデモンストレーションに向いており、コードを最小限 に抑えつつ迅速にプロトタイピングすることが可能です。 • 特徴: スクリプトのようにコードを書くだけで、インタラクティブなウェブアプリを簡単に作成 できます。コンポーネントは自動的にUIに変換されます。
shinyアプリケーションのホスト - https://github.com/Kan-E/RNAseqChef/tree/v1.0.0
23 まとめ
Rstudio・ shinyともに Snowpark Container Service で動かすことができま した! 検証結果
- サクッとコンピューティングリソースの変更が可能。CREATE COMPUTEの際に、「INSTANCE_FAMILY」 を変更するだけ - 個人がクラウド解析環境をさっと用意できるところは◎ -
リソースを必要とする分析環境が欲しいときに便利 - snowflake独自のOauth認証を使ってユーザー単位でコンテナにアクセスさせられる - 簡単なアプリをホストしたとき、snowflakeユーザーを払い出すだけでログイン認証が作れる - (Python以外にも)いろんな言語でアプリケーション開発やデータ操作ができるようになった SPCSの気に入っているところ
- 顧客向けのアプリで利用するにはコストがきつい(0.11クレジット/h [CPU_X64_XS]) - snowflakeのエンタープライスエディションの場合、1ヶ月コンテナを動かす場合は > 0.11 × 24(h)× 31(日)×
4.3 ($) = 351.912 ドル > AWS Fargate で同じくらいのスペックを動かすのに、大体121.90ドル - 顧客が利用するアプリケーションでの利用は難しそう - トランザクションを利用するならHybridテーブルとのセットが前提になりそう - アプリケーションのworkerに使うには物足りない?やりようはありそう - サービス関数をコンピュートプールの起動無しでサーバレス課金にしてほしい - Lambda的なユースケースはストアドプロシージャで代用するしかない SPCSの微妙なところ
27 最後に
snowflakeで創薬研究 snowflakeでアカデミックな領域へ挑戦したい…!
Snowflakeで研究活動したい方募集してます!! ・snowflakeを使って研究をしたい方向けのコミュニティを作りたいと思っています(非公式) ・理論系、シミュレーション、インフォマティクス(バイオインフォ、ケモインフォ、マテリアルインフォ)、オミクス 解析(プロテオーム、トランスクリプトーム、メタボローム、エピゲノム)、数理統計学、画像解析など ・(理想)snowflakeを使った共同研究で論文執筆までできたら最高 興味ある方は、これえだのSNSまでリプライ 📤ください!!
X: @cs_dev_engineer Linkedin : https://www.linkedin.com/in/tkoreeda