History of simBio
Author
Nobuaki Sarai, M.D., PhD.
Department of Physiology and Biophysics, Kyoto University
Graduate School of Medicine, Kyoto, Japan
e-mail: sarai@card.med.kyoto-u.ac.jp
http://www.card.med.kyoto-u.ac.jp
2005/01/18
-
build.xmlを用いて、simBio_0.2_20050118.zipを作成。javadocを作成した。
-
rc26とタグ付け。
-
simBio_0.2_20050118.zip, javadocをwww.sim-bio.orgにuploadした。
2004/12/13
-
javaHelpを2004/12/09版に更新。org.simBio.javahelpに配置した。
2004/12/3
-
CrossBridgeNL.java, IsotonicContraction.javaを修正しました。
InextensibleLengthをvariableに変更しないとこれまでのモデルは動きません。
2004/11/16
-
faber_rudy_2000, noble_et_al_1998を作成。
-
プロジェクトsimBioからソースを含んだjarファイルを作成し、http://www.sim-bio.org/にsimBio-0.2-20041116.zipとして公開した。
2004/11/08
-
これまでの、xml/matsuoka_et_al_2003/SAnodeCell.xmlをxml/matsuoka_et_al_2003/SAnodeCell_Euler.xmlに名前変更し、
新たにRunge-Kuttaで計算するxml/matsuoka_et_al_2003/SAnodeCell.xmlを作成した。
-
これまでの、xml/matsuoka_et_al_2003/ventricularCell.xmlをxml/matsuoka_et_al_2003/ventricularCell_Euler.xmlに、
ventricularCell_RK.xmlをventricularCell.xmlに、
ventricularCell_RK_VC.xmlをventricularCell_VC.xmlに名前変更した。
-
org.simBio.bio.matsuoka_et_al_2003.current.cf.ICaLにVshiftを導入した。
-
dtが残り時間をオーバーしているときは、残り時間にdtを合わせるように設定。
2004/10/20
-
プロジェクトsimBioからソースを含んだjarファイルを作成し、http://www.sim-bio.org/に公開した。
2004/09/17
-
org.simBio.bio.matsuoka_et_al_2003.molecule.buffer.Ca.TroponinNLと
TroponinNL_RKとの関係を整理。重複部分を削除。収縮のATP依存性を削除。
org.simBio.bio.matsuoka_et_al_2004.molecule.buffer.Ca.TroponinNL_RK
にATPとPiへの依存性を導入しました。
2004/09/16
-
引数に完全修飾クラス名を指定し、org.simBio.XmlGeneratorを実行すると
そのクラスに対応するxmlを作成する。
- serialize.xml.XMLSerializer.getComponent(String className)を作成。
完全修飾クラス名に対応するインスタンスを作成する。
現時点ではNodeに対してはEulerを、doubleに対してはParameterを作成する。
- RungeKutta.setValue()でtempValueも更新するように変更。
vCell_RK2.xml, vCell_RK4.xmlなど、CaとCaTotalを区別していない物は動かなくなりました。
- csvおよびxmlの作成時、
file nameに存在しないfolderが含まれていたらfolderを作成するように修正。
2004/09/15
-
org.simBio.core.Composite.getNodeが指定された名前のNodeが見つからないときに
IndexOutOfBoundsExceptionを発生させるのではなく、nullを返すように変更しました。
Exceptionをcatchしている場合、代わりにNullPointerExceptionをcatchして下さい。
- serialize.xml.SAXHandler.startElementでgetNodeの返値にnullチェックするように修正。
- core.Initializer.getInstanceをcompositeとattributeを引数に取るように修正。
- csvMakerがisActiveが設定されていないときにNullPointerExceptionをthrowしてしまっていたのを、
設定されていなければ、記録するように修正しました。
- rc25とした。
2004/09/09
- core, sim, dm, bio, docsプロジェクトにバージョンrc23とタグ付けした。
- coreの全て, simの全て, dmの全て(xml/dmを除く),
docsの全てをsimBioプロジェクトに移した。
bioからは以下のパッケージを移した。
-
org.simBio.bio.hodgkin_huxley_1952
-
org.simBio.bio.kuratomi_et_al_2003.current.carrier
-
org.simBio.bio.matsuoka_et_al_2003
-
org.simBio.bio.negroni_lascano_1996
- simBioプロジェクトをcvsに登録。バージョンrc23とした。
- bioプロジェクトからcoreではなくsimBioプロジェクトをBuild Pathに含めるように変更。
Librariesの指定でcommons-logging.jar, log4j*.jarを一端削除.
[Add Jars]ボタンを押して、simBioプロジェクトのlibフォルダーの物を選択。
バージョンrc24としてCVSに登録した。
2004/09/01
- バージョンrc22とタグ付けした。
-
RungeKutta.javaのcycleは同期しているので、privateからstatic privateに変更。
- しかし、ResultGeneratorなど、複数のThreadでmodelを計算したときにerrorとなるので、元通りprivateに戻した。
2004/08/24
-
RungeKutta.javaのnextCycleで次のcycleのdydt[]がyに足されていたのを現在のcycleの物が足されるように修正。
修正前はyの値が一定で4 cycle計算していた事になる。
2004/08/05
-
profilingを行い、計算速度の向上を図った。約40%向上したか?
-
IResetBeforeCalcをimplementsしているReactorの値のみゼロにリセットし、その後Reactor.calculateを順に呼び出すように変更した。
- 西君の作成したRunge-KuttaをブランチRKに取り込んだ。
初めて出てくる
<variable>
タグにおいて,RungeKuttaもしくはEulerクラスを指定すれば,指定した積分方法により計算できる.
(classNameの部分を書かなければ,デフォルトのEulerで計算される)
bio/xml/matsuoka_et_al_2003/exp/RK.xmlにて確認可能。
org.simBio.bio.function.Concentration.javaは
org.simBio.core.integrator.Euler.javaをextendsするように変更、xml/km/ventricularCell.xmlの動作を確認。
- Runge-Kuttaでもdtをadjustするように変更。
2004/07/27
- encodingをshift-JIS (バージョンrc20とタグ付けした)からUTF-8に変更した。
-
org.simBio.ResultGeneratorを整備、CVSに登録した。パラメータを振ったときの計算が出来る。
-
複数のxmlをまとめて一つのモデルxmlを生成するクラスorg.simBio.Composerを作成、
CVSに登録した。細胞モデルを直列に100個並べて計算できた。
2004/07/17
-
Component.logIndented(String s)を@deprecatedに設定し、coreではそれぞれのClassで
loggingするように変更した。
2004/07/11
-
commons-loggingとlog4jを使ってlogを出力するように変更した。 カレントディレクトリのxml/log4j.xmlで設定する。
- org.eclipse.swtで作成したGUIも、グラフ表示速度はSwingとさほど変わらない。
2004/06/16
- Warningが複数回出力されないように抑制した。
-
org.simBio.bio.matsuoka_et_al_2003にペーパーを再現できるモデルを登録。
xml/matsuoka_et_al_2003/ventricularCell.xmlで心室筋モデルが実行できます。
2004/06/9
- org.simBio.bio.hodgkin_huxley_1952を登録。
- org.simBio.bio.matsuoka_et_al_2003にペーパーを再現できるモデルを登録。
xml/hodgkin_huxley_1952/squid_axon.xmlで実行できます。
2004/02/24
- GUI改良版を登録しました。
- Menubarの整備(xmlファイルのopen close機能など)
- Toolbar設定がカストマイズ可
(Menubarのtool->optionからdrag & dropにてtoolbarに配置可)
-
パラメータ設定画面のtree表示
2003/12/20
-
0.1できちんとparameterが変更されるように、Exchanger, FileNameExchanger.java,
NumericalExchanger.javaを修正、 ParamChange.xmlで確認。
-
Conductorを修正して、multi threadで、きちんと終了するようにした。Runも修正。
-
core.XMLSerializerに比戸君のdmに含まれていたTStreamCoderを取り込んだ。
-
dmのPartCsvMakerをsim.analyzer.csv.ALaCarteに移動。他のCsvMakerも名前を変更した。
-
release 0.2でcsvがはき出せるように変更。sim以下をorg.simBioに変更した。PulseProtocol.xmlで確認。
analyzer.rdbは動作確認しておらず。
2003/12/08
-
sim.serializer.xml.XMLSerializer.read()の引数にmodelを渡すようにして、
インスタンスが存在しているときは、xmlから読み込んだ値を設定するようにする。
- Run.javaのDebug.
2003/12/07
- The package
jp.ac.kyotoU.med.biosim is renamed into org.simBio. Please replace import,
for example, "import jp.ac.kyotoU.med.biosim.core.Node" into "import
org.simBio.core.Node".
jp.ac.kyotoU.med.biosimパッケージの名前をorg.simBioに変更しました。 インポートの編成を行ってください。
例えば、"import jp.ac.kyotoU.med.biosim.core.Node"は"import
org.simBio.core.Node"に置換してください。 -
The arguments should be the full file name. Need to be include ".xml".
引数に与えるxmlファイル名を拡張子も含めて与えるように変更しました。 - The result parameter set is Serialized as the same file
name of the input file in RunGUI. The input file is renamed into
*.bak?.xml. Run.java doesn't save results.
RunGUIから起動した場合は、計算結果を同じ名前でserialize。既に存在しているfileは名前を*.bak?.xmlに変更して保存しておくことにした。
Runから起動した場合は、計算結果は保存されない。 - xmlのコメントは保存されない。
-
core.Linkを作成。ようやくxmlのバックアップが完成した。xmlのタグとClass nameは1:1対応すべきである。
xml.Encoder.javaではxmlを書き出すとき、1つのclassに対して、1つのタグしか、書き出さない。
-
logを抑制できるようにしました。java.util.logging.Levelを設定してlogを出力する。
- csv
makerも同じ名前のfileが既に存在したら、backupを残しておくように変更。
2003/12/06
- The Run and RunGUI is moved from
biosim.sim to biosim package of the bio project.
RunとRunGUIをbiosim.simパッケージからbioプロジェクトのbiosimパッケージに移動しました。 -
The Conductor is changed. Please modify parameters
included in <model/>
setLinks()を不要にした影響で、Conductorの持つparameterの名前を変更しました。 time step -> timeStep,
elapsed time -> elapasedTimeのようにスペースを取り去って、Javaの名前付け規則に習った名前に変更しました。
xml上の名前を変更してください。 -
Analyzer.graphのDebug. 最初からgridがきちんと表示されるようにしました。 それに伴い、Page ClassをViewer
Classに変更し、parameterの名前も変更しています。 <page/>全体をコピーして、値を設定し直す必要があります。
- xml以下にbio以下のパッケージと同じfolederを作成した。
-
Javadocを整理。Methodの順番をscope順にした。
-
- GUI,
RunGUIの統合。modelを多数、GUI付きで作成できるようになった。graph grid問題解決。
- simBio
packageの作成。
- docs/docs/apiにjavadocを作成する。
-
ついで、coreをjp.ac.kyotoU.med.biosim.core.0.2.jarにExport
- bio, docs,
simをfile systemにexportする。選択したフォルダーのみを作成を選ぶ。
- explolerでそれらをsimBio
projectにコピーする。
- simBio projectをzipにexportする。
2003/12/05
1. instance treeが以下のようになるとき、
external
cell
NaChannel
4sGate
2sGate
/NaChannel
K1Channel
/cell
/external
全てのNodeをNodeListに登録する順序は、
4sGate
2sGate
NaChannel
K1Channel
cell
external
とした。これが、setLinks, prepareを呼び出す順序となる。
すなわちLinkを貼る順序、doubleに値を設定する順序になる。
2. CyclicAnalyserを削除。
3. package csvを改善。正常に書き出せている。
4. package graphを改善、整理した。しかし、1回目にgridが表示されない原因は分からず。
5. これに伴い、xml上でgraphとstop watchを変換する必要が生じた。
2003/12/04
1. Component.setLinks()で、自分自身がParameterでなく、かつ親に自分と同じ名前のNodeがあったら、
自分自身をリンクと見なし、自分の値(リンク先を表す文字列)を引数に親のgetLinkを呼んでリンクを張りました。
2. Parameter.prepare()で、親が自分と同じ名前のpublic doubleを持っていれば、自分の値を設定するようにしました。
3. bio/nl/Equation*を単純化しました。bio/xml/NL.xmlを実行してみてください。
2003/12/03
1. Composite.addNodeComponent component)で、reflectionを使って、
同じ名前のpublic Nodeを自分自身が持つ場合は、それがcomponentを参照するようにlinkを設定する。
xmlのname attributeと同じ名前のpublic Nodeを作成することで、setLinks()でgetNodeは不要となった。
制限: xmlに置いても、Javaの名前付け規則の制限を受ける。すなわちスペースを含む名前は付けられない。
これは、スペースを省いた名前と連結することで対応は可能だが、変換を挟まない方がより対応関係は明白になると考える。
2003/11/24
1. 必要最小限のNodeを用いる。残りはClass field "double"としてprepare()でgetNode().getValue()を使って値を設定する。
2. sim.functionを使うのを止め、新たにReactorを継承したkm.function.Functionを作成した。Functionを継承してRateConstantを作成しました。
3. package nl. gate. kmを上に沿って整備。NL.xml, excitableCell.xml, SingleNaChannel.xmlの動作を確認しました。
4. coreから余分なconstructorを削除。
5. sustainableCell.xmlを作成。NL.xml, SingleNaChannel.xmlの動作を確認。
2003/11/23
1. これまでのReactorをTreeReactorにrefactoring, 新たにReactorを作成。
ReactorのMethodsには、abstract setLinks, prepare, abstract calculateを作成した。
AnalyzerのMethodsには、abstract setLinks, prepare, abstract analyzeを作成した。
2. Visitorを使って、ReactorListに(Conductorを除く)Reactorを登録した。
external
cell
NaChannel
4sGate
2sGate
/NaChannel
K1Channel
/cell
/external
とある場合、ReactorListに登録し、計算する順序としては、
4sGate
2sGate
NaChannel
K1Channel
cell
external
とした。
Analyzerについても同様の手法で、AnalyzerListに登録し、呼び出す。
3. NL.xml, excitableCell.xmlの動作を確認。
2003/11/22
1. Molecule, Structure, Complexをcoreからbio以下に移動しました。
2. ConductorがVisitorを使ってAnalyzerListを作成するようにしました。
3. Constructor(Initializer)を削除して、Analyzerの中身をabstract analyze(double t)のみにしました。
4. ConductorがVisitorを使ってvariableListを作成するようにしました。
5. start()をprepare()にrefactoringしました。
6. NodeListを作成し、super.prepare, super.end, super.quitを廃止してnodes.prepare, nodes.end, nodes.quitに変更しました。
7. getElapsed()を廃止しました。
8. src.xmlが全て動くことを確認、rc12のタグを付けました。
9. Constructor(Initializer)を削除して、Analyzerの中身をabstract analyze(double t)のみにしました。
10. Csv関係をanalyzer.csvに移動しました。
11. serializer.xmlに含まれるClassの名前をrefactoringしました。
2003/11/21
1. sim.xml.TCorder.getInstanceをrefactor。Constructorをきちんと選択してinstanceを作成するようにしました。
2. setLinks()をsetInitializer()にrefactor。TCorder (呼び出しもと)からRefactorを始めることで、エラー無く全て変更できました。
3. Parameter以上は、インスタンス作成時に、setInitializer()でInitializerを受け入れて、親への参照、名前、値、単位を設定する。
4. all xmlが動くことを確認して、rc9のバージョンタグを付けました。jarも作成しました。
5. defult constructorでNL.xmlは動作確認。
6. init()をsetLinks()にrefactor。
7. sim.xml.TCorder.getInstanceをデバッグ。Errorに頼らずに、きちんとConstructorを判別するようにした。
8. sim.imageをsim.gui.imageに移動。
9. 今までのRunをRunGUIに、PresntationをRunに変更しました。
10. sim.ISerializerとsim.xmlをsim.serializer.xmlに移動しました。
2003/11
1. analyzeとcalculateの引数をdtからtに変更しました。