おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 まだ読めないけど,Marco et al. (2011). Sensory Processing in Autism: A Review of Neurophysiologic Findingsは読んでおきたい.pediatric researchって読めるんだったかなあ PR 北大ローカルの話題ですが,調達課を経由した物品発注の方法を忘れそうなのでメモしておきます.マニュアルは分厚い(44p)わりにわかりにくいので.
とりあえずサンプルLISP-average.lspを解読してみましょう. (if p THEN ELSE)で表され,pが評価式です.サンプルでは, (if (> (length args) 2) (warn ...) (modification))となっています.これは,argsの個数が2以上であったとき--(length args)を,"args(inputの時に入力した引数リスト)の個数"と読み替えますと,(> argsリストの個数 2)と見ることができ,lispでは左端のシンボル(car)が関数として機能するよ,ということを考えると,argsリストの個数 > 2 のとき,と読み替えることができます--に,(warn ...)の処理を行い,そうでなければ,(warn ...)以降の処理をしますよ,ということを意味しています. 常識の人には常識のことを長々と書いていますが,たとえば,ファイルをinput (add) するときに,ある条件のファイルには1,別の条件のファイルには2という引数を与えて, (if (= (car args) 1) (then-modification) (else-modification))などとすると,1の引数を与えられたファイルと,それ以外のファイルで別の処理をひとつのbatch-processで行うことができたりするわけです.ここで,statesを呼び出せれば便利そうなんですが,ちょっと弄ってみましたがやり方は良くわかりませんでした. 続きます. 何がしたいのかというと、Neuromag付属(?)の解析ソフトGraphの、batch-processorの使い方がよくわからないので、使えるようになりたいということだったわけです。結局、cdrとかは使いませんが、ちょっとわかってきました。ちなみに、(require X)というのは、ようするにロードということですね。 さて、batch-processorをrequire(load)すると、commandにbatcn...というボタンが出てきますので、それを押してみますと、batch-processorのUIが出てきます。
Process definitionsの項には、statesとprocessがあって、その左側のselectボタンでどうやらファイルを呼び出せるようですが、stateは/neuro/lisp/examples/batch-state/stim1-2.lsp、processは/neuro/lisp/examples/batch-process/echo.lspくらいしか呼び出せないんですよね。新しく作ろうとおもって、NewとかEditを押しても、アラートが出るばかりで何もできないので、困り果てていたわけですが、ようするにstim1-2.lspとか、echo.lspというのは、lisp fileなわけなので、この中身とマニュアルをみればわかるんじゃないかな、ということで、とりあえず今回はbatch-stateの話を書きます。 マニュアルと総合して考えると、以下のようなことのようです。 とにかく、これだけ!非常に簡単なことでした。以下で多少詳解します。
resource (G-widget "widgetname") :keywordなどとします.ここで説明すると冗長になるのですが,たとえばpick widgetにMEGという名前をつけていて,このマグネトメータを除去したいという場合は,おそらくここで resource (G-widget "MEG") :ignoreなどとすると良いでしょう(実際の値は,次の項で指定します). resource (G-widget "MEG") :ignoreの場合は,ここに(MEG*)とかですかね…?ちょっとやってみたわけではないのでなんとも言えませんが. 具体的には,たとえばこのようにします. (define-batch-states sta-dev-averagerこれで,バッチ処理をするファイルがfile1.fif, file2.fif, file3.fif...だとすると,file1_sta.fif, file2_sta.fif, file3_sta.fif...に対しては"trigger1"(uniaryで,thresholdをfeql(1)にしているもの)を使って処理をし,file1_dev.fif...に対しては,"trigger2"を使って処理をします,という状態を定義している,ということになるのだと思います. なお,複数要素を組み合わせたいときは、combineという関数を使います. (combineこのようにすれば、AS1, BS1ができるようです。これは完全にマニュアルのコピペ(ほぼ)なので,試してみてはおりません.おそらく単純な組み合わせしかできない(たぶん)ので、あまり多くすると大量にできすぎると思われますが,それこそバッチの意味があるところなので,このあたりは程よいところを見つけていく,ということになるでしょう. あけましておめでとうございます。本年もよろしくお願いします。 さて、時代はLispということで、ちょっとだけ理解したことを書いて行きます。嘘です.Neuromagの分析ソフト,GraphなんかはLispで書かれているので,ちゃんと理解した方が良いかなという話です.今日は基本的なところ.
|
カレンダー
カテゴリー
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
アクセス解析
カウンター
|