#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]



トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS