SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
RとSQLiteによるオミックス解析の促進


     東京理科大学 薬学研究科
    薬科学専攻 博士後期課程1年

        露崎 弘毅
read.tableの限界


 4.39GB
            read.table


webから取得した
シロイヌナズナの
遺伝子発現データ




                         堅気の人はまず見る事が無いエラーメッセージ
                                             2
3
!!注意!!
・“ビッグデータ”の話しではありません
 (そういうのは、Hadoop、NOSQL等で)

・あくまでR(とRのパッケージ)を最後まで使いたい人
・データが数GB程度で、もうちょっとRで頑張りたい人
・スパコン使わずにローカルPCでなんとかしたい人

を想定

・ff、bigmemoryの利用など別のアプローチもある


                               4
RとSQLiteの組み合わせ
GBレベルのデータ




            read.table




                         5
RとSQLiteの組み合わせ
GBレベルのデータ
              一度SQLiteに
                格納



                          Input / Output




  こうすればまだまだ頑張れるはず!?
                                      6
SQLiteとの併用のメリット

・元々ある程度大きいデータを扱う事を想定している言語

・インデックス、トランザクション、型指定等、高速化のため
の技術が豊富

・SQL言語(RDBMS)はデータの検索、集計等大雑把な操作
に適している
・Rは検定、可視化等、データの詳細な解析に適している
・共にテーブル形式のデータを想定している

→ RDBMSとRは相性が良い

                                 7
なぜSQLite?
                           楽だから
 MySQL, PostgreSQL, Oracle …                    SQLite
         (イメージ)                               (イメージ)

                                    .sqlite
        サーバvsクライアント
                               サーバvsクライアントという概念が無い
        管理者
                                  自分しか使わない
   DB     DB    DB                他人が途中アクセスしてくるという事
                                  がそもそも無い
                                  .sqliteというデータベースファイルが1
root権限、パスワード設定、起動、                個できるだけ
停止、再起動、Anonymousユーザ-、             いらなくなったら削除すればおしまい
セキュリティ、ロック、バックアップ…

        ローカルで自分だけが使う場合、SQLiteで十分                         8
実際に内部でSQLiteを
        利用しているパッケージ
            DESCRIPTION

GO.db
               NAMESPACE



           R               zzz.R



           man             ~.Rd


           extdata         GO.sqlite

                                       9
実際に内部でSQLiteを
              利用しているパッケージ
Macの場合
ls /Library/Frameworks/R.framework/Resources/library/*/extdata/*.sqlite


DECIPHER/extdata/Bacteria_175seqs.sqlite
DO.db/extdata/DO.sqlite
GO.db/extdata/GO.sqlite
GenomicFeatures/extdata/Biomart_Ensembl_sample.sqlite
IlluminaHumanMethylation450k.db/extdata/IlluminaHumanMethylation450k.sqlite
KEGG.db/extdata/KEGG.sqlite
…

(.sqliteは23個、.sqlは1個、.dbは2個)

    アノテーションパッケージを中心に、大きいデータを提供
    するパッケージでは、内部的にSQLiteを利用している
    (ユーザーは気づかないが)                                                         10
1. SQLiteの基礎




               1. SQLiteの基礎 / 11
SQLiteの起動、終了、DB作成
        /* 起動 */
        sqlite3

        /* 終了 */
        .exit




                   1. SQLiteの基礎 / 12
SQLiteの起動、終了、DB作成
               /* 起動 */
               sqlite3

               /* 終了 */
               .exit

               /* DBファイルを作成 */
               sqlite3 test.sqlite




                       カレントディレクトリに
                       ファイルができる




                          test.sqlite
                                        1. SQLiteの基礎 / 13
 test.sqlite
テーブル作成
gene_name      control    treatment   /* テーブル作成 */
                                      CREATE TABLE RNASEQ (
             RNASEQ                   gene_name VARCHAR(50),
                                      control NUMERIC,
                                      treatment NUMERIC
                                      );



                                        *SQLiteは値の型を指定しなくても動い
                                        てしまうが、指定したほうが良い




                                                               1. SQLiteの基礎 / 14
            test.sqlite
データ追加
gene_name      control    treatment   /* データ追加 */
                                      INSERT INTO RNASEQ VALUES(“gene1”, 0, 0)
  gene1           0          0
                                      INSERT INTO RNASEQ VALUES(“gene2”, 12, 25)
  gene2          12          25       INSERT INTO RNASEQ VALUES(“gene3”, 100, 203)
  gene3         100         203       INSERT INTO RNASEQ VALUES(“gene4”, 0, 0)
                                      INSERT INTO RNASEQ VALUES(“gene5”, 230, 13)
  gene4           0          0
  gene5         230          13
             RNASEQ




                                                                 1. SQLiteの基礎 / 15
            test.sqlite
データの更新
gene_name      control    treatment   /* データ更新 */
                                      UPDATE RNASEQ SET control = 10
  gene1           0          0
                                      WHERE gene_name == “gene4”;
  gene2          12          25
  gene3         100         203
  gene4          10          0
  gene5         230          13
             RNASEQ




                                                            1. SQLiteの基礎 / 16
            test.sqlite
削除に関して
gene_name      control    treatment   /* 行に対して */
                                      DELETE FROM RNASEQ
  gene1           0          0        WHERE gene_name == “gene1”;
  gene2          12          25
  gene3         100         203
  gene4          10          0
  gene5         230          13
             RNASEQ




                                                               1. SQLiteの基礎 / 17
            test.sqlite
削除に関して
gene_name      control    treatment   /* 行に対して */
                                      DELETE FROM RNASEQ
  gene2          12          25       WHERE gene_name == “gene1”;
  gene3         100         203
  gene4          10          0        /* 列に対して */
                                      CREATE TABLE TMP(
  gene5         230          13       gene_name VARCHAR(50),
                                      treatment
                                      );
             RNASEQ
                                      INSERT INTO TMP SELECT gene_name,
                                      treatment FROM RNASEQ;
                                      DROP TABLE RNASEQ;
                                      ALTER TABLE TMP RENAME TO RNASEQ;




                                                               1. SQLiteの基礎 / 18
            test.sqlite
削除に関して
gene_name   treatment   /* 行に対して */
                        DELETE FROM RNASEQ
        RNASEQ          WHERE gene_name == “gene1”;

                        /* 列に対して */
                        CREATE TABLE TMP(
                        gene_name VARCHAR(50),
                        treatment
                        );
                        INSERT INTO TMP SELECT gene_name,
                        treatment FROM RNASEQ;
                        DROP TABLE RNASEQ;
                        ALTER TABLE TMP RENAME TO RNASEQ;

                        /* 全データに対して */
                        DELETE FROM RNASEQ;


                                                 1. SQLiteの基礎 / 19
      test.sqlite
削除に関して
                /* 行に対して */
                DELETE FROM RNASEQ
                WHERE gene_name == “gene1”;

                /* 列に対して */
                CREATE TABLE TMP(
                gene_name VARCHAR(50),
                treatment
                );
                INSERT INTO TMP SELECT gene_name,
                treatment FROM RNASEQ;
                DROP TABLE RNASEQ;
                ALTER TABLE TMP RENAME TO RNASEQ;

                /* 全データに対して */
                DELETE FROM RNASEQ;

                /* テーブルに対して */
test.sqlite     DROP TABLE RNASEQ;       1. SQLiteの基礎 / 20
削除に関して
  /* データベースに対して */
  test.sqliteを削除すればいいだけ
  (rm test.sqliteなり、右クリック→ゴミ箱なり)




                      1. SQLiteの基礎 / 21
SELECT
gene_name      control    treatment   /* テーブルのデータ全て */
                                      SELECT * FROM RNASEQ;
  gene1           0          0
  gene2          12          25
  gene3         100         203
                                         * : 全てという意味(ワイルドカード)
  gene4          10          0
  gene5         230          13
             RNASEQ
                                                < SELECT文の基本 >
                                      SELECT 列名 FROM テーブル名 WHERE 条件式;




                                                              1. SQLiteの基礎 / 22
            test.sqlite
SELECT
gene_name      control    treatment   /* テーブルのデータ全て */
                                      SELECT * FROM RNASEQ;
  gene1           0          0
  gene2          12          25       /* gene3, gene4の行のみ */
  gene3         100         203       SELECT * FROM RNASEQ WHERE
                                      gene_name == “gene3”
  gene4          10          0        OR gene_name == “gene4”;
  gene5         230          13
             RNASEQ




                                                              1. SQLiteの基礎 / 23
            test.sqlite
SELECT
gene_name      control    treatment   /* テーブルのデータ全て */
                                      SELECT * FROM RNASEQ;
  gene1           0          0
  gene2          12          25       /* gene3, gene4の行のみ */
  gene3         100         203       SELECT * FROM RNASEQ WHERE
                                      gene_name == “gene3”
  gene4          10          0        OR gene_name == “gene4”;
  gene5         230          13
                                      /* controlもtreatmentも0では無い行を取り出
             RNASEQ
                                      す */
                                      SELECT * FROM RNASEQ WHERE control != 0
                                      AND treatment != 0;




                                                               1. SQLiteの基礎 / 24
            test.sqlite
SELECT
gene_name      control    treatment   /* テーブルのデータ全て */
                                      SELECT * FROM RNASEQ;
  gene1           0          0
  gene2          12          25       /* gene3, gene4の行のみ */
  gene3         100         203       SELECT * FROM RNASEQ WHERE
                                      gene_name == “gene3”
  gene4          10          0        OR gene_name == “gene4”;
  gene5         230          13
                                      /* controlもtreatmentも0では無い行を取り出
             RNASEQ
                                      す */
                                      SELECT * FROM RNASEQ WHERE control != 0
                                      AND treatment != 0;

                                      /* controlもtreatmentも0では無い行の
                                      gene_nameを取り出す */
                                      SELECT gene_name FROM RNASEQ WHERE
                                      control != 0 AND treatment != 0;

                                                               1. SQLiteの基礎 / 25
            test.sqlite
SELECT (結合、JOIN)
gene_name         control      treatment   /* ある転写因子TF1の結合箇所 */
                                           CREATE TABLE TF1BIND (
  gene1             0              0       gene_name VARCHAR(50),
  gene2             12             25      TF1 NUMERIC
  gene3            100             203     );
                                           INSERT INTO TF1BIND VALUES(“gene1”, 104);
  gene4             10             0       INSERT INTO TF1BIND VALUES(“gene2”, -12;
  gene5            230             13
                                           /* 2テーブルに跨った検索 */
              RNASEQ
                                           SELECT A.gene_name, A.control, A.treatment,
                                           B.TF1
                                           FROM RNASEQ AS A, TF1BIND AS B
     gene_name                             WHERE A.gene_name == B.gene_name;
                            TF1
          gene1             +104             gene_name     control treatment        TF1
          gene5             -12                gene1         0         0           +104
              TF1BIND                          gene5        230        13           -12
                                                                      1. SQLiteの基礎 / 26
             test.sqlite
余談:双方向ベストヒット
                                           A2B                     B2A
                                      Agenes Bgenes         Bgenes Agenes
    オーソログ収集をしたい                       geneA geneD            geneG geneO
    (パラログを除外したい)                      geneV geneU            geneR geneR
                                      geneX geneX            geneY geneX
      geneX                    生物種A   geneS   geneL          geneT geneF
                                      geneD geneY            geneX geneX
   BBH     BBH                        geneE geneH            geneD geneA

      geneX          geneY     生物種B               geneX geneX
BBH:BLAST BEST HIT
                                  SELECT A2B.Agenes, A2B.Bgenes FROM A2B, B2A
                                  WHERE A2B.Agenes == B2A.Agenes
                                  AND A2B.Bgenes == B2A.Bgenes;
Reciprocal Blast best hitの抽出                                  1. SQLiteの基礎 / 27
                                 JOINはなにかと便利
補足:スキーマ
                テーブルをどのように分割するか、
                  どのキー同士で参照するか、
                 どこにインデックスを貼るか…等
                  データベース全体のデザイン


        テーブル2
                         今回はI/Oが早くなればそれでいいので、
                 テーブル3
                           特にスキーマとか深く考えない
テーブル1




                                      1. SQLiteの基礎 / 28
補足:スキーマ
     ゲノムデータベースEnsemblのスキーマ




http://www.gramene.org/info/docs/api/funcgen/tri
mmed_funcgen_schema.png
                                                   1. SQLiteの基礎 / 29
補足:スキーマ
          cummeRbundパッケージのスキーマ




                                                    1. SQLiteの基礎 / 30
http://compbio.mit.edu/cummeRbund/manual_2_0.html
2. RSQLiteの利用




                2. RSQLiteの利用 / 31
RSQLite
        RでSQLiteを操作できるパッケージ
    Rでコマンドを叩いても、実際は裏でSQLが走る
SQLがデータをとってきても、返ってくるのはRオブジェクト


                SQL文
        例: SELECT * FROM pubmed;

                                   .sqlite


               Rオブジェクト
              (データフレーム)

DBI(データベースインターフェース)という
他の言語でも実装されている
 例: PerlのDBD::Pg、JavaのJDBI、Rubyのruby-dbi、PHP …
                                             2. RSQLiteの利用 / 32
データを取得する
言わずもがなの文献データベース
                                                    雑誌毎にフォルダ分けされており、
XML形式で文献データを提供                                      中身は月毎にファイルを分けている
(http://www.ncbi.nlm.nih.gov/pmc/tools/ftp/)              (XML)




                                         解凍
                      ダウンロード          (34.1GB!!!)




                                                            2. RSQLiteの利用 / 33
XML→TXT
library(XML)
d <- xmlToList(“XMLファイル名”)                                      みたいなのを毎回走らせる
A <- d$front$’journal-meta’$’journal-id’$text                   のは面倒だから、
B <- d$front$’article-meta’$’pub-date’$year                     実際はシェルスクリプトで
C <- d$front$’article-meta’$’title-group’$’article-title’
D <- d$front$’article-meta’$’abstract$p
E <- paste(“PMC”,d$front$’article-meta’$’article-id’$text,sep=“”)
F <-paste(“http://www.ncbi.nlm.nih.gov/pmc/articles/”,E,”/pdf/”,sep=“”)
…
result <- c(A,B,C,D,E,F)
sink(file=“pubmed.txt”,append=T)
cat(result)
sink()
                    このようなtab区切りテーブルpubmed.txtができる
   雑誌名      年代     タイトル アブスト (???GB)
                                PMCID      URL
   Nature   2012   hoge    Hoge is...   PMC2751374   http://www.ncbi.nlm.......


                                                                2. RSQLiteの利用 / 34
279102行×6列             pubmed.txt
pubmed.txt




467.1MB



    read.table
    (“pubmed.txt”)




                     この程度でもR単独ではかなりきつい   2. RSQLiteの利用 / 35
SQLiteにTXTをインポート
 pubmed.txt        > sqlite3 pubmed.sqlite
                   sqlite> DROP TABLE IF EXISTS pubmed.sqlite;
                   sqlite> CREATE TABLE pubmed (
                           journal_name VARCHAR(30),
  467.1MB
                           year INTEGER,
                           title VARCHAR(300),
                           abst VARCHAR(5000),
                           pmcid CHAR(10),
                           url VARCHAR(100)
                           );
pubmed.sqlite      sqlite> .separator ¥t
                   sqlite> .import pubmed.txt pubmed
  完成!!!
                   sqlite> .exit


                                                        2. RSQLiteの利用 / 36
pubmed.sqliteにRで接続
                       # R起動
                       >R
pubmed.sqlite

                       # パッケージロード
                       > library(“RSQLite”)
         dbConnect()   > library(“DBI”)


                       # コネクション
                       > driver <- dbDriver(“SQLite”)
                       > db <- “pubmed.sqlite”
                       > con <- dbConnect(driver, db)

                                                        2. RSQLiteの利用 / 37
検索してみる
                        dbGetQuery(
                        con,

pubmed.sqlite           "SELECT title FROM pubmed WHERE abst like '%RNA-Seq%';")




         dbGetQuery()

                        Microarrays, deep sequencing and the true…
                        Maintaining RNA integrity in a …
                        Microarrays and RNA-Seq identify molecular mechanisms…




                                                                 2. RSQLiteの利用 / 38
検索中 …
(検索も数秒)




          2. RSQLiteの利用 / 39
集計してみる
                   dbGetQuery(
                   con,
pubmed.sqlite      "SELECT COUNT(*) FROM pubmed WHERE abst like '%RNA-Seq%';")




         dbGetQuery()



                                 アブストにRNA-Seqと書かれた論文は167件!




                                                              2. RSQLiteの利用 / 40
可視化
paper <- rep(0:0,length=85)
for(i in 1928:2012){
command <- paste("SELECT COUNT(*) FROM pubmed WHERE abst like '%RNA-Seq%'
AND year = ",i,";",sep="")
prepaper <- dbGetQuery(con,command)
if(as.numeric(prepaper)!=0){
  paper[i-1928] <- as.numeric(prepaper)
}
}
jpeg(file="paper.jpeg")
plot(1928:2012,paper,"l",ylab="Frequency",xlab="Year")
dev.off()




論文の本数が2000年後半あたり
                                                            2. RSQLiteの利用 / 41
にいきなり急増している!
可視化




“RNA-Seq”,“microarray”,“RT-PCR”,“Western blot”,“two-
hybrid”,“GFP”の6実験手法のアブスト内での出現頻度(ノードの大きさ)
と、共起頻度(エッジの太さ)をCytoscapeで可視化

                                               2. RSQLiteの利用 / 42
pdf根こそぎダウンロード
# キーワード
> keyword <- "RNA-Seq"

# 自前で作ったダウンロード関数
> pubmed.download(keyword)




 RNA-Seqというキーワー
 ドがアブストにある文献
 を一度にダウンロード




                             RNA-Seqフォルダ

                                      2. RSQLiteの利用 / 43
3. MeSHパッケージの紹介




            3. MeSHパッケージの紹介 / 44
遺伝子アノテーションとは
            アノテーション = 注釈をつける


                                  どんな転写因子結合
                        HNRNPR
                                  サイトをもつか
                        ZNF436
RNA-Seq
                        TCEA3
Chip-Seq
                        ASAP3
DNA Microarray
                        E2F2
SNP-array
                        ID3
CAGE
                        GALE
SAGE                               どこのパスウェイか
                        HMGCL
…
                        FUCA1
ゲノムワイドな実験               CNR2
(数万遺伝子)                 …

                      遺伝子リスト        どんな機能に関
                      (数百遺伝子?)      わっているか
                                 3. MeSHパッケージの紹介 / 45
MeSH(Medical Subject Headings)
        論文にあてがわれた注釈情報




                        3. MeSHパッケージの紹介 / 46
MeSH(Medical Subject Headings)
       Gene Ontology(GO)よりも
        ボキャブラリーが多い




    Nakazato et al. (2008)   3. MeSHパッケージの紹介 / 47
MeSH(Medical Subject Headings)

             GOよりも階層が幅広い


         BP: Biological Process
GO       CC: Cellular Component
         MF: Molecular Function




                                  3階層

                                    3. MeSHパッケージの紹介 / 48
MeSH(Medical Subject Headings)
       A : Anatomy
       B : Organisms
       C : Diseases
       D : Chemicals and Drugs
       E : Analytical, Diagnostic and Therapeutic Techniques and Equipment
       F : Psychiatry and Psychology
       G : Phenomena and Processes
       H : Disciplines and Occupations
MeSH   I : Anthropology, Education, Sociology and Social Phenomena
       J : Technology and Food and Beverages
       K : Humanities
       L : Information Science
       M : Persons
       N : Health Care                           16階層
       V : Publication Type
       Z : Geographical Locations
                                                     3. MeSHパッケージの紹介 / 49
MeSH(Medical Subject Headings)
         GOよりも階層が浅い
GO(BP)
                       上位(有意になりづらい)




                       下位(有意になりやすい)

                        3. MeSHパッケージの紹介 / 50
MeSH(Medical Subject Headings)
MeSH(A)




             浅く広い階層

                        3. MeSHパッケージの紹介 / 51
GOよりも好ましい性質を多くもつ

→MeSHを遺伝子アノテーションに利用



              3. MeSHパッケージの紹介 / 52
Nature Medicine
  18, 766-773 (2012)

3. MeSHパッケージの紹介 / 53
既存のMeSH⇔GeneIDの対応
                pubmed2mesh              gene2pubmed

         MeSH                 Pubmed                   Gene ID


          http://gendoo.dbcls.jp/



           http://gene2mesh.ncibi.org/



           http://cbrc.musc.edu/homepage/jani/genemesh/index.html


これらは全てWebアプリケーション→ Rでも使えるようにしたい
                                            3. MeSHパッケージの紹介 / 54
BioCHackathon 2012
                                                           仲里猛 : DBCLS
                                                           @chalkless
                                                           Gendooを開発(2008)

二階堂愛: RIKEN CDB
@dritoshi
担当:gendoo.Hs.db
( https://github.com/dritoshi/gendoo.Hs.db)


                                              師田郷太: UW-Madison
                                              @chikudaisei
                                              担当:meshr
                                              (https://github.com/morota/meshr)
露崎弘毅 : Tokyo University of Science
@antiplastics                                        目的
担当:MeSH.db                                    MeSHをRで使えるようにする
(https://github.com/kokitsuyuzaki/MeSH.db)
                                                             3. MeSHパッケージの紹介 / 55
MeSHパッケージ群の使い方
               MeSH.db                gendoo.Hs.db
          (MeSHのデータ本体)          (Gene IDとMeSH IDの対応)


                                呼び出し
                            meshr
                         (検定パッケージ)

なんらかの遺伝子
  に対するID                             Gene ID , MeSH Term, Fisher’s p-value
                 Gene ID
 (gene synbol)
HNRNPR           10236                    10236    Cancer 0.0467
                           エンリッチメント
ZNF436           80818                    80818    Cell division 0.031
                              解析
TCEA3            6920                     6920    Leukocyte 0.643
ID3              55616                    55616    Nervous systems 0.943
…                …                        …

                                                  3. MeSHパッケージの紹介 / 56
MeSHパッケージ群の使い方
        cummeRbundパッケージ内のテストデータ

iPS細胞                                    ES細胞




         geneid : 全遺伝子(n=314)
         sig.geneid : 発現変動遺伝子(n=104)

         とする



                                       3. MeSHパッケージの紹介 / 58
MeSHパッケージ群の使い方
          GOによる遺伝子アノテーション                            MeSHによる遺伝子アノテーション
# ライブラリロード                                     # ライブラリロード
library(“GO.db”)                               library(“MeSH.db”)
library(“hgu95av2.db”)                         library(“gendoo.Hs.db”)
library(“Gostats”)                             library(“meshr”)

# パラメーター設定                                     # パラメーター設定
paraBP <- new(“GOHyperGParams”,                paraA <- new(“MeSHHyperGparams”,
geneIds=sig.geneid[,2],                        geneIds=sig.geneid[,2],
universeGeneIds=geneid[,2],annotation=“hgu     universeGeneIds=geneid[,2],annotation=“Gen
95av2.db”, ontology=”BP”, pvalueCutoff=0.05,   dooMeSHA”, pvalueCutoff=0.05,
conditional=F, testDirection=“over”)           pAdjust=“none”)

# エンリッチメント解析                                   # エンリッチメント解析
BP <- hyperGTest(paraBP)                       A <- meshHyperGTest(paraA)

# 結果集計                                         # 結果集計
summary(BP)                                    summary(A)
                                                                   3. MeSHパッケージの紹介 / 59
MeSHパッケージ群の使い方
                          GOを利用したエンリッチメント解析
           BP (144件)                    MF (6件)                     CC (5件)
cell differentiation          structural molecule activity    cell junction
cell development              protein binding                 plasma membrane
cellular developmental        binding                         cell periphery
process                       kinase activity                 cytosolic part
regulation of multicellular   transferase activity,           synapse
organismal development        transferring phosphorus-
cell morphogenesis involved   containing groups
in differentiation            phosphotransferase activity,
chemotaxis                    alcohol group as acceptor
taxis
cellular component
organization
…


                                                             3. MeSHパッケージの紹介 / 60
MeSHパッケージ群の使い方
                               MeSHを利用したエンリッチメント解析
     A : Anatomy     B : Organisms
         (5件)                             C : Diseases D : Chemicals
                         (10件)                                            G : Phenomena and
                                              (7件)     and Drugs (13件)
Cilia                                                                      Processes (13件)
             Cercopithecus aethiops
Chromosomes, Human, Pair 20 Transformation, Neoplastic
             Cricetinae
                              Cell              Amino Acid Sequence
                              Alzheimer Disease Division Amino Acid Sequence
Chromosomes, Human, 21-22 and Y                Cell
             Adenoviridae Breast Neoplasms                  Cell Division
Chromosomes, Human, Pair 22
             Drosophila                        Brain Chemistry
Central Nervous System        Carcinoma, Non-Small-Cell Lung Chemistry
                                                            Brain
                                               Binding, Competitive Competitive
             Chimera          Carcinoma, Renal Cell         Binding,
             Cricetulus                        Chromosomes, Human, Pair 20
                              Astrocytoma Cell Survival Chromosomes, Human, Pair 20
             Cattle           Cleft Palate                  Cell Survival
             Chickens                          Chromosomes, Human, 21-22 and Y 21-22 and Y
                                                            Chromosomes, Human,
             Saccharomyces cerevisiae          Chemotaxis Chemotaxis
             Haplorhini                        Cell Membrane Permeability Permeability
                                                            Cell Membrane
                                               Cell Cycle   Cell Cycle
                                               Chromosomes, Human, Pair 22
                                                            Chromosomes, Human, Pair 22
                                               Autophagy Autophagy
                                               Algorithms Algorithms
                                                                    3. MeSHパッケージの紹介 / 61
• 使い心地
 – GOと似たようなものがヒットする
 – A(Anatomy)はCC、D(Chemicals and Drugs)はMF、
 G(Phenomena and Processes)はBPと少し似ている?
 – B(Organisms), C(Diseases),Aの臓器等、GOでは見れ
   ないタームがあり、そこに強みがあると思われる
 – 1階層あたりのターム数はGOの方が多い
   (MeSHの方が広く浅いから)

• 展望
 – 他の階層への拡張
 – 他の生物種への拡張
   (マイナーな生物種への対応も)

                                 3. MeSHパッケージの紹介 / 62
第7回 Kashiwa.R バイオ実験系ラボ支援回




              +
日時:2013 / 3 / 19 15:00~18:00
場所:東京理科大学野田キャンパス
   薬学部校舎(14号館) 1411教室
                               63

Contenu connexe

Tendances

MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形yoku0825
 
設計をする上で役にたった制約について
設計をする上で役にたった制約について設計をする上で役にたった制約について
設計をする上で役にたった制約についてIkki Takahashi
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationNoriyoshi Shinoda
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~HommasSlide
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやyoku0825
 
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKAマイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKAMurata Tatsuhiro
 
より深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングより深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングYuto Hayamizu
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSNoriyoshi Shinoda
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)Satoshi Yamada
 
Granger因果による 時系列データの因果推定(因果フェス2015)
Granger因果による時系列データの因果推定(因果フェス2015)Granger因果による時系列データの因果推定(因果フェス2015)
Granger因果による 時系列データの因果推定(因果フェス2015)Takashi J OZAKI
 
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari KatsumataInsight Technology, Inc.
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎Retrieva inc.
 
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデルMasashi Komori
 
Everyday Life with clojure.spec
Everyday Life with clojure.specEveryday Life with clojure.spec
Everyday Life with clojure.specKent Ohashi
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 

Tendances (20)

MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
 
設計をする上で役にたった制約について
設計をする上で役にたった制約について設計をする上で役にたった制約について
設計をする上で役にたった制約について
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKAマイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
マイクロサービスの基盤として注目の「NGINX」最新情報 | 20180127 OSC2018 OSAKA
 
より深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングより深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニング
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
 
Granger因果による 時系列データの因果推定(因果フェス2015)
Granger因果による時系列データの因果推定(因果フェス2015)Granger因果による時系列データの因果推定(因果フェス2015)
Granger因果による 時系列データの因果推定(因果フェス2015)
 
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎
 
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
【読書会資料】『StanとRでベイズ統計モデリング』Chapter12:時間や空間を扱うモデル
 
Everyday Life with clojure.spec
Everyday Life with clojure.specEveryday Life with clojure.spec
Everyday Life with clojure.spec
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 

En vedette

Rでシステムバイオロジー
RでシステムバイオロジーRでシステムバイオロジー
Rでシステムバイオロジー弘毅 露崎
 
スタートアップ・トライアスロン(元ノボット野田)
スタートアップ・トライアスロン(元ノボット野田)スタートアップ・トライアスロン(元ノボット野田)
スタートアップ・トライアスロン(元ノボット野田)Satoshi Noda
 
KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...
KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...
KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...奈良先端大 情報科学研究科
 
Japan.r 2データベース
Japan.r 2データベースJapan.r 2データベース
Japan.r 2データベースsleipnir002
 
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料Genaris Omics, Inc.
 
Rデータフレーム自由自在
Rデータフレーム自由自在Rデータフレーム自由自在
Rデータフレーム自由自在Takeshi Arabiki
 
Rで学ぶミニミニビッグデータ分析入門-第3回
Rで学ぶミニミニビッグデータ分析入門-第3回Rで学ぶミニミニビッグデータ分析入門-第3回
Rで学ぶミニミニビッグデータ分析入門-第3回Naruhiko Shiratori
 
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料Amelieff
 
Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回Naruhiko Shiratori
 
RNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A ReviewRNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A Reviewsesejun
 
Rによる主成分分析 入門
Rによる主成分分析 入門Rによる主成分分析 入門
Rによる主成分分析 入門Hiro47
 
バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析sesejun
 
フリーソフトウェアを通じた多変量解析講習
フリーソフトウェアを通じた多変量解析講習フリーソフトウェアを通じた多変量解析講習
フリーソフトウェアを通じた多変量解析講習h_yama2396
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門Koichi Hamada
 
NIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder NetworksNIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder NetworksEiichi Matsumoto
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)Takanori Ogata
 
はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~宏喜 佐野
 

En vedette (19)

Rでシステムバイオロジー
RでシステムバイオロジーRでシステムバイオロジー
Rでシステムバイオロジー
 
Liquidity book
Liquidity bookLiquidity book
Liquidity book
 
スタートアップ・トライアスロン(元ノボット野田)
スタートアップ・トライアスロン(元ノボット野田)スタートアップ・トライアスロン(元ノボット野田)
スタートアップ・トライアスロン(元ノボット野田)
 
KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...
KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...
KNApSAcK Family Databases: Integrated Metabolite–Plant Species Databases for ...
 
Japan.r 2データベース
Japan.r 2データベースJapan.r 2データベース
Japan.r 2データベース
 
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
CBI学会2013チュートリアル NGSデータ解析入門 (解析編)配布資料
 
Rデータフレーム自由自在
Rデータフレーム自由自在Rデータフレーム自由自在
Rデータフレーム自由自在
 
Rで学ぶミニミニビッグデータ分析入門-第3回
Rで学ぶミニミニビッグデータ分析入門-第3回Rで学ぶミニミニビッグデータ分析入門-第3回
Rで学ぶミニミニビッグデータ分析入門-第3回
 
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
フリーソフトではじめるがん体細胞変異解析入門 第33回勉強会資料
 
Tokyowebmining41
Tokyowebmining41Tokyowebmining41
Tokyowebmining41
 
Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回
 
RNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A ReviewRNAseqによる変動遺伝子抽出の統計: A Review
RNAseqによる変動遺伝子抽出の統計: A Review
 
Rによる主成分分析 入門
Rによる主成分分析 入門Rによる主成分分析 入門
Rによる主成分分析 入門
 
バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析バイオインフォマティクスによる遺伝子発現解析
バイオインフォマティクスによる遺伝子発現解析
 
フリーソフトウェアを通じた多変量解析講習
フリーソフトウェアを通じた多変量解析講習フリーソフトウェアを通じた多変量解析講習
フリーソフトウェアを通じた多変量解析講習
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
 
NIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder NetworksNIPS2015読み会: Ladder Networks
NIPS2015読み会: Ladder Networks
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)
 
はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~
 

Similaire à RとSQLiteによるオミックス解析の促進

Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517akirahiguchi
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generatorOda Shinsuke
 
初心者向け SQLite の始め方
初心者向け SQLite の始め方初心者向け SQLite の始め方
初心者向け SQLite の始め方suno88
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New FeaturesNoriyoshi Shinoda
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Noriyoshi Shinoda
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1Makoto Haruyama
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?Masayuki Ozawa
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)Shinya Sugiyama
 
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLPostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLNoriyoshi Shinoda
 
serverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみようserverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみようDaisuke Ikeda
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介Shinya Sugiyama
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1Noriyoshi Shinoda
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0Ryusuke Kajiyama
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 
FMDBの利用方法
FMDBの利用方法FMDBの利用方法
FMDBの利用方法uske7i
 
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報yoyamasaki
 

Similaire à RとSQLiteによるオミックス解析の促進 (20)

Babelfish Compatibility
Babelfish CompatibilityBabelfish Compatibility
Babelfish Compatibility
 
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generator
 
初心者向け SQLite の始め方
初心者向け SQLite の始め方初心者向け SQLite の始め方
初心者向け SQLite の始め方
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Features
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)
 
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)
 
PostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQLPostgreSQL Unconference #26 No Error on PostgreSQL
PostgreSQL Unconference #26 No Error on PostgreSQL
 
serverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみようserverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみよう
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1Oracle Database Connect 2017 / JPOUG#1
Oracle Database Connect 2017 / JPOUG#1
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
FMDBの利用方法
FMDBの利用方法FMDBの利用方法
FMDBの利用方法
 
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
 

Plus de 弘毅 露崎

大規模テンソルデータに適用可能なeinsumの開発
大規模テンソルデータに適用可能なeinsumの開発大規模テンソルデータに適用可能なeinsumの開発
大規模テンソルデータに適用可能なeinsumの開発弘毅 露崎
 
バイオインフォ分野におけるtidyなデータ解析の最新動向
バイオインフォ分野におけるtidyなデータ解析の最新動向バイオインフォ分野におけるtidyなデータ解析の最新動向
バイオインフォ分野におけるtidyなデータ解析の最新動向弘毅 露崎
 
Benchmarking principal component analysis for large-scale single-cell RNA-seq...
Benchmarking principal component analysis for large-scale single-cell RNA-seq...Benchmarking principal component analysis for large-scale single-cell RNA-seq...
Benchmarking principal component analysis for large-scale single-cell RNA-seq...弘毅 露崎
 
scTGIFの鬼QC機能の追加
scTGIFの鬼QC機能の追加scTGIFの鬼QC機能の追加
scTGIFの鬼QC機能の追加弘毅 露崎
 
1細胞オミックスのための新GSEA手法
1細胞オミックスのための新GSEA手法1細胞オミックスのための新GSEA手法
1細胞オミックスのための新GSEA手法弘毅 露崎
 
Predicting drug-induced transcriptome responses of a wide range of human cell...
Predicting drug-induced transcriptome responses of a wide range of human cell...Predicting drug-induced transcriptome responses of a wide range of human cell...
Predicting drug-induced transcriptome responses of a wide range of human cell...弘毅 露崎
 
LRBase × scTensorで細胞間コミュニケーションの検出
LRBase × scTensorで細胞間コミュニケーションの検出LRBase × scTensorで細胞間コミュニケーションの検出
LRBase × scTensorで細胞間コミュニケーションの検出弘毅 露崎
 
非負値テンソル分解を用いた細胞間コミュニケーション検出
非負値テンソル分解を用いた細胞間コミュニケーション検出非負値テンソル分解を用いた細胞間コミュニケーション検出
非負値テンソル分解を用いた細胞間コミュニケーション検出弘毅 露崎
 
Exploring the phenotypic consequences of tissue specific gene expression vari...
Exploring the phenotypic consequences of tissue specific gene expression vari...Exploring the phenotypic consequences of tissue specific gene expression vari...
Exploring the phenotypic consequences of tissue specific gene expression vari...弘毅 露崎
 
データベースとデータ解析の融合
データベースとデータ解析の融合データベースとデータ解析の融合
データベースとデータ解析の融合弘毅 露崎
 
ビール砲の放ち方
ビール砲の放ち方ビール砲の放ち方
ビール砲の放ち方弘毅 露崎
 
Identification of associations between genotypes and longitudinal phenotypes ...
Identification of associations between genotypes and longitudinal phenotypes ...Identification of associations between genotypes and longitudinal phenotypes ...
Identification of associations between genotypes and longitudinal phenotypes ...弘毅 露崎
 
A novel method for discovering local spatial clusters of genomic regions with...
A novel method for discovering local spatial clusters of genomic regions with...A novel method for discovering local spatial clusters of genomic regions with...
A novel method for discovering local spatial clusters of genomic regions with...弘毅 露崎
 
Rによる統計解析と可視化
Rによる統計解析と可視化Rによる統計解析と可視化
Rによる統計解析と可視化弘毅 露崎
 
文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ
文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ
文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ弘毅 露崎
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説弘毅 露崎
 
カーネル法を利用した異常波形検知
カーネル法を利用した異常波形検知カーネル法を利用した異常波形検知
カーネル法を利用した異常波形検知弘毅 露崎
 
ISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernelISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernel弘毅 露崎
 

Plus de 弘毅 露崎 (20)

大規模テンソルデータに適用可能なeinsumの開発
大規模テンソルデータに適用可能なeinsumの開発大規模テンソルデータに適用可能なeinsumの開発
大規模テンソルデータに適用可能なeinsumの開発
 
バイオインフォ分野におけるtidyなデータ解析の最新動向
バイオインフォ分野におけるtidyなデータ解析の最新動向バイオインフォ分野におけるtidyなデータ解析の最新動向
バイオインフォ分野におけるtidyなデータ解析の最新動向
 
Benchmarking principal component analysis for large-scale single-cell RNA-seq...
Benchmarking principal component analysis for large-scale single-cell RNA-seq...Benchmarking principal component analysis for large-scale single-cell RNA-seq...
Benchmarking principal component analysis for large-scale single-cell RNA-seq...
 
R-4.0の解説
R-4.0の解説R-4.0の解説
R-4.0の解説
 
scTGIFの鬼QC機能の追加
scTGIFの鬼QC機能の追加scTGIFの鬼QC機能の追加
scTGIFの鬼QC機能の追加
 
20191204 mbsj2019
20191204 mbsj201920191204 mbsj2019
20191204 mbsj2019
 
1細胞オミックスのための新GSEA手法
1細胞オミックスのための新GSEA手法1細胞オミックスのための新GSEA手法
1細胞オミックスのための新GSEA手法
 
Predicting drug-induced transcriptome responses of a wide range of human cell...
Predicting drug-induced transcriptome responses of a wide range of human cell...Predicting drug-induced transcriptome responses of a wide range of human cell...
Predicting drug-induced transcriptome responses of a wide range of human cell...
 
LRBase × scTensorで細胞間コミュニケーションの検出
LRBase × scTensorで細胞間コミュニケーションの検出LRBase × scTensorで細胞間コミュニケーションの検出
LRBase × scTensorで細胞間コミュニケーションの検出
 
非負値テンソル分解を用いた細胞間コミュニケーション検出
非負値テンソル分解を用いた細胞間コミュニケーション検出非負値テンソル分解を用いた細胞間コミュニケーション検出
非負値テンソル分解を用いた細胞間コミュニケーション検出
 
Exploring the phenotypic consequences of tissue specific gene expression vari...
Exploring the phenotypic consequences of tissue specific gene expression vari...Exploring the phenotypic consequences of tissue specific gene expression vari...
Exploring the phenotypic consequences of tissue specific gene expression vari...
 
データベースとデータ解析の融合
データベースとデータ解析の融合データベースとデータ解析の融合
データベースとデータ解析の融合
 
ビール砲の放ち方
ビール砲の放ち方ビール砲の放ち方
ビール砲の放ち方
 
Identification of associations between genotypes and longitudinal phenotypes ...
Identification of associations between genotypes and longitudinal phenotypes ...Identification of associations between genotypes and longitudinal phenotypes ...
Identification of associations between genotypes and longitudinal phenotypes ...
 
A novel method for discovering local spatial clusters of genomic regions with...
A novel method for discovering local spatial clusters of genomic regions with...A novel method for discovering local spatial clusters of genomic regions with...
A novel method for discovering local spatial clusters of genomic regions with...
 
Rによる統計解析と可視化
Rによる統計解析と可視化Rによる統計解析と可視化
Rによる統計解析と可視化
 
文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ
文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ
文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
 
カーネル法を利用した異常波形検知
カーネル法を利用した異常波形検知カーネル法を利用した異常波形検知
カーネル法を利用した異常波形検知
 
ISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernelISMB読み会 2nd graph kernel
ISMB読み会 2nd graph kernel
 

Dernier

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Dernier (10)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

RとSQLiteによるオミックス解析の促進

  • 1. RとSQLiteによるオミックス解析の促進 東京理科大学 薬学研究科 薬科学専攻 博士後期課程1年 露崎 弘毅
  • 2. read.tableの限界 4.39GB read.table webから取得した シロイヌナズナの 遺伝子発現データ 堅気の人はまず見る事が無いエラーメッセージ 2
  • 3. 3
  • 6. RとSQLiteの組み合わせ GBレベルのデータ 一度SQLiteに 格納 Input / Output こうすればまだまだ頑張れるはず!? 6
  • 8. なぜSQLite? 楽だから MySQL, PostgreSQL, Oracle … SQLite (イメージ) (イメージ) .sqlite サーバvsクライアント サーバvsクライアントという概念が無い 管理者 自分しか使わない DB DB DB 他人が途中アクセスしてくるという事 がそもそも無い .sqliteというデータベースファイルが1 root権限、パスワード設定、起動、 個できるだけ 停止、再起動、Anonymousユーザ-、 いらなくなったら削除すればおしまい セキュリティ、ロック、バックアップ… ローカルで自分だけが使う場合、SQLiteで十分 8
  • 9. 実際に内部でSQLiteを 利用しているパッケージ DESCRIPTION GO.db NAMESPACE R zzz.R man ~.Rd extdata GO.sqlite 9
  • 10. 実際に内部でSQLiteを 利用しているパッケージ Macの場合 ls /Library/Frameworks/R.framework/Resources/library/*/extdata/*.sqlite DECIPHER/extdata/Bacteria_175seqs.sqlite DO.db/extdata/DO.sqlite GO.db/extdata/GO.sqlite GenomicFeatures/extdata/Biomart_Ensembl_sample.sqlite IlluminaHumanMethylation450k.db/extdata/IlluminaHumanMethylation450k.sqlite KEGG.db/extdata/KEGG.sqlite … (.sqliteは23個、.sqlは1個、.dbは2個) アノテーションパッケージを中心に、大きいデータを提供 するパッケージでは、内部的にSQLiteを利用している (ユーザーは気づかないが) 10
  • 11. 1. SQLiteの基礎 1. SQLiteの基礎 / 11
  • 12. SQLiteの起動、終了、DB作成 /* 起動 */ sqlite3 /* 終了 */ .exit 1. SQLiteの基礎 / 12
  • 13. SQLiteの起動、終了、DB作成 /* 起動 */ sqlite3 /* 終了 */ .exit /* DBファイルを作成 */ sqlite3 test.sqlite カレントディレクトリに ファイルができる test.sqlite 1. SQLiteの基礎 / 13 test.sqlite
  • 14. テーブル作成 gene_name control treatment /* テーブル作成 */ CREATE TABLE RNASEQ ( RNASEQ gene_name VARCHAR(50), control NUMERIC, treatment NUMERIC ); *SQLiteは値の型を指定しなくても動い てしまうが、指定したほうが良い 1. SQLiteの基礎 / 14 test.sqlite
  • 15. データ追加 gene_name control treatment /* データ追加 */ INSERT INTO RNASEQ VALUES(“gene1”, 0, 0) gene1 0 0 INSERT INTO RNASEQ VALUES(“gene2”, 12, 25) gene2 12 25 INSERT INTO RNASEQ VALUES(“gene3”, 100, 203) gene3 100 203 INSERT INTO RNASEQ VALUES(“gene4”, 0, 0) INSERT INTO RNASEQ VALUES(“gene5”, 230, 13) gene4 0 0 gene5 230 13 RNASEQ 1. SQLiteの基礎 / 15 test.sqlite
  • 16. データの更新 gene_name control treatment /* データ更新 */ UPDATE RNASEQ SET control = 10 gene1 0 0 WHERE gene_name == “gene4”; gene2 12 25 gene3 100 203 gene4 10 0 gene5 230 13 RNASEQ 1. SQLiteの基礎 / 16 test.sqlite
  • 17. 削除に関して gene_name control treatment /* 行に対して */ DELETE FROM RNASEQ gene1 0 0 WHERE gene_name == “gene1”; gene2 12 25 gene3 100 203 gene4 10 0 gene5 230 13 RNASEQ 1. SQLiteの基礎 / 17 test.sqlite
  • 18. 削除に関して gene_name control treatment /* 行に対して */ DELETE FROM RNASEQ gene2 12 25 WHERE gene_name == “gene1”; gene3 100 203 gene4 10 0 /* 列に対して */ CREATE TABLE TMP( gene5 230 13 gene_name VARCHAR(50), treatment ); RNASEQ INSERT INTO TMP SELECT gene_name, treatment FROM RNASEQ; DROP TABLE RNASEQ; ALTER TABLE TMP RENAME TO RNASEQ; 1. SQLiteの基礎 / 18 test.sqlite
  • 19. 削除に関して gene_name treatment /* 行に対して */ DELETE FROM RNASEQ RNASEQ WHERE gene_name == “gene1”; /* 列に対して */ CREATE TABLE TMP( gene_name VARCHAR(50), treatment ); INSERT INTO TMP SELECT gene_name, treatment FROM RNASEQ; DROP TABLE RNASEQ; ALTER TABLE TMP RENAME TO RNASEQ; /* 全データに対して */ DELETE FROM RNASEQ; 1. SQLiteの基礎 / 19 test.sqlite
  • 20. 削除に関して /* 行に対して */ DELETE FROM RNASEQ WHERE gene_name == “gene1”; /* 列に対して */ CREATE TABLE TMP( gene_name VARCHAR(50), treatment ); INSERT INTO TMP SELECT gene_name, treatment FROM RNASEQ; DROP TABLE RNASEQ; ALTER TABLE TMP RENAME TO RNASEQ; /* 全データに対して */ DELETE FROM RNASEQ; /* テーブルに対して */ test.sqlite DROP TABLE RNASEQ; 1. SQLiteの基礎 / 20
  • 21. 削除に関して /* データベースに対して */ test.sqliteを削除すればいいだけ (rm test.sqliteなり、右クリック→ゴミ箱なり) 1. SQLiteの基礎 / 21
  • 22. SELECT gene_name control treatment /* テーブルのデータ全て */ SELECT * FROM RNASEQ; gene1 0 0 gene2 12 25 gene3 100 203 * : 全てという意味(ワイルドカード) gene4 10 0 gene5 230 13 RNASEQ < SELECT文の基本 > SELECT 列名 FROM テーブル名 WHERE 条件式; 1. SQLiteの基礎 / 22 test.sqlite
  • 23. SELECT gene_name control treatment /* テーブルのデータ全て */ SELECT * FROM RNASEQ; gene1 0 0 gene2 12 25 /* gene3, gene4の行のみ */ gene3 100 203 SELECT * FROM RNASEQ WHERE gene_name == “gene3” gene4 10 0 OR gene_name == “gene4”; gene5 230 13 RNASEQ 1. SQLiteの基礎 / 23 test.sqlite
  • 24. SELECT gene_name control treatment /* テーブルのデータ全て */ SELECT * FROM RNASEQ; gene1 0 0 gene2 12 25 /* gene3, gene4の行のみ */ gene3 100 203 SELECT * FROM RNASEQ WHERE gene_name == “gene3” gene4 10 0 OR gene_name == “gene4”; gene5 230 13 /* controlもtreatmentも0では無い行を取り出 RNASEQ す */ SELECT * FROM RNASEQ WHERE control != 0 AND treatment != 0; 1. SQLiteの基礎 / 24 test.sqlite
  • 25. SELECT gene_name control treatment /* テーブルのデータ全て */ SELECT * FROM RNASEQ; gene1 0 0 gene2 12 25 /* gene3, gene4の行のみ */ gene3 100 203 SELECT * FROM RNASEQ WHERE gene_name == “gene3” gene4 10 0 OR gene_name == “gene4”; gene5 230 13 /* controlもtreatmentも0では無い行を取り出 RNASEQ す */ SELECT * FROM RNASEQ WHERE control != 0 AND treatment != 0; /* controlもtreatmentも0では無い行の gene_nameを取り出す */ SELECT gene_name FROM RNASEQ WHERE control != 0 AND treatment != 0; 1. SQLiteの基礎 / 25 test.sqlite
  • 26. SELECT (結合、JOIN) gene_name control treatment /* ある転写因子TF1の結合箇所 */ CREATE TABLE TF1BIND ( gene1 0 0 gene_name VARCHAR(50), gene2 12 25 TF1 NUMERIC gene3 100 203 ); INSERT INTO TF1BIND VALUES(“gene1”, 104); gene4 10 0 INSERT INTO TF1BIND VALUES(“gene2”, -12; gene5 230 13 /* 2テーブルに跨った検索 */ RNASEQ SELECT A.gene_name, A.control, A.treatment, B.TF1 FROM RNASEQ AS A, TF1BIND AS B gene_name WHERE A.gene_name == B.gene_name; TF1 gene1 +104 gene_name control treatment TF1 gene5 -12 gene1 0 0 +104 TF1BIND gene5 230 13 -12 1. SQLiteの基礎 / 26 test.sqlite
  • 27. 余談:双方向ベストヒット A2B B2A Agenes Bgenes Bgenes Agenes オーソログ収集をしたい geneA geneD geneG geneO (パラログを除外したい) geneV geneU geneR geneR geneX geneX geneY geneX geneX 生物種A geneS geneL geneT geneF geneD geneY geneX geneX BBH BBH geneE geneH geneD geneA geneX geneY 生物種B geneX geneX BBH:BLAST BEST HIT SELECT A2B.Agenes, A2B.Bgenes FROM A2B, B2A WHERE A2B.Agenes == B2A.Agenes AND A2B.Bgenes == B2A.Bgenes; Reciprocal Blast best hitの抽出 1. SQLiteの基礎 / 27 JOINはなにかと便利
  • 28. 補足:スキーマ テーブルをどのように分割するか、 どのキー同士で参照するか、 どこにインデックスを貼るか…等 データベース全体のデザイン テーブル2 今回はI/Oが早くなればそれでいいので、 テーブル3 特にスキーマとか深く考えない テーブル1 1. SQLiteの基礎 / 28
  • 29. 補足:スキーマ ゲノムデータベースEnsemblのスキーマ http://www.gramene.org/info/docs/api/funcgen/tri mmed_funcgen_schema.png 1. SQLiteの基礎 / 29
  • 30. 補足:スキーマ cummeRbundパッケージのスキーマ 1. SQLiteの基礎 / 30 http://compbio.mit.edu/cummeRbund/manual_2_0.html
  • 31. 2. RSQLiteの利用 2. RSQLiteの利用 / 31
  • 32. RSQLite RでSQLiteを操作できるパッケージ Rでコマンドを叩いても、実際は裏でSQLが走る SQLがデータをとってきても、返ってくるのはRオブジェクト SQL文 例: SELECT * FROM pubmed; .sqlite Rオブジェクト (データフレーム) DBI(データベースインターフェース)という 他の言語でも実装されている 例: PerlのDBD::Pg、JavaのJDBI、Rubyのruby-dbi、PHP … 2. RSQLiteの利用 / 32
  • 33. データを取得する 言わずもがなの文献データベース 雑誌毎にフォルダ分けされており、 XML形式で文献データを提供 中身は月毎にファイルを分けている (http://www.ncbi.nlm.nih.gov/pmc/tools/ftp/) (XML) 解凍 ダウンロード (34.1GB!!!) 2. RSQLiteの利用 / 33
  • 34. XML→TXT library(XML) d <- xmlToList(“XMLファイル名”) みたいなのを毎回走らせる A <- d$front$’journal-meta’$’journal-id’$text のは面倒だから、 B <- d$front$’article-meta’$’pub-date’$year 実際はシェルスクリプトで C <- d$front$’article-meta’$’title-group’$’article-title’ D <- d$front$’article-meta’$’abstract$p E <- paste(“PMC”,d$front$’article-meta’$’article-id’$text,sep=“”) F <-paste(“http://www.ncbi.nlm.nih.gov/pmc/articles/”,E,”/pdf/”,sep=“”) … result <- c(A,B,C,D,E,F) sink(file=“pubmed.txt”,append=T) cat(result) sink() このようなtab区切りテーブルpubmed.txtができる 雑誌名 年代 タイトル アブスト (???GB) PMCID URL Nature 2012 hoge Hoge is... PMC2751374 http://www.ncbi.nlm....... 2. RSQLiteの利用 / 34
  • 35. 279102行×6列 pubmed.txt pubmed.txt 467.1MB read.table (“pubmed.txt”) この程度でもR単独ではかなりきつい 2. RSQLiteの利用 / 35
  • 36. SQLiteにTXTをインポート pubmed.txt > sqlite3 pubmed.sqlite sqlite> DROP TABLE IF EXISTS pubmed.sqlite; sqlite> CREATE TABLE pubmed ( journal_name VARCHAR(30), 467.1MB year INTEGER, title VARCHAR(300), abst VARCHAR(5000), pmcid CHAR(10), url VARCHAR(100) ); pubmed.sqlite sqlite> .separator ¥t sqlite> .import pubmed.txt pubmed 完成!!! sqlite> .exit 2. RSQLiteの利用 / 36
  • 37. pubmed.sqliteにRで接続 # R起動 >R pubmed.sqlite # パッケージロード > library(“RSQLite”) dbConnect() > library(“DBI”) # コネクション > driver <- dbDriver(“SQLite”) > db <- “pubmed.sqlite” > con <- dbConnect(driver, db) 2. RSQLiteの利用 / 37
  • 38. 検索してみる dbGetQuery( con, pubmed.sqlite "SELECT title FROM pubmed WHERE abst like '%RNA-Seq%';") dbGetQuery() Microarrays, deep sequencing and the true… Maintaining RNA integrity in a … Microarrays and RNA-Seq identify molecular mechanisms… 2. RSQLiteの利用 / 38
  • 39. 検索中 … (検索も数秒) 2. RSQLiteの利用 / 39
  • 40. 集計してみる dbGetQuery( con, pubmed.sqlite "SELECT COUNT(*) FROM pubmed WHERE abst like '%RNA-Seq%';") dbGetQuery() アブストにRNA-Seqと書かれた論文は167件! 2. RSQLiteの利用 / 40
  • 41. 可視化 paper <- rep(0:0,length=85) for(i in 1928:2012){ command <- paste("SELECT COUNT(*) FROM pubmed WHERE abst like '%RNA-Seq%' AND year = ",i,";",sep="") prepaper <- dbGetQuery(con,command) if(as.numeric(prepaper)!=0){ paper[i-1928] <- as.numeric(prepaper) } } jpeg(file="paper.jpeg") plot(1928:2012,paper,"l",ylab="Frequency",xlab="Year") dev.off() 論文の本数が2000年後半あたり 2. RSQLiteの利用 / 41 にいきなり急増している!
  • 43. pdf根こそぎダウンロード # キーワード > keyword <- "RNA-Seq" # 自前で作ったダウンロード関数 > pubmed.download(keyword) RNA-Seqというキーワー ドがアブストにある文献 を一度にダウンロード RNA-Seqフォルダ 2. RSQLiteの利用 / 43
  • 44. 3. MeSHパッケージの紹介 3. MeSHパッケージの紹介 / 44
  • 45. 遺伝子アノテーションとは アノテーション = 注釈をつける どんな転写因子結合 HNRNPR サイトをもつか ZNF436 RNA-Seq TCEA3 Chip-Seq ASAP3 DNA Microarray E2F2 SNP-array ID3 CAGE GALE SAGE どこのパスウェイか HMGCL … FUCA1 ゲノムワイドな実験 CNR2 (数万遺伝子) … 遺伝子リスト どんな機能に関 (数百遺伝子?) わっているか 3. MeSHパッケージの紹介 / 45
  • 46. MeSH(Medical Subject Headings) 論文にあてがわれた注釈情報 3. MeSHパッケージの紹介 / 46
  • 47. MeSH(Medical Subject Headings) Gene Ontology(GO)よりも ボキャブラリーが多い Nakazato et al. (2008) 3. MeSHパッケージの紹介 / 47
  • 48. MeSH(Medical Subject Headings) GOよりも階層が幅広い BP: Biological Process GO CC: Cellular Component MF: Molecular Function 3階層 3. MeSHパッケージの紹介 / 48
  • 49. MeSH(Medical Subject Headings) A : Anatomy B : Organisms C : Diseases D : Chemicals and Drugs E : Analytical, Diagnostic and Therapeutic Techniques and Equipment F : Psychiatry and Psychology G : Phenomena and Processes H : Disciplines and Occupations MeSH I : Anthropology, Education, Sociology and Social Phenomena J : Technology and Food and Beverages K : Humanities L : Information Science M : Persons N : Health Care 16階層 V : Publication Type Z : Geographical Locations 3. MeSHパッケージの紹介 / 49
  • 50. MeSH(Medical Subject Headings) GOよりも階層が浅い GO(BP) 上位(有意になりづらい) 下位(有意になりやすい) 3. MeSHパッケージの紹介 / 50
  • 51. MeSH(Medical Subject Headings) MeSH(A) 浅く広い階層 3. MeSHパッケージの紹介 / 51
  • 53. Nature Medicine 18, 766-773 (2012) 3. MeSHパッケージの紹介 / 53
  • 54. 既存のMeSH⇔GeneIDの対応 pubmed2mesh gene2pubmed MeSH Pubmed Gene ID http://gendoo.dbcls.jp/ http://gene2mesh.ncibi.org/ http://cbrc.musc.edu/homepage/jani/genemesh/index.html これらは全てWebアプリケーション→ Rでも使えるようにしたい 3. MeSHパッケージの紹介 / 54
  • 55. BioCHackathon 2012 仲里猛 : DBCLS @chalkless Gendooを開発(2008) 二階堂愛: RIKEN CDB @dritoshi 担当:gendoo.Hs.db ( https://github.com/dritoshi/gendoo.Hs.db) 師田郷太: UW-Madison @chikudaisei 担当:meshr (https://github.com/morota/meshr) 露崎弘毅 : Tokyo University of Science @antiplastics 目的 担当:MeSH.db MeSHをRで使えるようにする (https://github.com/kokitsuyuzaki/MeSH.db) 3. MeSHパッケージの紹介 / 55
  • 56. MeSHパッケージ群の使い方 MeSH.db gendoo.Hs.db (MeSHのデータ本体) (Gene IDとMeSH IDの対応) 呼び出し meshr (検定パッケージ) なんらかの遺伝子 に対するID Gene ID , MeSH Term, Fisher’s p-value Gene ID (gene synbol) HNRNPR 10236 10236 Cancer 0.0467 エンリッチメント ZNF436 80818 80818 Cell division 0.031 解析 TCEA3 6920 6920 Leukocyte 0.643 ID3 55616 55616 Nervous systems 0.943 … … … 3. MeSHパッケージの紹介 / 56
  • 57. MeSHパッケージ群の使い方 cummeRbundパッケージ内のテストデータ iPS細胞 ES細胞 geneid : 全遺伝子(n=314) sig.geneid : 発現変動遺伝子(n=104) とする 3. MeSHパッケージの紹介 / 58
  • 58. MeSHパッケージ群の使い方 GOによる遺伝子アノテーション MeSHによる遺伝子アノテーション # ライブラリロード # ライブラリロード library(“GO.db”) library(“MeSH.db”) library(“hgu95av2.db”) library(“gendoo.Hs.db”) library(“Gostats”) library(“meshr”) # パラメーター設定 # パラメーター設定 paraBP <- new(“GOHyperGParams”, paraA <- new(“MeSHHyperGparams”, geneIds=sig.geneid[,2], geneIds=sig.geneid[,2], universeGeneIds=geneid[,2],annotation=“hgu universeGeneIds=geneid[,2],annotation=“Gen 95av2.db”, ontology=”BP”, pvalueCutoff=0.05, dooMeSHA”, pvalueCutoff=0.05, conditional=F, testDirection=“over”) pAdjust=“none”) # エンリッチメント解析 # エンリッチメント解析 BP <- hyperGTest(paraBP) A <- meshHyperGTest(paraA) # 結果集計 # 結果集計 summary(BP) summary(A) 3. MeSHパッケージの紹介 / 59
  • 59. MeSHパッケージ群の使い方 GOを利用したエンリッチメント解析 BP (144件) MF (6件) CC (5件) cell differentiation structural molecule activity cell junction cell development protein binding plasma membrane cellular developmental binding cell periphery process kinase activity cytosolic part regulation of multicellular transferase activity, synapse organismal development transferring phosphorus- cell morphogenesis involved containing groups in differentiation phosphotransferase activity, chemotaxis alcohol group as acceptor taxis cellular component organization … 3. MeSHパッケージの紹介 / 60
  • 60. MeSHパッケージ群の使い方 MeSHを利用したエンリッチメント解析 A : Anatomy B : Organisms (5件) C : Diseases D : Chemicals (10件) G : Phenomena and (7件) and Drugs (13件) Cilia Processes (13件) Cercopithecus aethiops Chromosomes, Human, Pair 20 Transformation, Neoplastic Cricetinae Cell Amino Acid Sequence Alzheimer Disease Division Amino Acid Sequence Chromosomes, Human, 21-22 and Y Cell Adenoviridae Breast Neoplasms Cell Division Chromosomes, Human, Pair 22 Drosophila Brain Chemistry Central Nervous System Carcinoma, Non-Small-Cell Lung Chemistry Brain Binding, Competitive Competitive Chimera Carcinoma, Renal Cell Binding, Cricetulus Chromosomes, Human, Pair 20 Astrocytoma Cell Survival Chromosomes, Human, Pair 20 Cattle Cleft Palate Cell Survival Chickens Chromosomes, Human, 21-22 and Y 21-22 and Y Chromosomes, Human, Saccharomyces cerevisiae Chemotaxis Chemotaxis Haplorhini Cell Membrane Permeability Permeability Cell Membrane Cell Cycle Cell Cycle Chromosomes, Human, Pair 22 Chromosomes, Human, Pair 22 Autophagy Autophagy Algorithms Algorithms 3. MeSHパッケージの紹介 / 61
  • 61. • 使い心地 – GOと似たようなものがヒットする – A(Anatomy)はCC、D(Chemicals and Drugs)はMF、 G(Phenomena and Processes)はBPと少し似ている? – B(Organisms), C(Diseases),Aの臓器等、GOでは見れ ないタームがあり、そこに強みがあると思われる – 1階層あたりのターム数はGOの方が多い (MeSHの方が広く浅いから) • 展望 – 他の階層への拡張 – 他の生物種への拡張 (マイナーな生物種への対応も) 3. MeSHパッケージの紹介 / 62
  • 62. 第7回 Kashiwa.R バイオ実験系ラボ支援回 + 日時:2013 / 3 / 19 15:00~18:00 場所:東京理科大学野田キャンパス 薬学部校舎(14号館) 1411教室 63