#author("2021-11-18T14:37:31+00:00","","") #author("2021-11-18T14:51:17+00:00","","") [[技術資料]] *環境構築 [#ve406b35] システム開発に便利なJupyterをインストールする **anaconda インストール [#f3760e3d] jupyter上で仮想環境を複数作れるのでanacondaを推奨する *スクレイピング [#t87399b0] **このリンクからヒトの遺伝子とパスウェイを取得する [#k82cd152] http://rest.kegg.jp/link/pathway/hsa -hsaは接頭辞で'Homo sapiens'を表す -他の生物を取ってくる場合,この部分を変えればいい(例:ゴリラ=ggo) -requestsでurlを,BeautifulSoupでhtml内の文章を取得している.(通常のスクレイピングでは,htmlタグを指定して目的の文章が埋め込まれている部分を取り出すが,このサイト内には不純物がないので全体を取ってくるだけでいい) **re.subで'path:'を空白に,split()で\n,\tを取り除き,遺伝子数×2の二次元配列を作成 [#a21b0e2e] **二次元配列を整理して対応表を作る(遺伝子数が多ければ多いほど2重for文=n×n時間かかるので,性能の良いデスクPCでやること(約3.5時間)) [#c8468f33] ** [#kf62d9cb] *隣接行列作成 [#l98d3c1f] **遺伝子数×2の二次元配列を作成 [#h2c676e0] re.subで'path:'を空白に,split()で\n,\tを取り除く **二次元配列を整理して対応表を作る [#s6abdea3] 遺伝子数が多ければ多いほど2重for文=n×n時間かかるので,性能の良いデスクPCでやること(約3.5時間) [#c8468f33] ** 共起頻度の隣接行列作成 [#u8dfe9df] -対応表0列目をインデックス・カラムにしたデータフレーム(全要素0)を作成 -set()の集合演算(積集合)によって(共通部分=同じパスウェイにある)共起頻度をカウント --普通に配列検索でやると4重ループとなり,数日かかるおそれがあるのでこちらを使う --集合演算で4重→2重に減らせるが,それでも10時間ほどかかるため,内包表記を使ってさらに短縮させる(それでも3.5時間) *共起頻度に応じて遺伝子のランキング [#xccda8bb]