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
480
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
260
第28回 著者ゼミ:Identification of drug responsible glycogene signature in liver carcinoma from meta-analysis using RNA-seq data
ktatsuya
PRO
2
290
Other Decks in Science
See All in Science
Introduction to Image Processing: 2.Frequ
hachama
0
250
20分で分かる Human-in-the-Loop 機械学習におけるアノテーションとヒューマンコンピューターインタラクションの真髄
hurutoriya
5
2.5k
WeMeet Group - 採用資料
wemeet
0
3.7k
(論文読み)贈り物の交換による地位の競争と社会構造の変化 - 文化人類学への統計物理学的アプローチ -
__ymgc__
1
130
証明支援系LEANに入門しよう
unaoya
0
460
DEIM2024 チュートリアル ~AWSで生成AIのRAGを使ったチャットボットを作ってみよう~
yamahiro
3
1.4k
3次元点群を利用した植物の葉の自動セグメンテーションについて
kentaitakura
2
590
【健康&筋肉と生産性向上の関連性】 【Google Cloudを企業で運用する際の知識】 をお届け
yasumuusan
0
380
重複排除・高速バックアップ・ランサムウェア対策 三拍子そろったExaGrid × Veeam連携セミナー
climbteam
0
140
大規模言語モデルの開発
chokkan
PRO
84
35k
The thin line between reconstruction, classification, and hallucination in brain decoding
ykamit
1
1k
HAS Dark Site Orientation
astronomyhouston
0
5.4k
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
Music & Morning Musume
bryan
46
6.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
280
The Cost Of JavaScript in 2023
addyosmani
45
7k
Docker and Python
trallard
41
3.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
800
We Have a Design System, Now What?
morganepeng
51
7.3k
A designer walks into a library…
pauljervisheath
204
24k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
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