Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Snowflake上でRを使う: RStudioセットアップとShinyアプリケーションのデプロイ
Search
Tatsuya Koreeda
March 01, 2024
Science
1
940
Snowflake上でRを使う: RStudioセットアップとShinyアプリケーションのデプロイ
「Snowpark Container Servicesで解き放つ!データアプリケーションの魔法!」で発表した資料になります。
https://techplay.jp/event/934878
Tatsuya Koreeda
March 01, 2024
Tweet
Share
More Decks by Tatsuya Koreeda
See All by Tatsuya Koreeda
ライフサイエンス研究を加速する~SPCS JobサービスとGPUコンテナの使い方~
ktatsuya
0
4
Streamlit in Snowflakeをざっくりと復習
ktatsuya
0
330
大規模で多様な バイオデータ管理・解析のためのSnowflake データウェアハウス
ktatsuya
0
180
Snowflakeによる統合バイオインフォマティクス
ktatsuya
0
870
All-in-One Bioinformatics Platform Realized with Snowflake ~ From In Silico Drug Discovery, Disease Variant Analysis, to Single-Cell RNA-seq
ktatsuya
0
440
第28回 著者ゼミ:Identification of drug responsible glycogene signature in liver carcinoma from meta-analysis using RNA-seq data
ktatsuya
2
440
Other Decks in Science
See All in Science
タンパク質間相互作⽤を利⽤した⼈⼯知能による新しい薬剤遺伝⼦-疾患相互作⽤の同定
tagtag
0
130
データベース05: SQL(2/3) 結合質問
trycycle
PRO
0
860
学術講演会中央大学学員会府中支部
tagtag
0
340
蔵本モデルが解き明かす同期と相転移の秘密 〜拍手のリズムはなぜ揃うのか?〜
syotasasaki593876
1
160
(2025) Balade en cyclotomie
mansuy
0
310
データベース04: SQL (1/3) 単純質問 & 集約演算
trycycle
PRO
0
1.1k
次代のデータサイエンティストへ~スキルチェックリスト、タスクリスト更新~
datascientistsociety
PRO
2
21k
Rashomon at the Sound: Reconstructing all possible paleoearthquake histories in the Puget Lowland through topological search
cossatot
0
230
Hakonwa-Quaternion
hiranabe
1
160
力学系から見た現代的な機械学習
hanbao
3
3.7k
データマイニング - ノードの中心性
trycycle
PRO
0
320
PPIのみを用いたAIによる薬剤–遺伝子–疾患 相互作用の同定
tagtag
0
120
Featured
See All Featured
From π to Pie charts
rasagy
0
91
Practical Orchestrator
shlominoach
190
11k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
Embracing the Ebb and Flow
colly
88
4.9k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
How Software Deployment tools have changed in the past 20 years
geshan
0
30k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
230
Un-Boring Meetings
codingconduct
0
160
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
55
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.1k
The Limits of Empathy - UXLibs8
cassininazir
1
190
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
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