pythonを使った多重比較検定補正
pythonのパッケージの一つである、statsmodelsを使うことで、多重比較検定補正を行う事ができます。
なぜ、多重比較検定補正が必要?
例えば、有意水準を5%とし、3回の検定を行った場合、どれか一つが有意になる確率は
1-全てが有意ではない確率=1-(0.95)3=1-0.86
となってしまい、最初に設定した5%水準を上回ってしまいます。
これを防ぐために、P値の補正を行います。特に、バイオ系だと統計検定を3回以上連続で行った場合に使われるのをよく見ます。
スクリプト
from statsmodels.stats import multitest
a=[0.01,0.05,0.03,0.001,0.05] #補正を行うp-value multitest.multipletests(a, #ターゲットとなるP値 alpha=0.05, #しきい値の設定 method='hs', #手法の設定 is_sorted=False, #P値を昇順にソートする returnsorted=False) #P値を昇順にソートする?
(array([ True, False, False, True, False]), array([0.03940399, 0.0975, 0.087327, 0.00499001, 0.0975]), 0.010206218313011495, 0.01) #alfa 値が棄却されたかどうか #補正した値 #Sidak法を使用したalfa 値の補正 #Bonferroni法を使用したalfa 値の補正
methodとして使える方法
- bonferroni : one-step correction
- sidak : one-step correction
- holm-sidak : step down method using Sidak adjustments
- holm : step-down method using Bonferroni adjustments
- simes-hochberg : step-up method (independent)
- hommel : closed method based on Simes tests (non-negative)
- fdr_bh : Benjamini/Hochberg (non-negative)
- fdr_by : Benjamini/Yekutieli (negative)
- fdr_tsbh : two stage fdr correction (non-negative)
- fdr_tsbky : two stage fdr correction (non-negative)
参考
ポストドクターの先輩達を見て感じたこと(個人的感想)
私自身、博士を取得後は、企業に就職しました。しかし、最後まで一般企業に就職するか、ポストドクターをするか迷いました。
博士課程を目指す方に、少しでも役立てればと思い、ポストドクターをやられている方々を見て、思った事をまとめました。
だいたい、一割ぐらいの人が博士を取った後にポスドクとして大学に残るよねー
メリット
時間を自由に使える
研究室の決まりによるとは思いますが、時間の使い方は自由度が高いと思います(何時に帰宅するか、土日は来るのか、来ないのか)。
好きな研究を続けられる
ポスドクから全く異なるテーマを始めるなど、ポジティブな意味で自身がしたい研究、取得したい技術を念頭に研究テーマを選べる可能性が高いです。
海外で生活ができる場合がある
海外の生活に憧れる方にとっては、研究をしてお金をもらいながら外国に住む事ができます。また、外国語を学ぶ事が好きな方は、ポスドクとして働いている国の言語を学ぶ事ができます。
デメリット
お金が、、、
給料面に関しては、一般企業と比較すると低い場合が多いです。単身であるならば、特に問題はないという事をよく聞きますが、結婚、子供の事を考えると大変という事を聞きます。一般的に、国立大学よりも私立大学、国内よりも海外の給料が高いという事をよく聞きます。
将来の見通しが、、、
ポストドクターとして雇われた場合、ほぼ1年ごとに契約を更新する場合が多いと思います。そのため、次の年は、どのように働くかなどの不安が多いそうです。また、35才という年齢が一つの区切りで、この年齢を超えると一般企業への就職は難しくなるという事を聞きます。
助教までは、年齢制限などは特にありませんが、若いうちに助教を経験しなければ、准教授、教授など上のポストに着くのが難しくなると聞いたこともあります。
ポストドクターをやられていて幸せそうに見える人は、お金よりも好きな事がやりたい!という方が多い気がしました。もしくは、研究にとても達成感、やりがいを持っている方々です。
金銭的な面では、大変な事も多いですが、研究者としての能力を上げる期間としては、とても重要な期間だと思います。数年間という期間を決めて、ポストドクターを行うことは、選択肢として入れても良いのではないでしょうか。最終的には、自分が満足できる方向を見つける事が重要だと思います。
バイオ系の解析でよく使うpythonのパッケージ集(個人的感想)
pythonを始めたばかりの人に役立てればと思い、バイオ系の解析でよく使うパッケージをまとめました。
Pandas
生物系の解析だとデータフレーム形式(エクセル表など)を取り扱う事が多いと思います。pandasはそのようなデータ形式に特化していて、データの入力、出力、相関行列、データの集計など、さまざまな解析ができます。
詳しい解析方法に関しては、以下のサイトに記載されています。
Python データ処理ライブラリ Pandas の導入とそのデータ型
Numpy
Numpyは数値計算に適しており、Pandasなどと組み合わせ、対数変換、ピアソン相関係数などの処理に用います。
詳しい解析方法に関しては、以下のサイトに記載されています。
Scipy
Scipyに関しても数値計算、統計検定に用います。特に、KSテストやT検定、カイ二乗検定など、生物系の解析でよく使う処理を行う事ができます。
Statsmodels
このパッケージの中には、多重比較検定に使用するFalse Discovery Rate(FDR)が含まれています。他のパッケージに比べると使用頻度は低いかもしれませんが、FDRを行えるパッケージはあまりないので、このパッケージを使っています。
Matplotlib or Seaborn
主に図を描写する際に使用します。どちらを使うかは、個人の好みです。matplotlibの方がトラブルを解決する際の情報が多いです。seabornの方は、デフォルト設定でも比較的、綺麗な図を描けますが、問題が生じた際の情報が少ない印象を受けます。
http://pythonttesugoine.com/2020/07/27/python%e3%81%a7%e6%8f%8f%e3%81%8f%e6%95%a3%e5%b8%83%e5%9b%b3/
まとめ
TOEIC850点を超えるまでにしたこと
私の能力
使った教材
新公式問題集
TOEIC TEST 特急シリーズ
Listening (新公式問題集)
リスニングには主に新公式問題集を使います。 やり方としては、復習を重点的に行います。
- リスニングをみながら文章を読む
- リスニングを聴きながら、本を見ずに文章を頭の中に思い浮かべる
- リスニングを倍速にして聴く(可能であれば)
上記のことを繰り返し行うことで、早い速度で意味を理解できるようになります。新公式問題集のリスニングで出る単語は、文法、読解のセクションにもよく出るため、文章を暗記するくらい繰り返すと効果的です。
Grammer (TOEIC TEST 特急シリーズ)
文法問題には特急シリーズがおすすめです。文法の問題は大きく2つの解き方があり、選択肢を見て判断する事ができます。
- 文法問題
- 語彙力問題
文法問題では、時制、仮定法など文法の知識が問われます。この場合、選択肢には、[1] be [2] been [3] is [4] was など、同じ単語ですが、形が違う単語が選択肢に並べられています。
語彙力問題では、単語、熟語の知識が問われます。単語を知らなければ、解けないので、わからなければすぐに飛ばしましょう。
Reading (新公式問題集)
人によって違いますが、私はReadingの得点の伸びが一番遅かったです。読解問題は時間がかかるので、文法問題をどれだけ早く解けるようになるかが重要なポイントとなってきます。学習方法としては、新公式問題集の文章を音読する方法があります。
また、一見関係無いように思えますが、定期的に英会話を行うなど、総合的な英語力を伸ばすことで、Readingのセクションの得点も伸びてきます。
得点が伸びなず辛い時期もあります。根気よく勉強を続けていきましょう!
ESを書く際に気をつけた3つのこと (バイオ系博士の就活)
まず、いろいろなESの書き方に関する本を読んだ結果
情報が多すぎて、結局何を書いていいのかがわからない。。。
よく物語には、起承転結がありますが、自分なりに、ESを書く際に意識した起承転結をまとめました!
これまで、自分は何をしてきたのか?
これまで、自身が行ってきた経験は、今後の進路を決める上で重要な事です。部活、研究、アルバイト、サークル活動など、様々な経験があり、今後の進路を決めるきっかけが生まれます。たとえ、これから新しい道に進もうと考える際も、これまで培ってきた能力、経験を少しでも活かせるように考えた方が上手くいく事が多いと思います。
何に興味があり、何をしたいのか?
自分が何に興味を持ち、何をしたいかと言う質問は、私にとって最も難しい質問でした。何に対しても興味を持てない。もしくは、興味がないのに、興味を持っていると思い込んでいる場合もあります。
就職活動に費やした多大な時間が失われてしまう可能性があるため、後回しにせず、考える事が大切だと思います。
もし見つからないのならば、色々な事に挑戦するのも一つの方法かと思います!
どのように会社に貢献できるのか?
これまでしてきた能力、身につけた経験を基にどのように会社に貢献できるか、考えましょう(想像しましょう)。これは、会社に依存するだけではなく、自身の成長を含まれます。
例文
私は、これまで○○○○○○をしてきました。その中で、私は、△△△△△△△と言う事に興味を持ちました。
私は、これまでサークル・部活動で□□□□□□□能力・スキルを身につけました。
このような、□□□□□□□能力・スキルを用いて御社で行っている××××××××に貢献したいと考えています。
これは、私がESを書く際に基本としたテンプレートです。これがベストではないですが、皆さんがESを書く際の参考になれば幸いです。
BigWig→Wig→Bedに変換する (File 形式変換)
Bam形式からBigWig形式に変換する方法は多く見ましたが、BigWig形式をbed形式に変換する情報が少なかったのでまとめて見ました。
そもそも、Wig file とは?
WIGフォーマットはGC含量やprobability scoresやトランスクリプトームデータなどのような密で連続的なデータを表示させるときに用いられます。
http://genomejack.net/ より引用
BigWig はWigをバイナリーファイルに変換したものです。
Bam fileからBigWig file形式に変換することができ、IGVなどでリードのマッピング情報をヴィジュアル化することができます。
方法に関しては、以下のサイトを参考にしました。
macでインフォマティクス
いつも、BAM or SAM fileぐらいしか使ったことがないから、結構手間取ったよ
直接BigWig → Bed形式に変換する方法はない?
いろいろ、探しましたが、BigWigをBedに直接変換する方法は見つかりませんでした。。。
そこで、BigWig→Wigに変換し、WIg→Bedに変換します。
BigWig→Wig
BigWig→WigにはbigWigToWigを使います。
bigWigToWigはENCODEのSoftwarefile format/ conversion、bigWigToWigよりダウンロードすることができます。
まず、bigWigToWigに権限を与えます(Macの場合)。
chmod +x bigWigToWig.file
その後、Wig形式に変換します
bigWigToWig file.bigwig file.wig
Wig→Bed
次に、wig fileをbed fileに変換します。
変換には、wig2bedを使います。wig2bedはBEDOPSに含まれており、home brew を使うことでインストールできます。
home brew を使ったことがない方は、以下のサイトを見てください
homebrewとは何者か。仕組みについて調べてみた
brew install BEDOPS
wig2bed < file.wig > file.bed
あまり需要はないと思いますが、予想していたより手間取った解析なので、まとめて見ました。
これらの情報が少しでも誰かの解析に役立てれば幸いです。
Python学んで人生変わった(バイオ系博士)
大学院に入るまでの私の能力
- 大学時代まで体育学部(脳みそ筋肉じゃないと信じたい笑)
- プログラミング言語なんて聞いたこともなかった
- パソコン苦手のバリバリの文系
今回の内容
始まりの日
「じゃあ、プログラミングを使って解析していこうか」
プログラミング書けるって良さげじゃねという軽い気持ちで始めた最初の日。本当に、プログラミング言語って何というところから始まりました(笑)読めない、書けない、わからない。ですが、研究を進めるためには、生物系の解析でよく使われるPython(プログラミング言語)を習得しなければなりません。当時の私はモチベーションだけはありました。。。
[chat face="icons8-python-480.png" name="pyてょん" align="right" border="blue" bg="none"] 何事も最初の内はやる気が出るよね [/chat]
待ち受ける困難
さっぱりわからない。本当にわからない。print構文しかわからない (笑)
Pythonは比較的、簡単と言われるのに全然できない(汗)
最高潮にあったモチベーションは徐々に落ちはじめました。。。
ですが、プログラミングが書けなければ研究ができません。なので、まずscriptを読む練習から始めました (まるで、英文読解)。
[chat face="daruma_.png" name="python大好き" align="left" border="red" bg="none"] 特に独学だと、簡単なミスに気付かなかったり、倍以上勉強する時間がかかっちゃうよね。。。[/chat]
思わぬ幸運
エラーばかり出て発狂しそうになったこともありましたが、ネット上にあるスクリプトを使って読む練習をしていくと、なぜか少しずつ書けるようにもなってきました(笑)
そして、Pythonを学んで、知らず知らずのうちに得たこととは、
そう、就活の幅が広がる
そして、バイオ系の企業にも入りやすくなる
これは、とても大きかったです。特にバイオ系の研究していると就職が難しいと言う話をよく聞きますが、プログラミングができるだけで、かなり違います。最近ですと、バイオ系の企業もプログラミングを書ける人材を募集していますし、システムエンジニア(SE)など情報系の職にも応募できるようになります
[chat face="icons8-python-480.png" name="pyてょん" align="right" border="blue" bg="none"] IT系の分野は人材の入れ替わりが早いから、募集も多いよね! [/chat]
そして、もう一つ
日常の雑務を一瞬で終わらせられる
これは、研究の効率がとても高まりました。手作業だと数時間かかる作業がPythonを使うことで数分で終わらせることができます。
新たなる旅立ち
修士、博士の5年間で生物の研究を行い、もう社会人では生物系の研究はせず、一般職を選ぼうと思っていました。
そんな私が、製薬企業の研究職に着き、今後も生物系のバイオインフォマティクス解析を行うことになりました(笑)
[chat face="daruma_.png" name="python大好き" align="left" border="red" bg="none"] いやー、本当、未来ってわからないよね[/chat]