この授業の前が体育であることもあり、授業の最初から全員がコンピュータの操作をすぐに始めるのは、なかなか難しい。そこで、授業の始めには、たいてい、グループディスカッションを持ってくるようにしている。
今日の最初の演習は、自分にとって研究者というのはどういうものかという意見をグループで話し合ってみること。まず、5分ぐらいで(遅れてきた人は、その間にログインしておくこと)
自分が「研究者」とはどういうものだと思っているか?
「研究者」になるためには、今からどんな準備をすればよいか?
を話し合ってみよう。また、ディスカッションの後、
授業のmoodleにアクセスして、「演習1」の質問に答えてほしい。
例年、1年生の中には、将来、研究者になることを志望している人が多い。また、学部生から修士にかけて生物を学ぶ間に、新たに研究者を目指す学生もでてくるだろう。そこで、一つの事例として、研究者になるために知っておくと得をするかもしれない、いくつかの事例を紹介しておこう。
題して、学部生から研究者を目指す学生が、今から知っておきたいこと
事項\年 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 ... | 2023.. |
学年 | 学部1年 | 学部2年 | 学部3年 | 学部4年 | 修士1年 | 修士2年 | 博士1年... | 博士4年 |
主な活動 | 授業 | 授業 | 授業 | 研究・院入試・卒論 | 研究 | 研究・修論 | 研究・論文... | 研究... |
目標 | 自分次第 | 自分次第 | 自分次第 | 院入試で上位 (奨学金に影響) 投稿論文を 目指した卒研 | 投稿論文発表 (投稿規定・論文書式) | 学振DC申請(5月) | 論文作成、学振PD申請... | 研究職応募.. |
サポート | 各種留学制度 | 各種留学制度 | 各種留学制度 | 各種留学制度 | 奨学金・返還免除・各種助成 | 学振DC1、奨学金、 各種助成... | 学振PD申請・ 海外学振申請、 助成金, 、奨学金返還免除. | |
Word・Excelの利用 | 実験・レポート | 実験・レポート | 実験・レポート | 研究・卒論 | 研究・論文・申請書 | 研究・学振申請書・修論 | 研究・論文・申請書・報告書... | 研究・論文・ 申請書... |
もしも、修士で第一種奨学金をもらえてそれが免除され、さらに、学振DC1ももらえたら、修士課程と博士課程での収入は、
事項\年 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 |
学年 | 修士1年 | 修士2年 | 博士1年 | 博士2年 | 博士3年 | 博士4年 |
奨学金+学振DC1 | 1,056,000 | 1,056,000 | 2,400,000 | 2,400,000 | 2,400,000 | 2,400,000 |
その他にも、学内、学内のいろんな制度で、海外学会に参加したり、留学したりできる(トビタテ留学!の募集要項は、共有しているDropBoxフォルダに入れておいた)。
学振の話しや、申請書の話しはまた次回以降にするが、皆さんに知っておいて欲しい大事なことは、
まずは、前回のおさらいから。
授業のmoodleページにアクセスして、演習2をやろう。
今日は1つ上のレベルの正規表現「後方参照」にチャレンジしてみよう。
K2Editorのヘルプで後方参照に関する項目を見てみると、次のように書かれている。
後方参照 正規表現の中で()を使ってグループ化された部分にマッチ文字列は、 ¥1,¥2などの表現で、 再度正規表現の中に埋め込むことが可能です。
ちょっと分かりにくいかも知れないが、半角の
()
の中で指定したパターンにマッチした文字列を、
¥1
などという記号を使うことで、呼び出すことができるということだ。
まず簡単な例で操作をしてみよう
テキストデータ: A9JA49K6 に対して、 Aの次の1文字と、そのAの並び順を入れ替えたい。
K2Editorで実際に試してみると:
テキストデータ A9JA49K6 ・Aに続く1文字とAの順序入れ替え 検索文字列 (A)(.) 置換文字列 ¥2¥1
では、もう少し具体的な例をつかって、段階的に説明してみよう。
まず、次のような書籍のリストがある。このリストを、K2Editorで開いてみよう。書籍リスト.txt
このリストには、出版年が含まれているにも関わらず、出版年の順番に並んでない。どうすれば、出版年で並び替えられるだろうか?
リストをよく見てみると
タイトル・著者,出版年,ページ・価格
という順番で並んでいる。ここで、
出版年だけを切り出して、 出版年 <タブ> タイトル・著者,出版年,ページ・価格
というリストを作り、エクセルにペーストして
出版年 | タイトル・著者,出版年,ページ・価格 |
という表を作り、出版年で並び替えれば良いということまでは、想像できるだろう。
では、出版年だけを切り出すにはどうすればいいだろうか?
まず、これまでにならった正規表現で表現できるところだけを書いてみると、
^ は行の先頭を表す [0-9]+年 は、数字の出版年を表す .*, は全角の,で終わる任意の文字列を表す $ は行の終わりを表すこれらを組み合わせて、
^.*,[0-9]+年.*$で1行の情報全てを表せるだろう。
検索文字列: ^.*,[0-9]+年で、
・琉球弧の成立と生物の渡来 木村政昭編著,沖縄タイムス社,2002年 ・植物の観察と実験を楽しむ−光と植物のくらし− 松田仁志著,裳華房,2004年 .....という出版年で終わる文字列は表せるけれど、これを年度に置換するときには、
置換文字列: 2002年 ^^^^今まで習った通りだと、何か置換文字列を指定しなければならない。
2002年 2004年 ....という異なる年度に置換したいので、一度の置換ではできそうにない。
検索文字列と一致した文字列を保存しておいて、置換文字列に使うということをやってくれるのが、後方参照だ。
前置きはともかく、まずやってみよう。新しく登場するのは、
( ) 半角のカッコで、検索文字列を囲んでおくと 置換文字列に半角の¥マークと数字を使うことで、 (例: ¥1 ¥2 こんな風に) 上でカッコで囲んだ検索文字列を呼び出せる。 では、上の書評リストを出版年と出版年以外のパートに分けて、カッコで囲んでみよう ^(.*,)([0-9]+年)(.*)$こうすることで、検索文字列で使われた( )内の文字列を、左から順番に置換文字列として指定することができる
(.*,) → \1 ([0-9]+年) → \2 (.*) → \3具体的に上の例の1行目で考えると
・絵でわかる細胞の世界 黒谷明美著,講談社, → ^(.*,) → \1 2001年 → ([0-9]+年) → \2 ,162ページ,2,000円 → (.*)$ → \3
出版年 <タブ> タイトル・著者,出版年,ページ・価格に置き換えてみよう。
検索文字列: ^(.*,)([0-9]+年)(.*)$ 置換文字列: \2\t\1\2\3
下に友達の誕生日リストが月、日、年の順で書かれている。
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
検索文字列:([A-Za-z]+) ([0-9]+), ([0-9]+) 置換文字列:¥3 ¥2 ¥1 あるいは 検索文字列:^([^ ]+) ([^ ]+), ([^ ]+)$ 置換文字列:¥3 ¥2 ¥1
また、上の例では
^ には2つの意味があるので注意!! ■検索文字列の最初においた場合は行頭から始まることを示す ^[A-Z].* で、行頭がアルファベット大文字で始まる任意の文字列 ■文字集合を表す[ ]の中で最初に置かれた場合、それに続く文字以外を表す [^a-z]+ で、英小文字以外の任意の文字からなる文字列 参考:$は検索文字列の最後に置かれた場合、行末であることを示す [a-z]+$ は、行末に続く英小文字の連続を示す正規表現の例のいくつかは、昨年度の学生の要望で作った、授業/H20/情報処理/正規表現熟語帳を参照してみよう。自分でこういう単語帳を作ってみると、正規表現への理解がますます高まるだろう。
やりたいこと | 検索文字列 | 対象文字列の例 | 置換文字列 | 置換された結果例 | コメント |
1行に含まれる全ての文字列を置換 | ^.*$ | abcdefg hijklmn 12345 opqrstu vwzya 98765 | Replaced! | Replaced! Replaced! | |
連続する半角スペースをタブに置換 | [ ]+ | abc def hij k | ¥t | abc<tab>def<tab>hij<tab>k | |
AまたはKをZに置換 | [AK] | BACK BaKery KABA | Z | BZCZ BaZery ZZBZ | |
AまたはKとそれに続く任意の1文字をZに | [AK]. | BACK BaKery KABA | Z | BZZBaZry ZBA | |
スペース以外の文字列の連続をtangoに置き換え | [^ ]+ | I am a boy. You are a girl. | tango | tango tango tango tango tango tango tango tango | |
1行を行頭からスペースで4つのパートに区切り、順序を逆に並べ替え | ^([^ ]+) ([^ ]+) ([^ ]+) (.*)$ | 12 34 56 78 90 Que sera, sera. Whatever will be. | ¥4 ¥3 ¥2 ¥1 | 78 90 56 34 12 Whatever will be. sera. sera, Que |
添付されているファイルsequence_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データベースのデータを使って、系統解析を行うときに、知っていると大変役に立つ。
今日から2回ほど、表計算ソフトの代表ともいえるExcel(エクセル)の操作を習得する。表計算ソフトは、コンピュータに作らせた表の上に数値を記入して計算させるもの。手計算では、表の中の一つの数値を変更したら他の数値も全てもう一度計算し直さなければならない場合も、表計算ソフトを使うと、他の数値は自動的に再計算される。このアイデアは、ハーバード大学の学生であったDaniel Bricklinが1979年が思いつき、VISICALCというソフトウェアとして実現したものだ。その後、表計算ソフトは、DOS/V機(日本ではPC-98)におけるLOTUS-1-2-3やWindowsにおけるMicrosoft Excelとして発展してきた。表計算ソフトは、ハードウェアの普及を促進したということで、パーソナルコンピュータにおけるキラーソフト(キラーアプリ)と呼ばれている。
5 8 1 2 3 4 5 6 7 8
これまで何回か出てきた話だが、
テキストデータを"タブ"で区切れば、エクセルの表に簡単に移せる |
ということだけは、覚えていてくれていると思う。今日もこの技をつかって、テキストデータをエクセルに移し、様々な操作をしてみよう。