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
410
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
22
Snowflakeによる統合バイオインフォマティクス
ktatsuya
0
490
All-in-One Bioinformatics Platform Realized with Snowflake ~ From In Silico Drug Discovery, Disease Variant Analysis, to Single-Cell RNA-seq
ktatsuya
0
230
第28回 著者ゼミ:Identification of drug responsible glycogene signature in liver carcinoma from meta-analysis using RNA-seq data
ktatsuya
2
270
Other Decks in Science
See All in Science
Machine Learning for Materials (Lecture 9)
aronwalsh
0
210
小杉考司(専修大学)
kosugitti
2
560
Introduction to Graph Neural Networks
joisino
PRO
4
2k
The Incredible Machine: Developer Productivity and the Impact of AI
tomzimmermann
0
390
ウェーブレットおきもち講座
aikiriao
1
790
はじめてのバックドア基準:あるいは、重回帰分析の偏回帰係数を因果効果の推定値として解釈してよいのか問題
takehikoihayashi
2
710
マテリアルズ・インフォマティクスの先端で起きていること / What's Happening at the Cutting Edge of Materials Informatics
snhryt
1
130
Pericarditis Comic
camkdraws
0
1.1k
Science of Scienceおよび科学計量学に関する研究論文の俯瞰可視化_ポスター版
hayataka88
0
130
はじめての「相関と因果とエビデンス」入門:“動機づけられた推論” に抗うために
takehikoihayashi
17
6.8k
Iniciativas independentes de divulgação científica: o caso do Movimento #CiteMulheresNegras
taisso
0
210
重複排除・高速バックアップ・ランサムウェア対策 三拍子そろったExaGrid × Veeam連携セミナー
climbteam
0
110
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
KATA
mclloyd
29
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
400
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
How GitHub (no longer) Works
holman
310
140k
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