表紙(FrontPage) | 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | 検索 | 更新履歴

論文の統合開発環境を考える -

目次

OneNote を論文作成につかう

研究資産(データファイル、文献等)の管理(所在、内容をわかりやすくする)

Concierge と言うソフトウェア

メタデータに基づく研究資産管理ツール : Concierge [in Japanese]    堺、槇村、山地、臼井 各博士ら  IEICE technical report. Neurocomputing 105(659), 97-100, 20060310 [Index] http://ci.nii.ac.jp/naid/110004680400

Concierge のように、それぞれのファイル、プロジェクトについての関連情報を保存、検索できると便利だろう。ファイル名と日付だけでは、どんな内容かわからなくなってしまいやすい。全文検索ソフトが有用だが、適当な検索語が浮かばないこともある。

Concierge では、「メタファイル」をつくり、それぞれのデータファイルの所在、内容に関するキーワード、説明などを付加する。このアイデアを拝借し、OneNote で似たようなことを実現することができる。Onedrive と組み合わせることで、研究室でも自宅でも同じものを見ることができる。 OneNote でページを作り、表題をつける。マイクロアレイの結果のファイルをまとめたければ、「マイクロアレイ結果」という表題にする。ファイルに対するリンクを挿入する。その横に、そのファイルに関する説明やキーワードを書いておく。

問題点として、そういうリンクを付けたり説明、キーワードを書くこと自体がとても面倒で手間がかかると言うことがある。自動でそういうことを行うようなしくみを作らないといけない。

一つの案: Excel で実験結果を記録したファイルを作成したら、必ず「説明」という名前のシートをつけるようにする。そこにそのファイルに関する説明、キーワードを記入する。

定期的にディスク内の Excel ファイルの名前の一覧を作る。 それらのファイルから、それぞれ「説明」シートを読み出す。「説明」シートがなければパスする。 そこに書いてある説明、キーワードを取り出す。すべてのファイルについて行い、一覧表にする。

実際にやっていること: Excel にデータを並べておいて、グラフ作成は R studio で行う。その方がやりやすい。 グラフをエクスポートする際に、メタファイル emf 形式で出力できる。この形式だと線はベクトルで表現されるので拡大してもぼやけない。 そのためにスクリプトをいちいち書かないといけないが、それは仕方がない。 そのスクリプトに、データを保持しているエクセルファイルのファイル名を書く。

そのことによって、データを保持しているエクセルファイルがどこにあるかが記録され、行方不明にならなくなる。


轟 眞市 先生らによって「ブログベースの実験ノート」に関する論文が発表されている。 http://samurai.nims.go.jp/TODOROKI_Shin-ichi-j.html   私も、http://www.geocities.jp/wikistyle/   で公開されている、スケジュール管理等に使えるすばらしいソフトウェア GTD Style Wiki を使って研究の簡単な日誌のようなものをつけていた(一日一行で、何をしたかを簡単にまとめて書いている)。

その後 TiddlyWiki がバージョンアップした・ブラウザのセキュリティがきつくなったので、 TiddlyWiki 5 の日記機能を使うようになった。同じことが一応できる。

これと OneNote を組み合わせると、素人でも簡単に轟先生のシステムと似たことができることに気がついた。 日誌は一ヶ月たまったら一ヶ月分を丸ごとコピーして、OneNoteの新規ページに貼り付ける。そのページに、研究で生じたファイルに対するリンクを貼り付けておく。写真、画像ファイルならそのまま貼り付けることができる。日誌では書ききれなかった考察などを加えることができる。一ヶ月おきに自分がしたことを振り返って反省することができてよいかもしれない。

論文を書くのに参考になる文書も、OneNoteにためておける。

Discussion_のテンプレート

論文を書くのにマイクロソフトワードを使う。しかし論文を書くのに最適化してあるわけではない。高機能エディタとしては、たとえば gvimというものがある。スペルチェック、コメント、キーワードの色づけなどができる。特に色づけは論文を書くのにも便利かもしれない。様々なプラグインが開発されているので、自分で頭をひねらなくてもすむ。

_gvimrc の最後に set spell, syntax on と書いておく。それ以外にもいろいろ追加する。

下書きを「Story.txt」というファイルに書くことにする。「_gvimrc」に、

 au BufNewFile,BufRead story.txt			setf flexwiki
 と追加する。これで「Story.txt」を読み書きする際に flexwiki の色づけが適用される。flexwiki の設定は文章を書くのに適している。

専門用語はスペルチェックで全部下線が引かれる。flexwiki の設定ファイル(syntax フォルダにある)をコピーし、

 syntax match flexwikiBold           /Arabidopsis/
 syntax match flexwikiBold           /anthocyanin/

のように書き足す。そうすると専門用語は太字で表示される。その改造した syntax ファイルを色づけに使うように設定する。

ctrl-P で、それまでに入力した単語を補完するリストが出てくる。自分で作った補完ファイルからもリストできる。

 " 全角スペースを表示
  highlight JpSpace cterm=underline ctermfg=Blue guifg=Blue
  au BufRead,BufNew * match JpSpace / /
 " 補完ファイルを設定
 :set dictionary=$HOME/vimfiles/PlantPhysiol.dict
 " 補完ファイルを使用する ctrl-x, ctrl-k
 :set complete+=k

さらに autocomplpop.vim (Takeshi NISHIDA 氏の作品)をインストールした。これはすばらしい、優れたプログラムである。 候補になる単語を、書いている文章から候補として自動的に出してくれる。

「英辞郎+PDIC」を同時に動かしておく。ワードも立ち上げておいて、「校閲」にある「類義語辞典」を開けておく。

http://docman.dbcls.jp/im/  逐次PubMed/MEDLINE表現検索 inMeXes というすばらしいページが公開されている。PubMed に出現する英文用例を検索し、使用頻度を知ることができる。Google による検索は、「英単語、熟語、英文用例集」のようにも使えてきわめて有用である。これらの検索によって、用例がある、一般的な表現を選んでいくことができる。英文校正の代わりになる。

「ある特定の単語がどのような文脈で使われているか、他の論文から文例を確認」というホームページを、Springer 社が公開している。これはとても便利である。     http://www.springerexemplar.com

_vimrc に、以下のように書いておくと検索が楽にできる。"Search the web for text selected in Vim" というページを参考にした。

 " Search a selected phrase with google
 " Select, then type ctrl+C, c, c (map to cc)
 " %22 means quotation mark. Substitute(@*, ..) changes word separator from space to "+".
 vmap cc <Esc>:silent exec
  \ ":!start \"C:/Program Files (x86)/Mozilla Firefox/firefox.exe\" http://www.google.com/search?q=" . '\%22' . substitute(@*, '\W\+\\|\<\w\>', '+', 'g') .  '\%22'<CR><CR>

逐次PubMed/MEDLINE表現検索 inMeXes のほうは、jsonp という仕組みで使用させていただくことができる。

 vmap vv <Esc>:source D:/(path)/jsonp.vim<CR>

jsonp.vim というスクリプトを呼び出すようにした。http://mattn.kaoriya.net/software/vim/20070731150740.htm   を参考にさせていただいた。

 "Curl というプログラムを入れておく。パスにスペースが入るとうまくいかないので、D:\bin\Curl とか適当に作っておく。
 function! GetJsonP(url)
  let ret=system("D:/パス/curl.exe -s \"".a:url."?callback=JsonHandler\"")
  let ret = substitute(ret,'\\u\([0-9a-zA-Z]\{4\}\)','\=nr2char("0x".submatch(1))','g')
  return ret
 endfunction

 let url2 = "http://docman.dbcls.jp/im/pmhits?q=" . substitute(@*,'\W\+','%20','g') . "&d=10"
 let jsonp = GetJsonP(url2)
 let anslist = split(jsonp, ']')
 echo '_______________________'
 let c=0
 while c < len(anslist)
	echo anslist[c]
	let c += 1
 endwhile
 let choice = confirm("OK ?", "Yes \nNo", "", "Error")
 if choice == 0
    :echo "."
 elseif choice == 1
    :echo "."
 else
    :echo "ERROR"
 endif

こういう仕組みを組み込んでおくと、とても便利である。ワードではこんなことはやりにくいだろう。VBAを使えばできるのかもしれないが、vim ならすでにすばらしいスクリプトが存在するので、それらを少し手直しするだけで素人でもうまくいく。

環境を整えた後は、本人の頭の問題になる。

vim: set ts=8 sts=2 sw=2 et ft=a111_modified_flexwiki textwidth=0 lsp=12: