正規表現の応用&エクセルを使ったデータ解析

第5回授業の獲得目標: [worried]

グループワーク:あなたにとって研究者って何? [smile]

この授業の前が体育であることもあり、授業の最初から全員がコンピュータの操作をすぐに始めるのは、なかなか難しい。そこで、授業の始めには、たいてい、グループディスカッションを持ってくるようにしている。
今日の最初の演習は、自分にとって研究者というのはどういうものかという意見をグループで話し合ってみること。まず、5分ぐらいで(遅れてきた人は、その間にログインしておくこと)
 自分が「研究者」とはどういうものだと思っているか?
 「研究者」になるためには、今からどんな準備をすればよいか?
を話し合ってみよう。また、ディスカッションの後、 授業のmoodleにアクセスして、「演習1」の質問に答えてほしい。

研究者を目指す人のための長期計画

例年、1年生の中には、将来、研究者になることを志望している人が多い。また、学部生から修士にかけて生物を学ぶ間に、新たに研究者を目指す学生もでてくるだろう。そこで、一つの事例として、研究者になるために知っておくと得をするかもしれない、いくつかの事例を紹介しておこう。
題して、学部生から研究者を目指す学生が、今から知っておきたいこと

事項\年2014201520162017201820192020 ... 2023..
学年学部1年学部2年学部3年学部4年修士1年修士2年博士1年...博士4年
主な活動授業授業授業研究・院入試・卒論研究研究・修論研究・論文...研究...
目標自分次第自分次第自分次第院入試で上位
奨学金に影響)
投稿論文を
目指した卒研
投稿論文発表
(投稿規定・論文書式)
学振DC申請(5月)論文作成、学振PD申請...研究職応募..
サポート各種留学制度各種留学制度各種留学制度各種留学制度奨学金返還免除各種助成学振DC1奨学金
各種助成...
学振PD申請・
海外学振申請、
助成金, 、奨学金返還免除.
Word・Excelの利用実験・レポート実験・レポート実験・レポート研究・卒論研究・論文・申請書研究・学振申請書・修論研究・論文・申請書・報告書...研究・論文・
申請書...


もしも、修士で第一種奨学金をもらえてそれが免除され、さらに、学振DC1ももらえたら、修士課程と博士課程での収入は、

事項\年201820192020202120222023
学年修士1年修士2年博士1年博士2年博士3年博士4年
奨学金+学振DC11,056,0001,056,0002,400,0002,400,0002,400,0002,400,000


その他にも、学内、学内のいろんな制度で、海外学会に参加したり、留学したりできる(トビタテ留学!の募集要項は、共有しているDropBoxフォルダに入れておいた)。
学振の話しや、申請書の話しはまた次回以降にするが、皆さんに知っておいて欲しい大事なことは、

発展的な正規表現:後方参照への挑戦 [smile]

まずは、前回のおさらいから。

授業のmoodleページにアクセスして、演習2をやろう。

後方参照とは?

今日は1つ上のレベルの正規表現「後方参照」にチャレンジしてみよう。
K2Editorのヘルプで後方参照に関する項目を見てみると、次のように書かれている。

後方参照
正規表現の中で()を使ってグループ化された部分にマッチ文字列は、 ¥1,¥2などの表現で、
再度正規表現の中に埋め込むことが可能です。 

ちょっと分かりにくいかも知れないが、半角の

()

の中で指定したパターンにマッチした文字列を、

¥1

などという記号を使うことで、呼び出すことができるということだ。
まず簡単な例で操作をしてみよう

テキストデータ: A9JA49K6  に対して、
Aの次の1文字と、そのAの並び順を入れ替えたい。


K2Editorで実際に試してみると:

テキストデータ  A9JA49K6
・Aに続く1文字とAの順序入れ替え
  検索文字列 (A)(.)
  置換文字列 ¥2¥1

書籍リストを出版年順に並び替える

では、もう少し具体的な例をつかって、段階的に説明してみよう。
まず、次のような書籍のリストがある。このリストを、K2Editorで開いてみよう。file書籍リスト.txt

まずは、これまでに習った正規表現で、どこまで解決できるか考えてみる

このリストには、出版年が含まれているにも関わらず、出版年の順番に並んでない。どうすれば、出版年で並び替えられるだろうか?
リストをよく見てみると

タイトル・著者,出版年,ページ・価格

という順番で並んでいる。ここで、

出版年だけを切り出して、
出版年 <タブ> タイトル・著者,出版年,ページ・価格

というリストを作り、エクセルにペーストして

出版年タイトル・著者,出版年,ページ・価格

という表を作り、出版年で並び替えれば良いということまでは、想像できるだろう。
では、出版年だけを切り出すにはどうすればいいだろうか? まず、これまでにならった正規表現で表現できるところだけを書いてみると、

練習:日付データの形式変更

下に友達の誕生日リストが月、日、年の順で書かれている。

April 29, 1984
March 20, 1987
September 23, 1980	
December 23, 1982
February 11, 1984
January 1, 1999
May 3, 1988
May 4, 1993
May 5, 1987
November 23, 1985
November 3, 1994

発展演習: DNAの塩基配列データの整形処理

添付されているファイルfilesequence_Pdic.fastaには、Pedicularisという植物のDNA塩基配列データがFASTA形式で入っている。GenBankからダウンロードしたままの形式なので、

>gi|310769146|gb|HM596759.1| Pedicularis procera tRNA-Leu (trnL) gene
 (GenBankID, データベース、Accession No.、種名、遺伝子の種類...)

が、それぞれのデータを示すラベル情報として入っている。これを、よりシンプルに、

>種名の省略形_Accession No.
という形に整形したい。上の例だと、
>P_procera_HM596759

に置換したい。どのようにすれば良いか、考えてみよう。
この操作は、実際にDNAデータベースのデータを使って、系統解析を行うときに、知っていると大変役に立つ。

Excel(エクセル)の操作の基本:表計算 [smile]

今日から2回ほど、表計算ソフトの代表ともいえるExcel(エクセル)の操作を習得する。表計算ソフトは、コンピュータに作らせた表の上に数値を記入して計算させるもの。手計算では、表の中の一つの数値を変更したら他の数値も全てもう一度計算し直さなければならない場合も、表計算ソフトを使うと、他の数値は自動的に再計算される。このアイデアは、ハーバード大学の学生であったDaniel Bricklinが1979年が思いつき、VISICALCというソフトウェアとして実現したものだ。その後、表計算ソフトは、DOS/V機(日本ではPC-98)におけるLOTUS-1-2-3やWindowsにおけるMicrosoft Excelとして発展してきた。表計算ソフトは、ハードウェアの普及を促進したということで、パーソナルコンピュータにおけるキラーソフト(キラーアプリ)と呼ばれている。

Microsoft Excelの各部の名称

excelmeisho.gif

値・数式の入力と計算

  1. セルを一つクリックして、 =1+2 という式を入力 sushiki.gif

セルの参照

  1. セルA1に5, セルB1に8を入力
  2. セルC1をクリックして半角=を入力し、セルA1、せるB1をクリック
    • (あるいは、セルC1をクリックして、=A1+B1と入力しても同じ)

      sansho.gif

      5	8

式(参照)のコピー・ペースト

  1. 式を入力したセル(例ではC1)をクリックしてコピー(ctrl+c):選択されたセルが波線で囲まれる
  2. 同じ法則(例では「左側の2つのセルの値を足すこと」)を適用したいセルをマウスドラッグで選択
  3. ペースト(ctrl+v)すると、選択範囲に全て式がコピーされる

    sanshocopy.gif

    5	8
    1	2
    3	4
    5	6
    7	8

絶対参照

  1. 下の例のようにエクセルに果物の個数を入力して合計を求める
    • soutaierr1.gif
  2. りんごの個数の全体に対する比率を =B2/B5 で計算。書式をパーセントにする(あるいは、パーセントの計算式を入れる。関数を使っても良い)。
  3. りんごの比率の入ったセルをコピーして、他の項目の比率のセルにペーストしてもうまく行かない
    • soutaierr2.gif
  4. これは、通常のコピー・ペーストでは、セルが相対的な位置関係で参照されるため
  5. リンゴの比率を計算するときに、分母のセル指定を $B$6 と$記号をつけて参照することで、絶対参照できる
    • zettai1.gif → zettai2.gif
      	個数	比率
      りんご	10	
      みかん	15	
      ばなな	25	
      合計	50	

関数の利用

  1. 合計を入力したいセルをクリック(例ではC6)
  2. =sum( と入力し、マウスで合計したい数値の範囲をドラッグし、最後に ) を入力してリターン

正規表現検索・置換とエクセルの操作に習熟 [smile]

これまで何回か出てきた話だが、

テキストデータを"タブ"で区切れば、エクセルの表に簡単に移せる

ということだけは、覚えていてくれていると思う。今日もこの技をつかって、テキストデータをエクセルに移し、様々な操作をしてみよう。