DCM (Data Conversion Module) は,様々なデータ解析ソフトウェアやシミュレータ間でデータを共有するためのシステムです.このシステムでは,次に示すソフトウェアのデータをサポートしています.
AXON pClampの ABF 形式
AVS のフィールドデータ形式
テキスト形式ファイル
MATLAB の Matrix 形式
Mathematica のリスト形式
Genesisのdisk_out オブジェクト出力ファイル
Neuron の出力ファイル
TEAC 製ディジタルレコーダ DR-M2a / M3a の出力ファイル
例として,項4. 「NCS による神経回路網のモデリングシミュレーション」 で使用したサンプル (hhmodelE.sl) を使用します.
シミュレーションを実行し,Excel で読むファイルを作る手続きは,次のようになります.
[]SATELLITE[]~/home/demo:[1]% inline("hhmodelE.sl")
[]SATELLITE[]~/home/demo:[2]% V1=V[0]
[]SATELLITE[]~/home/demo:[3]% V2=V[1]
[]SATELLITE[]~/home/demo:[4]% V3=V[2]
[]SATELLITE[]~/home/demo:[5]% buffer2text("hhE.txt"," ,%8.4f ,%8.4f ,
%8.4f\n",V1,V2,V3)
これで,Excel で読むことができるファイルが作成され,Excel からファイル hhE.txt をテキスト形式 (カンマ区切り形式) で読んだ結果は,次のようになります.
式 (1) で作成されたデータを 図 9.2. 「式 (9.1) を Excel で実行した結果」 に示します.


但し,B 列が t,C 列が x を表しています.
Excel でタブ付きテキスト形式で保存すれば,SATELLITE 変数に代入することができます.SATELLITE で,このテキスト形式ファイルを読む例を次に示します.
[]SATELLITE[]~/home/demo:[6]% x=text2buffer("sweep.txt")
[]SATELLITE[]~/home/demo:[7]% index(x)
[0]:% 3000 3
[]SATELLITE[]~/home/demo:[8]%
[]SATELLITE[]~/home/demo:[9]% wopen(1,"A4",0,1)
[]SATELLITE[]~/home/demo:[10]% size(120,80)
[]SATELLITE[]~/home/demo:[11]% color("black","black")
[]SATELLITE[]~/home/demo:[12]% lwidth(1,1)
[]SATELLITE[]~/home/demo:[13]% origin(40,40)
[]SATELLITE[]~/home/demo:[14]% scale("N","F","N","F",0,3000,-1.2,1.2)
[]SATELLITE[]~/home/demo:[15]% graph(x[2],"T",0,0,0,0,0)
[]SATELLITE[]~/home/demo:[16]% title(1,"point","Amplitude")
[]SATELLITE[]~/home/demo:[17]% axis(1,1,"XY","XY",5,0,0,0,0,0)
[]SATELLITE[]~/home/demo:[18]% frame()例として,項4. 「NCS による神経回路網のモデリングシミュレーション」 で使用したサンプル (hhmodelE.sl) を使用します.
シミュレーションを実行し,MATLAB で読むファイルを作る手続きは,次のようになります.
[]SATELLITE[]~/home/demo:[19]% inline("hhmodelE.sl")
[]SATELLITE[]~/home/demo:[20]% buffer2matlab("V.mat","V",V)これで,MATLAB で読むことができるファイルが作成されます.MATLAB では,次のように関数を入力することで,Workspace に buffer2matlab 関数で指定した変数名で取り込むことができます.
>>load V.mat
取り込んだ結果をプロットするには,次のように入力します.
>>VT=V’ >>plot(VT)
結果を 図 9.4. 「実行結果」 に示します.
>>num=[4 5]
>>den=[1 3 2]
>>[k,p]=residue(num,den)
>>t=0:0.01:10
>>y=k(1)*exp(p(1)*t)+k(2)*exp(p(2)*t)
>>plot(t,y)
>>xlabel('time [s]'); ylabel('y(t)'); grid>>save time.dat t >>save outp.dat y
[]SATELLITE[]~/home/demo:[21]% matlab2satellite("time.dat")
[]SATELLITE[]~/home/demo:[22]% time = $"t"
[]SATELLITE[]~/home/demo:[23]% matlab2satellite("outp.dat")
[]SATELLITE[]~/home/demo:[24]% outp = $"y"
[]SATELLITE[]~/home/demo:[25]% wopen(1,"A4",0,1)
[]SATELLITE[]~/home/demo:[26]% color("black","black")
[]SATELLITE[]~/home/demo:[27]% sx = 80
[]SATELLITE[]~/home/demo:[28]% sy = 80
[]SATELLITE[]~/home/demo:[29]% origin(40,40)
[]SATELLITE[]~/home/demo:[30]% size(sx,sy)
[]SATELLITE[]~/home/demo:[31]% title(1,"time [s]","y(t)")
[]SATELLITE[]~/home/demo:[32]% graph(yout,tim,0,0,0,0,0)
[]SATELLITE[]~/home/demo:[33]% axis(1,1,"XY","XY",5,0,0,0,0,0)
[]SATELLITE[]~/home/demo:[34]% ltype(2,1)
[]SATELLITE[]~/home/demo:[35]% line(0,sy / 2,sx,sy / 2)
[]SATELLITE[]~/home/demo:[36]% ltype(1,1)
[]SATELLITE[]~/home/demo:[37]% frame()