備忘録 a record of inner life

やったことや考えたこと・本・論文・音楽の備忘録。 特に環境科学・生態毒性に関して。

SETAC Europe@Helsinki参加感想

環境化学と環境毒性学の国際学会SETAC Europe 29th Annual Meeting@Helsinkiに参加してきました。

SETACに参加するのは、SETAC North Americaを含めてこれで3度目。正直なところ、若干飽きてきたかも。自分が聞いた代替試験法・OMICS・底質毒性・微量化学物質汚染などの発表では大きな目玉となる動きはなかったです。パラダイムの常識に沿った知見を蓄積している段階と言えば良く聞こえるでしょうか。

代わりに目立っていたのは、マイクロ(ナノ)プラスチックの研究。ホントに多かったです。体感では1/8くらいの発表がマイクロプラスチック関連だったほど。底質毒性や微量化学物質汚染のセッションでもその関連の発表が入り込んでました。ブームってそんなものだと思いますが、発表内容もただ環境中での存在量を測ったというものや有機化学物質の吸着量を測っただけのものなどが多くて食傷気味。良かったのは、リスクを過大に煽るような発表が自分の観測範囲内では見られなかったこと。むしろリスクは検出されなかったという傾向の発表が多かったです。

 

「面白そうなタイトル」と思って発表を聞きに行ったら論文化されていて既に読んだことある、という経験が数回ありました。もしくは真逆の、これから「こういう内容で研究するよ~」という事前告知やコンセプトだけの発表。研究の盗用があるから、このような状況も致し方ないのでしょうか…。

自分と関係なさそうな研究発表(というか学会?)をもっと積極的に聞きに行かないと、強い刺激は得られないかも。

 

 

個別発表・セッションのメモ。

  • 底質を凍結して間隙水濃度を5 cm毎に測定した研究。OECD 218と219というスパイク法の違いで濃度勾配の傾向に違いが出る。結果は割と納得いく内容。凍結させる手法はやってみたい。
  • 単一物質、単一濃度、単一時間で「OMICSしました~」だけではもう生態毒性分野でも不十分。曝露時間、濃度を複数見ないと厳しい。
  • OMICSではヘルムホルツ研究所の発表(Schuttler et al., 2019関係)が良かった。
  • morseというecotoxicology用のRパッケージ。既にdrcなどがある中で、TKTDモデルの1種GUTSの使用ができる点が新しいっぽい。Web版のMOSAICもある。

 

f:id:Kyoshiro1225:20190601220311j:plain

 

「人間そっくり」「砂の女」感想

「人間そっくり」 

読んだのは大学生のとき以来。セリフとト書でほぼ構成されていて、安部公房の作品の中ではかなり読みやすいです。1時間くらいで読了。

火星人を題材としたラジオドラマの脚本家である語り部の自宅へやって来た火星人を名乗る男によって翻弄される話。

 

日常生活というか、常識の感覚、普段は特に疑うことない根本の部分が揺らいできます。ここが面白い。観念的な語り口や比喩の多用は、少し鼻につくことも…。

 

 

人間そっくり (新潮文庫)

人間そっくり (新潮文庫)

 

 

砂の女」 

こちらも高校生か大学生の時以来。奇妙な環境でも根を張っていく日常生活の力を感じさせる作品。後半では、逃げ出そうとする男よりも、穴の中の生活を受け入れている女の方に共感して読んでいました。

 

砂の女 (新潮文庫)

砂の女 (新潮文庫)

 

 

「人間の性はなぜ奇妙に進化したのか」感想

「乱交の生物学」に続いて性の進化についての本。有名な「銃・病原菌・鉄」の著者ジャレドダイアモンドの著作です。さすが、かなり読みやすかったです。

 

章立ては下の通り。

1. 人間の奇妙な性生活

2. 男と女の利害対立

3. なぜ男は授乳しないのか?

4. セックスはなぜ楽しいか?

5. 男はなんの役に立つか?

6. 少なく産めば、たくさん育つ

7. セックスアピールの真実

 

2章のオスの授乳について。実は哺乳類のオスは、生理学的には乳汁分泌ができるといいます。ホルモンを投与されればオスでも乳汁を分泌するし、ホルモンを投与されなくとも飢餓状態からの回復期にはホルモンを制御する肝臓の働きが低下しているために乳汁を分泌したという日本軍捕虜収容所での報告例があるそうです。また十代の少年が自分の乳頭を刺激した結果、乳汁分泌を起こすのは珍しくない、そうです。

ではなぜオスは授乳しないのか。それは生理学的な問題ではなく、進化的な問題、オスメス間の闘争の結果、性的葛藤の結果です。体内受精する哺乳類は、出産までにメスがオスより子どもに投資しているので、そのままメスが授乳すなわち子育てをする方が進化的に合理的な選択なわけです。

 

4章のなぜセックスは楽しいか。内容を正確に反映させるなら、この章のタイトルはなぜ排卵は隠されているのか、でしょうか。子供を産む目的以外でセックスをできるのは、オスだけでなくメス自身にも排卵が隠されるから。ではなぜ排卵が隠されているのか。

排卵が隠されたのは、猿人がまだ乱婚型で暮らしていた時のこと。乱婚型の社会で排卵が明らかだと、オスは群れの中のどの子どもが自分の子どもか分かるため、自分の子ども以外をためらいなく殺してしまう。そこでメスは排卵を隠ぺいするよう進化させ、多くのオスと交尾して、多くのオスに生まれた子供が自分の子供であると認識させ、子殺しの生じる確率を下げたというのです。

 

5章。男は何の役に立つか。パラグアイアチェ族の話が面白い。アチェは狩猟採集民で、男はイノシシやシカを、女は果実や昆虫を採取します。イノシシやシカはカロリー量こそ大きいものの、獲得できる頻度は少ないため、実は女の獲得する食物量よりも平均カロリー量はずっと少ないそうです。しかも男は狩りで得た食物を、自分の家族だけでなく部族全体に分け与えます。

では男がわざわざ狩りをするのはなぜか。それは、大型動物を狩って部族に利益をもたらすと、婚外交渉を有利に進められるからという驚きの理由です。要は、狩猟能力が女へのセックスアピールになっているため、狩りが上手いほどモテて、子どもを多く残せるわけです。これはあくまで仮説レベルですが、現状一番もっともらしい仮説のようです。この仮説が正しければ、アチェ族の男が狩りをするのは家族とか妻とかのためではなく、自分の遺伝子のためなのです。

著者は、このような男の傾向は必ずしも現代社会に適用できるものではない、と断っていますが、男としては心当たりがあり申し訳なく感じる話。

 

文庫 人間の性はなぜ奇妙に進化したのか (草思社文庫)

文庫 人間の性はなぜ奇妙に進化したのか (草思社文庫)

 

 

論文のメモ: Sediment TIEの実践例

色々な化学物質によって汚染された底質を対象に、どの物質(群)が有害な影響を及ぼしているのか探索する手法であるSediment TIE(Toxicity Identification Evaluation)を実施した論文。

 

「時空間的にばらつきのあるデータを用いたSediment TIE研究デザインの最適化

Greenstein DJ, Parks AN, Bay SM, 2019, Using spatial and temporal variability data to optimize sediment toxicity identification evaluation (TIE) study designs, Integrated Environ Assess Manag 15(2): 248-258.

昨年のSETAC NAでポスター発表されていた内容かも。

タイトルからSediment TIEの計画立案に示唆が得られることを期待しましたが、少し期待外れ。最後のrecommendationは一般的な内容ばかり。底質は安定しているから、時間的なばらつきより空間的なばらつきを重視したほうが良いと結論付けてますが、この論文は2つの時点しか調査していないので判断保留かな。農薬のように一時期に急に流出するような物質についてどこまで時間的に安定していると言えるのでしょうか。

Sediment TIEの結果、CYPの阻害剤であるPBO(piperonyl butoxide)の添加で毒性が増加したため、化学分析の結果と併せてピレスロイド系殺虫剤が主な毒性原因ではないか、とのこと。

しかしアメリカの環境底質でも、ヨコエビの10日間試験で有意な致死毒性が検出されるんですね。

 

 「都市河口域における除去対象物質評価のためのSediment TIE利用

Greenstein DJ, Bay SM, Young DL, Asato S, Maruya KA, Lao W, 2014, The use of sediment toxicity identification evaluation methods to evaluate clean up targets in an urban estuary, Integrated Environ Assess Manag 10(2): 260-268.

上と同じグループによる研究で、カリフォルニアのcreekにSediment TIEを適用した論文。結果も上とほとんど同じです。PBOによって毒性が増加し、有機物吸着材で毒性低減したというもので、やはりピレスロイド系殺虫剤っぽいです。Westonらが提案している、ピレスロイド系殺虫剤の毒性を下げるためのカルボキシエステラーゼ添加も試していますが、添加量の問題なのか、効果は出ていないみたい。

 

 「複数物質で汚染された地点へのSediment TIEの適用

Bailey HC, Curran CA, Arth P, Lo BP, Gossett R, 2016, Application of sediment toxicity identification evaluation techniques to a site with multiple contaminants, Environ Toxicol Chem, 35(10), 2456-2465.

Sediment TIEにEDA(Effect-Directed Analysis)的な分画手法を取り入れた論文。底質からメタノール有機物を抽出して、C8カラムで固相抽出し、極性(固相抽出時のMeOH:水の比率)で分けた画分を水に添加してヨコエビの96時間毒性試験に供しています。それぞれの画分をGC-MSで分析して、毒性原因物質を探ってます。高分子PAHsとChlorophene(とTriclosan)が怪しい、という結論。ちなみに似たような手法を使った論文は、こちらにまとめました。

毒性原因物質の優先順位付けの段階(phase II)は、この論文のように比較的容易な96時間の水系試験でおこなうのが良いのでしょう。そういう意味では参考になりました。しかし、最終的な同定(phase III)は、抽出画分を添加した水系試験ではなく、底質系の試験でおこなうべきでは。水系試験で毒性があるからと言って、元の底質存在下の条件で毒性が強いとは限らない気がします。

 

 EDAを用いた底質中有機毒性物質の同定:bioaccessibilityを考慮した抽出とhigh throughputなユスリカ試験の組み合わせ

Li H, Yi X, Cheng F, Tong Y, Mehler WT, You J, 2018, Identifying Organic Toxicants in Sediment Using Effect-Directed Analysis: A Combination of Bioaccessibility-Based Extraction and High-Throughput Midge Toxicity Testing, Environ Sci Technol, 53(2), 996-1003.

Sediment TIEの論文を精力的に発表している曁南大学のグループらの研究。タイトルにはEDAとありますが、Sediment TIEとEDAの中間のようなデザイン。EDAはbioavailability(あるいはbioaccesibility)を考慮できていないため、EDAにmildな抽出とin vivo試験を適用しよう、というこの総説の流れを汲んで、吸着材XADによる有機汚染物質の抽出とユスリカのin vivo 2-day試験を実施しています。

論文の流れはこんな感じ:①野外で採取した底質とXADで有機物を除去した底質とで2-dayの曝露試験、②XADに吸着された有機物をアセトン・ヘキサンで回収し、順相のHPLCで分離、③分取した35画分をそれぞれDMSOに溶かして水系の曝露試験、④毒性の高かった画分を逆相のHPLCで分取して同様に推計曝露試験、⑤毒性の生じた画分に共通のピークをGC-MSで同定、⑥底質のToxic Unit(=底質での致死率÷50(%)*1)と毒性原因候補物質のToxic Unit(=底質中の濃度÷その物質のLC50)を算出し、原因物質の確認。上の論文で書いた「phase IIIの同定は底質のマトリックスを考慮すべき」という問題も、ある程度考慮されてます。ちなみに⑥の底質中濃度は、底質中の全濃度ではなくXADで抽出可能な画分の濃度を使用してます。

気になるのは、⑤で共通のピークが見られなかったケース。極性が高い画分だったことが理由かもと考察されてます。ではGC-MSではなく例えばLC-MSで同定をおこなってれば共通ピークが見られたのでしょうか?

*1:突っ込みどころではある。Toxic Unit >2以上は評価できないので…。ただコントロール底質で希釈してToxic Unitを求めてもマトリックスの影響は受けるため、割り切ってこのようなアプローチをとるのも分からなくはない。

「乱交の生物学 -精子競争と性的葛藤の進化史-」感想

電車で読みづらい書名。原題は"Promiscuity"という語で、一般には乱婚と訳されるそうです。

 

"オシドリ夫婦"のオシドリは実は全く一雌一雄ではないというのは有名な雑学ですが、オシドリだけでなく自然界の多くの種は一雄多雌や一雌多雄であり、一雌一雄は例外的です。つがいを形成する鳥類などのように社会的に一雌一雄な種であっても、性的に一雌一雄ではないこともあります。

 

本書は、なぜ生物が乱交である(=複数の個体と交尾している)のか、乱交であるときに何が生じているのかについて、進化学および生理学・解剖学の観点から述べた本です。雄が乱交であることは比較的広く受け入れられているので、本書は雌の乱交、一匹の雌が多くの雄と交尾することに特に焦点を当てています。「雌は出産や育児にかかるコストがかかる場合が多いため、複数の雄と交尾しても産める子どもの数に限りがあるのに、なぜ乱交なのか?」

全7章あるうち3~5章は生殖器・性細胞の構造や仕組みに充てられていて、これらの章は特に雑学的な面白さがあります。昆虫の中には何年も生死を貯蔵できる種がいるとか(p. 105)、雌が乱交であり精子競争が激しい種では体重に対する相対睾丸サイズが大きいとか(p. 122)、雄の副生殖腺からの分泌物は、交尾後に雌の膣内に交尾栓を形成し、後に別の雄が精子注入するのを妨げたり(p. 138)、雌の寿命を縮めたりするとか(p. 194)、ヒラムシの中には陰茎を何十種も持つものがいるとか(p. 146)、トコジラミの雄は鎌状の器官を用いて雌の体壁を貫いて精液を注入するとか(p. 210)。

と言っても、本書は面白エピソードを羅列しただけの雑学本ではありません。豊富なエピソードは、なぜ乱交であるのか、どのようにして乱交になっているのか、という問いを様々な観点から検証するためのものであり、割と体系的に書かれている印象です。

 

一貫しているのは、生物は利己的であり己の遺伝子の存続が最重要課題であるということ。そのため、雌雄関係は必ずしも協力関係ではなく、対立関係であることも多くなります。本書の副題にもなっている性的葛藤(sexual conflict)ですね。

雌が乱交である理由も、利己性の観点から説明できます。例えば遺伝子の和合性の課題。どの雄の精子が自身の卵と適合するのか外見からは判断できないので、雌は多くの雄と交尾します。

乱交である理由は、複数の雄に子どもを養育してもらうためであるとも説明されています。2匹の雄と交尾して、どちらの雄にも自分の子どもである可能性を感じさせ、養育に参加させるわけです。特に資源の不足しており親の力が必要な環境下では、このような戦略が発達するみたいです。

 

本書の主眼ではないけれど、雌が乱交である事実が、男性中心だった科学の世界でなかなか受け入れられなかったというのは面白い。純粋な、客観的な科学の世界の話に見えても、当時の社会的文化的な制約を受けているものですね。

 

乱交の生物学―精子競争と性的葛藤の進化史

乱交の生物学―精子競争と性的葛藤の進化史

 

 

某誌での査読

某環境系の学術誌に論文投稿して先日受理されました。Major revisionで修正した原稿を返したら、その当日に受理になりました。

5人も査読者がいたので査読対応のコメントだけで20ページにも及ぶ力作を送ったのに、ほぼ読まれてないだろうなー。自分が編集者だったら、確かに面倒くさいし時間もかかるので気持ちは分かりますが、ちょっとむなしい気もします。

 

査読のハードルを下げて論文をどんどん出していこうという傾向が、自分の分野でもあるんでしょうか。個人的にはその方針に賛成ですし、出版後査読も歓迎ですが、正直に査読する人が損しないようにはして欲しいです。

論文のメモ: オオミジンコの遺伝的多様性と感受性

「オオミジンコの遺伝的多様性と生態毒性学的評価

Picado A., Chankova S., Fernandes A., Simões F, Leverett D, Johnson I, Hernan R, Pires AM, Matos J, 2007, Genetic variability in Daphnia magna and ecotoxicological evaluation, Ecotoxicol. Environ. Saf. 67 (3): 406–410. https://doi.org/10.1016/j.ecoenv.2006.10.004.

OECDやISOによって(オオ)ミジンコを用いた毒性試験が標準化されていますが、どの系統を使用するかについては定められていません。しかし系統によって感受性が異なることが知られています。そこで、その差が遺伝子の多型によるものなのかを調べた論文。

多型の評価にRAPD(random molecular typing technique)を使用していて、前時代感あり。ヨーロッパのラボの7集団における19座位をRAPDで調べて、硫酸亜鉛、二クロム酸カリウム、排水試料の急性毒性値との関連を比較しています。硫酸亜鉛と二クロム酸カリウムについてはほぼ差が生じてませんが、排水についてはEC50に10倍以上の差が検出されてます。ただ、RAPDの結果との明確な関連は見つけられなかったみたいです。

まあランダムな変異じゃなくてターゲットで見た方が良さそう。

 

 「エチルパラチオンに対するオオミジンコの感受性に寄与する生化学的要因

Barata C, Baird DJ, Soares AMVM, Guilhermino L, 2001, Biochemical factors contributing to response variation among resistant and sensitive clones of Daphnia magna Straus exposed to ethyl parathion, Ecotoxicol. Environ. Saf. 49(2): 155-163.

上の論文よりはかなりしっかりしてます。3つのラボ系統と2つの野外系統で、エチルパラチオンに対する感受性の違いを調べた論文。in vivoの毒性試験だけでなく、ミジンコの破砕液を使ってin vitroのAChEの活性試験も実施してます。

in vivoのEC50では3倍以上の差が見られたのに、in vitroのAChE活性ではほぼ差が見られなかったという結果。AChE活性ではなく、エチルパラチオンの代謝など他の活性の違いで決まったのでは、との考察。

 

 「オオミジンコのCd耐性はhsp70の発現

Haap T, Köhler HR, 2009, Cadmium tolerance in seven Daphnia magna clones is associated with reduced hsp70 baseline levels and induction, Aquatic Toxicol., 94(2): 131-137.

7つの系統でCdの急性毒性値とヒートショックプロテイン70 (hsp70) の発現との関連をしらべた論文。感受性が高い系統ほど、hsp70の発現量が低かったとのこと。ただ体内Cd蓄積量とhsp70発現量との間に関連は見られなかったそうです。

せっかくきれいな実験をしているので、他の酵素の反応も見てみたい…。メタロチオネインとか。考察にはいろいろ書かれていますが。

 

 「複数のオオミジンコ系統を用いた急性毒性感受性の比較研究

Baird DJ, Barber I, Bradley M, Soares AM, Calow P, 1991, A comparative study of genotype sensitivity to acute toxic stress using clones of Daphnia magna Straus. Ecotoxicol. Environ. Saf. 21(3): 257-265.

この話題で良く引用されている論文。ちゃんと読んでない。

 

 

 

以下は、野外集団の系統地理に関する論文。地域間のオオミジンコの遺伝的距離の大きさはこれらを読めば良い、はず。とりあえずメモ。

De Gelas K, De Meester L, 2005, Phylogeography of Daphnia magna in Europe, Molecular Ecol, 14(3), 753-764.

ミトコンドリアのシトクロームCオキシダーゼサブユニットI(COI)609 bpを読んでます。日本のラボ系統も含まれてます。これもちゃんと読んでない。プライマーはFolmer et al., 1994のLCO1490とHC02198。

 

Bekker EI, Karabanov DP, Galimov YR, Haag CR, Neretina TV, Kotov AA, 2018, Phylogeography of Daphnia magna Straus (Crustacea: Cladocera) in Northern Eurasia: Evidence for a deep longitudinal split between mitochondrial lineages, PloS One, 13(3), e0194045.

COI以外にも16S rDNA、18S rDNAやHSP90などを読んでますが、解析はCOIのみで実施。ロシアあたりの野外集団中心。 

論文のメモ: 分配係数と固液比

固相-液相間でのある汚染物質の分配を考えたいとします。固相Sは例えば底質とかで、液相Lはそれに接している水とかです。平衡状態にあるならば、一般に次の式が成り立ちます。

K_d = \frac{C_S}{C_L}

C_Sは固相に吸着した物質の濃度、C_Lは液相中の濃度です。平衡状態なら、この比率、すなわちK_dは実験条件によらず一定と考えられます。

 

しかし実験してると、K_dが条件によって変わっていることに気づきました。

固相の割合が多くなるとK_dが小さくなる、つまりC_Sが減り、C_Lが増える傾向にありました。

 

でも実はすごい単純な話かも。

固相が増えると、それに応じてDOCとかコロイドが増えて、汚染物質がそれらに取り込まれるので、見かけのK_dが小さくなるわけです。 式にすると下のようなもの。

K_d = \frac{C_S}{C_L'} =\frac{C_S}{C_L+C_{DOC}+C_{Colloid} }

 

Solid concentration effectと名づけられてもいます。例えば以下の総説。

Di Toro DM et al., 1991, Technical basis for establishing sediment quality criteria for nonionic organic chemicals using equilibrium partitioning, Environ Toxicol Chem 10: 1541-1583.
Limousin G, Gaudet JP, Charlet L, Szenknect S, Barthès V, Krimissa M, 2007, Sorption isotherms: A review on physical bases, modeling and measurement, Appl Geochem 22, 249–275.

 Di Toro(1991)は、コロイドの影響では説明できない場合もあるとか書いてますが…。

 

 

STRINGdbを用いたPPIネットワーク解析 その2: DEG解析など

前回の続き。今回は、STRINGdbから得たPPI networkの情報を、DEG解析(Differentially Expressed Genes)の結果と絡める方法について書きます。

 

前回までの話

ゼブラフィッシュのPPI networkをSTRINGdbから取得します。例えばこんな感じのデータ。 

> full.graph
IGRAPH a1f4259 UN-- 23369 9145627 --
+ attr: name (v/c), neighborhood (e/n), neighborhood_transferred (e/n), fusion (e/n),
| cooccurence (e/n), homology (e/n), coexpression (e/n), coexpression_transferred (e/n),
| experiments (e/n), experiments_transferred (e/n), database (e/n), database_transferred
| (e/n), textmining (e/n), textmining_transferred (e/n), combined_score (e/n)
+ edges from a1f4259 (vertex names):
[1] 7955.ENSDARP00000000004--7955.ENSDARP00000051551 7955.ENSDARP00000000192--7955.ENSDARP00000023805
[3] 7955.ENSDARP00000000192--7955.ENSDARP00000023951 7955.ENSDARP00000000192--7955.ENSDARP00000024039
[5] 7955.ENSDARP00000000192--7955.ENSDARP00000024056 7955.ENSDARP00000000192--7955.ENSDARP00000024217
[7] 7955.ENSDARP00000000192--7955.ENSDARP00000024581 7955.ENSDARP00000000192--7955.ENSDARP00000024929
[9] 7955.ENSDARP00000000192--7955.ENSDARP00000025540 7955.ENSDARP00000000192--7955.ENSDARP00000026031
+ ... omitted several edges

 

タンパク質名の変換 

STRINGでは上記の通り、"ENSDARP00000000004"のようなEnsembleのタンパク質名で表現されています。けれどDEG解析をした場合など、手元にあるのは遺伝子名や転写産物名のリストであることも多いでしょう。その場合、名称を変更する必要があります。

STRINGにはalias情報が入っているので、容易に変更できます。

まずalias情報を取りだします。

Ali <- string_db$get_aliases()

> head(Ali)
STRING_id alias
1 7955.ENSDARP00000003766 plek
2 7955.ENSDARP00000035258 tesca
3 7955.ENSDARP00000045815 plg
4 7955.ENSDARP00000076522 gsc
5 7955.ENSDARP00000117101 aftpha
6 7955.ENSDARP00000126089 SEPT12

 

DEG解析の結果、下の6つの遺伝子が得られ、これらの遺伝子がPPI netowkrのどこに位置するのかを調べたいとします。

Gene <- c("pik3r3a","arap1a","UBL4B","yes1","hsp90ab1","zgc:158404")

matchコマンドを使って、Geneとaliasなタンパク質を探します。 

> Gene2 <-Ali[match(Gene,Ali$alias),]

> Gene2
STRING_id alias
17386 7955.ENSDARP00000106632 pik3r3a
NA <NA> <NA>
833 7955.ENSDARP00000009190 UBL4B
879 7955.ENSDARP00000009659 yes1
1461 7955.ENSDARP00000014978 hsp90ab1
12133 7955.ENSDARP00000093251 zgc:158404

 大方の遺伝子はaliasが見つかってますが、2つ目は見つかっていません。aliasが見つからない場合は、遺伝子名ではなく例えばensembleのid(ENSDARG....)に変換してから探すと良いかも。

 

 

ネットワークの描画

V(full.graph)$ color <- ifelse ( is.na(match(V(full.graph)$name, Gene2$STRING_id)), "green", "tomato" )

Geneの6遺伝子とaliasであるタンパク質はトマト色、それ以外の遺伝子は緑色で示すことにします。

そして前回と同様にigraphパッケージで描画します。

top.vertices <- names( tail(sort(degree(full.graph)), 50) )

top.subgraph <- induced_subgraph(full.graph, top.vertices)
plot(top.subgraph,vertex.label=NA,vertex.size=10)

f:id:Kyoshiro1225:20190203222619p:plain

"Gene"リストに含まれていたタンパク質は赤色で表示されています。

このあとは、例えばenrichment解析などに進みます。

 

 

STRINGdbを用いたPPIネットワーク解析

タンパク質間相互作用 (protein-protein interaction; PPI) のデータベースであるSTRING (Search Tool for the Retrieval of Interacting Genes/Proteins)。以下は、そのデータを使ってRでネットワーク解析してみた個人的な備忘録です。大部分は"STRINGdb Package Vignette (15 March 2015)"に依拠してます。

 

まずSTRINGdbをインストールする

BioconductorからSTRINGdbをインストール。

if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("STRINGdb", version = "3.8")

 これはver 3.5以上のRの場合。それ以前の場合は知りません。

 

 

まず特定の生物種のPPI network情報をゲット

 PPI network情報をロードします。ここではzebrafish (Danio rerio; taxid = 7955) を対象にします。

library(STRINGdb)
string_db <- STRINGdb$new (version="10", species=7955,
score_threshold=0, input_directory="" )   

コマンド中のversion=10はSTRINGのversionを示し、7955はzebrafishのtaxidを示しています。score_thresholdは、ロードするタンパク質相互作用のスコア下限です。STRINGではタンパク質間の関係をcombined scoreなる指標で表現しているそうですが(参考:FAQ)、ここでは指定したcombined score未満のPPIはロードしません。デフォルト値は400だそうです。

 

次にネットワークとして表現します。下のコマンドでグラフ形式に変換?できます。

full.graph <- string_db$get_graph()  

 

full.graphの中身を見ると、こんな感じ。23,369の頂点verticesと9,145,627の辺edgesが含まれています。

> full.graph
IGRAPH d850ca6 UN-- 23369 9145627 --
+ attr: name (v/c), neighborhood (e/n), neighborhood_transferred
| (e/n), fusion (e/n), cooccurence (e/n), homology (e/n),
| coexpression (e/n), coexpression_transferred (e/n), experiments
| (e/n), experiments_transferred (e/n), database (e/n),
| database_transferred (e/n), textmining (e/n),
| textmining_transferred (e/n), combined_score (e/n)
+ edges from d850ca6 (vertex names):
[1] 7955.ENSDARP00000000004--7955.ENSDARP00000051551
[2] 7955.ENSDARP00000000192--7955.ENSDARP00000023805
[3] 7955.ENSDARP00000000192--7955.ENSDARP00000023951
+ ... omitted several edges

attrはfull.graphの属性のことで、()内にvとあるのが頂点に関するもの、eとあるのが辺に関する属性です。()内にcとあるのが文字characterで表現された属性、nは数値numericで表された属性。例えばnameは文字で表現された頂点に関する属性。

属性は下のようなコマンドで取り出せます。

V(full.graph)$name

 

 

  

igraphパッケージで描画

全部を描くと大変なので、次数の大きい頂点トップ50個を選びます。

top.vertices <- names( tail(sort(degree(full.graph)), 50) )

top.subgraph <- induced_subgraph(full.graph, top.vertices)

 

 

plot(top.subgraph,vertex.label=NA,vertex.size=10)

f:id:Kyoshiro1225:20190202152636p:plain 

同じネットワーク図を、STRING独自のスタイルで描画することもできます。

string_db$plot_network(V(top.subgraph)$name)

f:id:Kyoshiro1225:20190202153046p:plain 

STRING形式の図は、カラフルで色んな情報が含まれてます。これはブラウザ上でSTRINGを利用した際にも見ることが出来ます。

ただ少し複雑すぎるので、注目したい情報だけ取り出して描画してみます。

 

例えば、STRINGの相互作用情報にはcooccurenceがあります。ネットワークの辺の太さをcooccurenceの程度によって変えてみます。※単なる描画の練習で、生物学的な意味は考慮していません。

E(top.subgraph)$width <- log10( E(top.subgraph)$cooccurence )

plot(top.subgraph,vertex.label=NA,vertex.size=10)

f:id:Kyoshiro1225:20190202154453p:plain

同じ要領でV(top.subgraph)$colorによって色を変えたり、E(top.subgraph)$ltyで辺の実線・点線を変えたりできます。

 

 

 

応用編: アノテーション

STRINGdbパッケージでは、get_annotations()でGO (Gene Ontology) やKEGG pathwayなどタンパク質のアノテーションを得ることもできます。

 Annotation <- string_db$get_annotations()

> head(Annotation)

STRING_id term_id category type
1 7955.ENSDARP00000000004 GO:0006810 Process IEA
2 7955.ENSDARP00000000004 GO:0006811 Process IEA
3 7955.ENSDARP00000000004 GO:0006812 Process IEA
4 7955.ENSDARP00000000004 GO:0006818 Process IEA
5 7955.ENSDARP00000000004 GO:0008150 Process IEA
6 7955.ENSDARP00000000004 GO:0008643 Process IEA

また、enrichment解析もできるそうです。例えば↓。 

test<-string_db$get_enrichment(top.verticies)

 

> head(test)
term_id proteins hits pvalue pvalue_fdr term_description
1 GO:0044267 434 10 1.542945e-17 6.403222e-15 cellular protein metabolic process
2 GO:0019538 478 10 4.085650e-17 8.477723e-15 protein metabolic process
3 GO:0006468 71 7 2.615610e-16 3.618260e-14 protein phosphorylation
4 GO:0006950 190 8 1.080273e-15 1.120783e-13 response to stress
5 GO:0016310 116 7 9.115423e-15 7.565801e-13 phosphorylation
6 GO:0038083 4 4 1.690731e-14 1.169423e-12 peptidyl-tyrosine autophosphorylatio

 

 

応用編: クラスタリング

STRINGdbパッケージでは、get_clusters()でクラスタリング解析もできます。

clustersList <- string_db$get_clusters( V(top.subgraph)$name, algorithm="fastgreedy")

クラスタリングアルゴリズムは、fastgreedy、walktrap、spinglass、edge.betweennessの4種類から選べます。

> clustersList
1
[1] "7955.ENSDARP00000009659" "7955.ENSDARP00000011298" "7955.ENSDARP00000019813"
[4] "7955.ENSDARP00000020408" "7955.ENSDARP00000021095" "7955.ENSDARP00000034350"
[7] "7955.ENSDARP00000035686" "7955.ENSDARP00000037198" "7955.ENSDARP00000040361"
[10] "7955.ENSDARP00000060744" "7955.ENSDARP00000064110" "7955.ENSDARP00000069405"
[13] "7955.ENSDARP00000075784" "7955.ENSDARP00000076407" "7955.ENSDARP00000087028"
[16] "7955.ENSDARP00000087454" "7955.ENSDARP00000089879" "7955.ENSDARP00000093618"
[19] "7955.ENSDARP00000107110" "7955.ENSDARP00000107491" "7955.ENSDARP00000107646"
[22] "7955.ENSDARP00000111940" "7955.ENSDARP00000112153" "7955.ENSDARP00000123746"
[25] "7955.ENSDARP00000123888"

2
[1] "7955.ENSDARP00000009190" "7955.ENSDARP00000013441" "7955.ENSDARP00000014978"
[4] "7955.ENSDARP00000018692" "7955.ENSDARP00000022302" "7955.ENSDARP00000023119"
[7] "7955.ENSDARP00000026065" "7955.ENSDARP00000027785" "7955.ENSDARP00000032448"
[10] "7955.ENSDARP00000035728" "7955.ENSDARP00000038550" "7955.ENSDARP00000040644"
[13] "7955.ENSDARP00000053431" "7955.ENSDARP00000054986" "7955.ENSDARP00000058736"
[16] "7955.ENSDARP00000084288" "7955.ENSDARP00000084961" "7955.ENSDARP00000088354"
[19] "7955.ENSDARP00000094521" "7955.ENSDARP00000096950" "7955.ENSDARP00000103480"
[22] "7955.ENSDARP00000109027" "7955.ENSDARP00000109720" "7955.ENSDARP00000118902"
[25] "7955.ENSDARP00000119429"

 

 Cluster 1に含まれる頂点25個を緑、Cluster 2のものをトマト色で描画します。

V(top.subgraph)$ color <- ifelse ( is.na(match(V(top.subgraph)$name, clustersList1)), "green", "tomato" )
plot(top.subgraph,vertex.label=NA,vertex.size=10)

f:id:Kyoshiro1225:20190217212344p:plain

 

上記はSTRINGdb内の関数を使用しましたが、igraphパッケージの関数を使用して同様のクラスタリングをおこなうことも可能です。

clusters <- cluster_fast_greedy(top.subgraph)

plot(clusters,top.subgraph,vertex.label=NA,vertex.size=10)

f:id:Kyoshiro1225:20190217222039p:plain