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
March 01, 2024
Science
0
590
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
大規模で多様な バイオデータ管理・解析のためのSnowflake データウェアハウス
ktatsuya
0
89
Snowflakeによる統合バイオインフォマティクス
ktatsuya
0
640
All-in-One Bioinformatics Platform Realized with Snowflake ~ From In Silico Drug Discovery, Disease Variant Analysis, to Single-Cell RNA-seq
ktatsuya
0
330
第28回 著者ゼミ:Identification of drug responsible glycogene signature in liver carcinoma from meta-analysis using RNA-seq data
ktatsuya
2
370
Other Decks in Science
See All in Science
テンソル分解による糖尿病の組織特異的遺伝子発現の統合解析を用いた関連疾患の予測
tagtag
2
110
Celebrate UTIG: Staff and Student Awards 2024
utig
0
610
テンソル分解を用いた教師なし学習による変数選択法のシングルセルマルチオミックスデータ解析への応用
tagtag
1
130
Tensor Representations in Signal Processing and Machine Learning (Tutorial at APSIPA-ASC 2020)
yokotatsuya
0
150
MoveItを使った産業用ロボット向け動作作成方法の紹介 / Introduction to creating motion for industrial robots using MoveIt
ry0_ka
0
350
Introduction to Image Processing: 2.Frequ
hachama
0
500
非同期コミュニケーションの構造 -チャットツールを用いた組織における情報の流れの設計について-
koisono
0
230
Planted Clique Conjectures are Equivalent
nobushimi
0
130
サメのはなし / How Sharks are born
naospon
0
2.5k
最適化超入門
tkm2261
15
3.8k
小杉考司(専修大学)
kosugitti
2
630
Trend Classification of InSAR Displacement Time Series Using SAE–CNN
satai
3
190
Featured
See All Featured
KATA
mclloyd
29
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
14
1.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Git: the NoSQL Database
bkeepers
PRO
429
65k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Side Projects
sachag
452
42k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
How to train your dragon (web standard)
notwaldorf
91
5.9k
RailsConf 2023
tenderlove
29
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