ラベル 有用な文書 の投稿を表示しています。 すべての投稿を表示
ラベル 有用な文書 の投稿を表示しています。 すべての投稿を表示

2014年4月11日金曜日

ORIGINの便利な技を紹介していくよ (未完)

今日はOriginLabのデータ分析・グラフ作成ソフトウェアのOriginの便利な使い方を紹介します。
ちなみに私が使っているのはver. 9.0.0Jということです。

Origin派とIgor派がいると思うんだけど、なんで私がOriginを使っているかというと、たまたまそこにあったからです。もうかれこれ7年位使ってます。

段々こなれてくると、同時に10個とか20個とかのデータをグラフにしたくなってくる場面があると思います。5個くらいまでなら手動でワークブックでX列とY列を選択肢して、作図。XYのスケールをそれぞれ変えて、線の太さや色を変えて、余白を設定して、グラフ全体の大きさを調節して、みたいなルーチンを行うわけです。

そうルーチン。ルーチンワークなら必ず全自動化できると考えるくせを付けたほうが良いです。

そこで今日私が紹介するのは、その名も「カスタムルーチン」です。


////////////////////////////////////////////////////////////////////////////////
// Main Code
////////////////////////////////////////////////////////////////////////////////

[Main]
aa$ = "Graph";
dd$ = "Book";
ff$ = "Layer";


// make line graph
loop(ii,9,16)
{
bb$ = $(ii);
cc$ = aa$+""+bb$;
cc$=;
ee$ = dd$+""+bb$;
ee$=;

layer.unit=1;
cc$!layer.left=10;
cc$!layer.top=10;
cc$!layer.width=80;
cc$!layer.height=80;


cc$!layer.x.from=0;
cc$!layer.x.to=270;
cc$!layer.x.inc=60;
//cc$!layer.y.from=-2.5;
//cc$!layer.y.to=5;
//cc$!layer.y.inc=5;

cc$!layer.showLabel=0;
cc$!layer.showData=1;

cc$!layer.showx=1;
cc$!layer.showy=1;

//cc$!legend.show=0;

range rGraph = [cc$];
rGraph.unit= 4;
rGraph.width = 5120;
rGraph.height = 2560;


}










plotxy iy:=[ee$]Sheet1!(1,2) color:=2 plot:=200 ogl:=[cc$];
//range rGraph = [cc$]Layer1!1;
//set rGraph -w 100;
loop(j,3,20)
{
plotxy iy:=[ee$]Sheet1!(1,$(j)) color:=19 plot:=200 ogl:=[cc$];
//range rGraph = [cc$]Layer1!$(j);
//set rGraph -w 100;
}


//page.unit = 1;
//cc$!page.width=36000;
//cc$!page.height=6000;






*/


//make graph 5120x5120 pixels


/*
range rGraph = [cc$];
rGraph.unit= 4;
rGraph.width = 5120;
rGraph.height = 5120;

cc$!layer.x.from=1.5;
cc$!layer.x.to=9.5;
cc$!layer.x.inc=1;
cc$!layer.y.from=9.5;
cc$!layer.y.to=1.5;

layer.unit=1;
cc$!layer.left=0;
cc$!layer.top=0;
cc$!layer.width=100;
cc$!layer.height=100;
*/

2014年2月27日木曜日

浜松ホトニクスのHC Imageのスケジューラ機能を使ってみた

基本的な理解が2点ある。

一点目。
蛍光イメージングをするんだけれども、励起光を照射してシグナルを得るわけ。
この励起光というのは細胞にとって毒性があるし、長いこと照射していると得られるシグナルが弱くなってしまいます (退色)。だからあんまり長いこと励起光を照射したくないわけです。

二点目。
得られるシグナルというのはノイズに比べて微弱なことが多い。そのため、加算平均 (アンサンブル平均)を行って、シグナルのみを増強し、ノイズレベルを落とす必要がある。
大前提として、脳は同じ入力に対してはほぼ同様に出力すると考えている。だから、50回とか同じ刺激を行ってそれを全部足し算して平均を出せば、刺激に対する平均的な応答が得られると考えて良いわけ。

50回とか連続して記録する必要があるのだけど、しかしながら、その間ずっと励起光を照射していると光毒性や退色によって均質なデータが得られないという問題が生じるわけです。

しかも一回刺激をしたら、定常状態に戻るまで待つ必要があるわけです。この間励起光の照射は必要ないわけです。

そこで前回 (浜松ホトニクスの新しいイメージングソフト (HC Image)をインストールしてみたの巻)で導入したように、光源のオン・オフをソフト上で外部刺激装置によって制御できるようにする必要があったわけです。

ここで、やろうと思っている刺激と記録と照射のタイミングは、文章にするとだいたい以下の通り。

(1) トリガ待ち (2) 光源ON (3) 記録始まる (刺激前、刺激中、刺激後) (4) 記録終わる (5) 光源オフ (6) 待つ →  (1)に戻る

これを50回繰り返せば良い。
この内、光源ON/OFFと記録開始のトリガによる制御は前回導入した通り、有償版のHC Imageによって達成できたわけです。

問題は 「(1)に戻る」の部分で、記録が一回終わったらもう一回トリガ待ちの状態に戻って欲しいわけ。そこで、浜松ホトニクスの有償版 HC Imageに搭載されている「スケジューラ機能」が必要となるわけです。


使い方は簡単でUse Schedularにチェックを入れると下記画像みたいになるので、Loop回数を決めて、一回のループ内容を決めれば良いのです。システム上、記録開始と光源のオン・オフが同期するということなので、一回目のパルスで光源オンと記録を行い、二回目のパルスで光源のオフを行います。どちらもタスクが終わるとトリガ待ちの状態に勝手になるので、あとは外部装置の設定で、記録終了後に2発目のパルスを即座に入れてやると光源が切れます。

Scan settingsの方は、ループのファイルをHC Image専用の.CXDファイルとして保存するか、.TIFF画像で保存するか、それをループ全体を一つのファイルとするか、ループごとにファイルを分けるか、という選択ができます。

それぞれのタスクごとに、ローカルディスクに保存するか、メモリに一旦格納してから終了後にディスクに書き込むかという選択ができます (右図)。

私の目論見では、一回のループでメモリに情報を蓄えて、次のループの待ち時間にメモリをディスクに保存してメモリを解放して欲しかったのですが、現状は、ループが全部終わるまでメモリを解放してくれません。
かと言って、いちいちローカルに保存しているとフレームレートが処理落ちします。まじ最悪です。

この点は浜松ホトニクスに改善を要求したいです!

うちのPCでは512x512画像は11714フレームまでしかメモリに格納しておけないわけです。本当は100fpsで高速にイメージングしたいのだが、この問題のためにフレームレートを下げるしかない。
仕方ない。

というわけで、30fpsで20秒間、16回ループをして全部で9600フレームの512x512画像が取得できました。

さて、加算平均するためには、刺激のオンセットが合ってないといけませんね。
そこで、テストとしてLEDを一回フラッシュさせる刺激を上記のループで16回イメージングしてみました。その結果が右画像なわけですが、キレイにオンセット合ってますね。
これでオートマティックに加算平均を行うことができます。


今回私は、記録と露光のON/OFFのループをソフトウエアを介して市販の外部トリガ装置を使って制御する装置を構築しました。
この機能はかなり便利で、原理上は僕の先輩がやっているように、24時間毎に1時間だけ露光して記録してというのを1週間行う、ということも可能なわけです (まぁそのためには外部トリガ装置をLabViewで組む必要があるけど、きっと数時間で出来ると思う)。

うちの大学の研究室なら前回と今回の内容で卒論になるね!笑



2014年2月18日火曜日

Labviewで任意の周波数の音のパルス幅を外部トリガーで駆動するソフトを作ってみたよ

皆様

任意の周波数 (音程)で最大20Hzくらいの間隔で音刺激をできるLabviewソフトを唐突に作ってみました。
ご自由にご利用下さいませ。




MASTER-9からDAQにパルスを入れてパルスに追随する形で音を出せます。
ピーピーピーもピピピピピピも行けます。

発想としては音量ゼロでずっと音を出しておいて、パルスがきた時だけ波形の振幅を1にするという感じです。

MASTER-9からは自発的に0-1の間の電位が発生しているので、閾値を決めてそれ以上の値がきたら音を出すというふうにします。
波形チャートにはその結果が波形として出力されます (なくてもいいけど)

MASTER-9から出力されるパルスは設定上の10Vで実質大体5Vくらいみたいです。
なので閾値は4くらいに設定しておくと安心みたいです。
サンプル数をもっと下げるともうちょっと高速のパルス幅で音が出せるかも知れないです。
ちょっとこのへんの関係がまだよく解ってません。

10回パルスの内1回だけ音の高さを変えるとかはまだできないので、そのうち改良します。

Sound discrimination task (GO/No GO)みたいなのができたらいいですね。

もうない

2014年2月17日月曜日

浜松ホトニクスの新しいイメージングソフト (HC Image)をインストールしてみたの巻

今回は浜松ホトニクスのイメージングソフトウエア HC Imageのインストールから設定までの記録を残しておく。

浜松ホトニクスのイメージングソフトウエアといえばAQUA COSMOSが有名だが、開発は日本が主導で、30-15年くらい前に一世を風靡したスライス培養や急性スライスのイメージングに特化したものであるらしい。たぶん私の指導教授も開発には大いに貢献したに違いない。

ところがあまりにもガラパゴス化したためにもっと汎用性のあるものを、ということで開発されているのがこのHC Imageで、
これはアメリカとヨーロッパと日本の共同開発であるらしい。一番の売りはなんと言っても64bitシステムで動くことか。

無償版はHC Image Liveといって、無償でこれだけの機能があるのかというくらい非常によくできたソフトでした。今回は実験の都合上、欲しい機能が付加された有償版を購入しました。

今回インストールしたPCはwindows 7 64bit版です。

1. インストールへの道のり

有償版はUSBドングルがないと動かないのですが、これを認識するのがSentinel Protectionというシステムらしい。調べた感じ、これは浜ホトに限った話じゃなくて一般的に有償のソフトウエアをプロテクトするのに用いられているみたい。

HC Imageをインストールすると途中でSentinel Protection Installerというのをインストールすることになる。私の場合、まずここで躓いた。

おそらく大半の初購入者は失敗することはないと思うが、Sentinel Protection Installerでググルと、「Sentinel Protection Installer インストールできない」とか「Sentinel Protection Installer エラー」と予測検索されるので、HC Imageにかかわらず失敗する人が多いのだろう。

なのでまずはここにその対策を記す。

私の場合は何度試しても「your system has not been modified」というエラーメッセージが出る。これは要するにインストールに失敗したということなのだが、考えられる原因は2つあって、(1) インストール先のフォルダーのパーミッション権限がないために拒否される (2) 古いバージョンが残っている、ということだ。

(1) 普通は管理者でログインしていると思うが、複数の人でPCをシェアしてる場合などは権限が限定されている場合もあるので、インストール先のフォルダー (なぜか/Program Files (x86)/Common Files)を右クリックして権限を確かめる、というのが一点。

(2) トラブルシューティングにある通り、
http://support.safenet-inc.jp/srm/information/faq/SuperPro_TS_FAQ_20120221.pdf
古いバージョンのレジストリなんかが残っているとダメらしくて、せっせと消したんだけどダメ。
たぶん初めてインストールする人はないと思うけど、以前業者の方に有償版をデモしてもらったときに残ったゴミが邪魔してるっぽい。

そんな人は、Sentinel System Driver cleanup の64bit版をダウンロードして実行すると良い。
http://sentineldiscussion.safenet-inc.com/topic/cleanup-utility-ssdcleanup

どちらが功を奏したのかは判らないが、とにかくうまくいった。丸二日かかったよ。

2. 外部装置との接続

前述で実験の都合でと書いたが、今回私がしたかったのは、(1) 光源の制御を外部トリガーで行うこと (2) 測定のルーチン化 (スケジューラー機能)の二つでこれは無償版ではできない。(2)はまた後日行うとして、まずは (1)について記す。

用いる外部刺激装置はAMPIのMaster9 (いわゆるスティミュレーター)、制御したい光源はLeicaのEL6000。
この機械はシリアルポート接続でトリガーを入れることができることは知っていたので、HC imageのI/O outputからシリアルポート出力を行えばよい。つまりソフトウエアを介して二つのハードウエアを制御するということだ。
このように多彩な外部機器との接続を可能としている点もHC Imageの利点である。おそらくどんな顕微鏡やフィルター・シャッター・光源・XYステージなどの外部装置もサポートされていると思われる。

用意するものは、(拡張) シリアルポート、9pinのオス-メス シリアルケーブル

次に、PCにトリガを入力し、ソフトウエアを制御する。ここで用いるトリガ制御ユニットは浜ホト純正のものを購入した。出力は後半の4チャネルで今回は6番- PIN15のNerrorを用いた。ここに外部刺激装置からの入力をBNCケーブルで接続する。

用意するものは、(拡張) プリンタポート、25pinのオス-オス パラレルケーブル

トリガ制御ユニットのoutからPCに接続。

これで準備完了。PCを介して、光源と刺激装置がつながりました。



3. HC Imageの設定

まずは、file→current profileからDevice settingのタブへ、I/O Devicesでadd、新しい接続を開始します。 (1) 一端はSerial-IO: COM4で、光源の4pinをCOM portとして選択 (これは光源装置の仕様)、それ以外はデフォルトで、光源のシャッターは切っておく。これで光源の制御がシャッターの開閉と同期します。 (2) もう一端はParallel- IO:LPT1でP15-nError がActiveなのを確認すればOK。




































LPT1とCOM4がactiveになっていれば良い。

次にTOPパネルのDeveicesからI/O setupを選択 Capture EventsのタブでInput PinsをP15に、stateはHighに
Frequencyはfirst fieldにしておけばよい。一方outputはExposure onをCOM4のPin4のhighを選択しておけばよい。

以上。明日は (2) スケジューリング機能の設定を頑張るよ。

2014年1月30日木曜日

ImageJのROIをmatlabで読み込む方法。

2014.Jan.30
 ImageJで作ったROIをmatlabに読み込む関数は以下のリンクから得ることができます。

http://www.dylan-muir.com/articles/read_ij_roi/
http://www.mathworks.com/matlabcentral/fileexchange/32479-import-imagej-rois

[sROI] = ReadImageJROI(RoiSetFile); 

使い方は簡単で、RoiSetFileに'.roi'ファイルかまたは'.zip'ファイルのフルパスを入力すれば読み込めます。
.zipの場合はセルを自動で作ってその中に全roi情報が格納されるようです。

セルの中に、mnCoordinatesという項目があってそこに、x座標とy座標の情報が登録されています。よって、

       xv = sROI{1,m}.mnCoordinates(:,1);
      yv = sROI{1,m}.mnCoordinates(:,2);

とすれば、m番目のROIの座標情報が取得できます。

 さて、問題は、取得できる情報は輪郭だけなので、囲んだ内部の情報が得たい場合は少し工夫が必要なようです。

今回は愚直に、512x512全ピクセルをスキャンして、その輪郭の内部にあるかないかを判定する関数、inpolygonを用いました。

あまり賢い方法とは言えないですが、これなら確実にROIの内部の座標が全部、indexに返ってきます。

indexの情報は新たに作ったROIindexというセルに全部放り込んで、後で取り出せるようにしておきます。

何かもっといい方法があったら教えて下さい。

例) 512x512画像の場合

function [ROIindex,numROI] = ReadROIindex(RoiSetFile)
% RoiSetFile = '0044-0257-0253.roi'
% RoiSetFile = 'RoiSet.zip'

    [sROI] = ReadImageJROI(RoiSetFile);
    numROI = size(sROI,2);
    ROIindex = cell([1,numROI]);

    for m = 1:numROI
        xv = sROI{1,m}.mnCoordinates(:,1);
        yv = sROI{1,m}.mnCoordinates(:,2);
        index = [];

        for x = 1:512
            for y = 1:512
                B = (x-1).*512+y;
                in = inpolygon(x,y,xv,yv);
                if in == 1
                   index = cat(1,index,B);
                end
            end
        end
        ROIindex{1,m} = index;      
    end
 
end

2011年7月5日火曜日

言語聴覚士のお仕事




  1. 国立障害者リハビリテーションセンター ホームページ: http://www.rehab.go.jp/
  2. 平成23年度 報道発表 吃音(どもり)の発症と聴覚の密接な関連を証明: http://www.rehab.go.jp/hodo/japanese/news_23/news23-01.html
  3. 千葉県野田市の地域の病院【医療法人社団 真療会 野田病院】: http://www.nodahosp.or.jp/
  4. 今日は医療法人社団 真療会 野田病院の「言語聴覚士」の西村くんが言語聴覚士の仕事とは?というタイトルで講演してくれた。彼は僕の大学の同期で、卒研を一緒に乗り越えた戦友でもある。
  5. 彼が言語聴覚士にならなかったら今でも僕はこの仕事を知らなかったと思う。言語聴覚士とは、主に先天性の難聴や事故や病気による失語症、舌癌などの発話障害や吃音などの患者さんのリハビリをヘルプする仕事である。
  6. 理学療法士が「足」、作業療法士が「手」を担当するのに対し、言語聴覚士は「口」を担当すると言われている。西村氏曰く、「しゃべるのと食べるのは表裏一体」。彼が扱うのは、コミュニケーションと摂食嚥下(ものを飲み込む)ということなのだ。
  7. 失語症とは、痴呆などの知能低下に伴わない(二次的でない)もので、ブローカー失語ウェルニッケ失語に大別される。ブローカー野は前頭前野に存在し、運動性言語=発話を司っている。ウェルニッケ野は側頭葉に存在し、感覚性言語=聴きとりを司っている。
  8. ブローカー失語は聴きとり理解はできるが、音声表出が困難な病気。ウェルニッケ失語は音声表出はできるが、聴きとり理解はできないという病気だ。つまり、つじつまの合っていることはしゃべれるのだが、相手の質問に答えることが困難であるらしい。
  9. 西村氏が現在担当している患者さんは「伝導失語」という病気を患っており、ブローカ野とウェルニッケ野を結ぶ神経線維に障害が生じている。このため、自分の意志で話すこともできるし、言っていることも理解できるのだが。「復唱」ができないという。
  10. バイリンガルは吃音になりやすい!?】右利きの人の9割以上は左半球に優位な言語野があると言われている。この「優位半球」が決まる前にバイリンガル教育を受けると吃音(どもり)になり易いという報告がある。
  11. 嚥 (えん)下障害は物を飲み込むことが出来なくなる症状で、通常は食堂に入るはずの食べ物や飲み物が気管に入ってしまうため、誤嚥性肺炎になってしまうリスクを伴う非常に恐ろしい病気である。山城新伍さんもこれでなくなったらしい。老人の死因のほとんどが肺炎であるが、この誤嚥性肺炎が大半だとか。
  12. 嚥下障害は、食べる喜び、生活の質、ひいては生きる歓びや治療への希望などにつながるものであるから、最優先にアプローチすべき問題であるという。患者さんの食事の質(流動食、おかゆ、固形、ネバネバ度合い)は言語聴覚士が判断するらしい。
  13. 言語聴覚士は国家資格であり、今後需要の高まる職業だと僕は思います。まだまだ認知度とお給料は低いがやりがいのある仕事だ!と西村氏も笑顔で言っていました。同期が頑張っている姿を見て誇らしいと思いました。
  14. 余談だけど、TMSが言語障害に対する有効な治療法として注目されているらしい。つまり、頭蓋骨の外から(脳に傷つけることなく)磁場を負荷してやることで、障害部位を治療するのだとか。今僕がやってる研究とも関連性が見いだせて、将来共同研究しようなどと盛り上がったのでした。



  15. 2010年6月13日日曜日

    セットアップにある赤い磁石

    これ↓なんですけど。


    F1000386.jpg


    セットアップにくっついてる赤い磁石。

    顕微鏡のステージがステンレスなので、何かを固定するには磁石を重宝してるんですが。
    実験では、画像にあるように二個くっつけて、高さを出して使用したりしてます。

    これって他のラボでもやってたりするのかなぁ。

    今まで気にもとめてなかったんですが。。。


    先日、理研の先輩にこれの正式名称はなんていうかわかりますかと聞かれて調べたんですけど。


    eclipse magnetic 社↓の
    http://www.eclipse-magnetics.co.uk/

    このページにあるやつということが判明しました。
    http://www.eclipse-magnetics.co.uk/taxonomy/term/14

    その名も、Alnico Button Magnets


    button-clipping-logo.jpg


    オンラインで買えます↓
    http://www.magnets2buy.com/acatalog/Alnico-Button-Magnets-edu.html

    うちで使ってるのはたぶんM4776ASR 12.5 dia. x 9.5 Alnico Buttonです。

    直径1.25cm 高さ 0.95cm で赤くペンキが塗ってある方ですね。



    これを専門で売ってる会社があるなんて驚きですね!
    エクリプス マグネティック社のアルニコボタン磁石。
    イギリスの会社だそうです。


    つくづく研究というのは色んな人の支えの中で成り立ってるんだなぁと思いました。


    日々感謝です!