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

  1. build.xmlを用いて、simBio_0.2_20050118.zipを作成。javadocを作成した。
  2. rc26とタグ付け。
  3. simBio_0.2_20050118.zip, javadocをwww.sim-bio.orgにuploadした。

2004/12/13

  1. javaHelpを2004/12/09版に更新。org.simBio.javahelpに配置した。

2004/12/3

  1. CrossBridgeNL.java, IsotonicContraction.javaを修正しました。 InextensibleLengthをvariableに変更しないとこれまでのモデルは動きません。

2004/11/16

  1. faber_rudy_2000, noble_et_al_1998を作成。
  2. プロジェクトsimBioからソースを含んだjarファイルを作成し、http://www.sim-bio.org/にsimBio-0.2-20041116.zipとして公開した。

2004/11/08

  1. これまでの、xml/matsuoka_et_al_2003/SAnodeCell.xmlをxml/matsuoka_et_al_2003/SAnodeCell_Euler.xmlに名前変更し、 新たにRunge-Kuttaで計算するxml/matsuoka_et_al_2003/SAnodeCell.xmlを作成した。
  2. これまでの、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に名前変更した。
  3. org.simBio.bio.matsuoka_et_al_2003.current.cf.ICaLにVshiftを導入した。
  4. dtが残り時間をオーバーしているときは、残り時間にdtを合わせるように設定。

2004/10/20

  1. プロジェクトsimBioからソースを含んだjarファイルを作成し、http://www.sim-bio.org/に公開した。

2004/09/17

  1. 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

  1. 引数に完全修飾クラス名を指定し、org.simBio.XmlGeneratorを実行すると そのクラスに対応するxmlを作成する。
  2. serialize.xml.XMLSerializer.getComponent(String className)を作成。 完全修飾クラス名に対応するインスタンスを作成する。 現時点ではNodeに対してはEulerを、doubleに対してはParameterを作成する。
  3. RungeKutta.setValue()でtempValueも更新するように変更。 vCell_RK2.xml, vCell_RK4.xmlなど、CaとCaTotalを区別していない物は動かなくなりました。
  4. csvおよびxmlの作成時、 file nameに存在しないfolderが含まれていたらfolderを作成するように修正。

2004/09/15

  1. org.simBio.core.Composite.getNodeが指定された名前のNodeが見つからないときに IndexOutOfBoundsExceptionを発生させるのではなく、nullを返すように変更しました。 Exceptionをcatchしている場合、代わりにNullPointerExceptionをcatchして下さい。
  2. serialize.xml.SAXHandler.startElementでgetNodeの返値にnullチェックするように修正。
  3. core.Initializer.getInstanceをcompositeとattributeを引数に取るように修正。
  4. csvMakerがisActiveが設定されていないときにNullPointerExceptionをthrowしてしまっていたのを、 設定されていなければ、記録するように修正しました。
  5. rc25とした。

2004/09/09

  1. core, sim, dm, bio, docsプロジェクトにバージョンrc23とタグ付けした。
  2. coreの全て, simの全て, dmの全て(xml/dmを除く), docsの全てをsimBioプロジェクトに移した。
    bioからは以下のパッケージを移した。
  3. simBioプロジェクトをcvsに登録。バージョンrc23とした。
  4. bioプロジェクトからcoreではなくsimBioプロジェクトをBuild Pathに含めるように変更。 Librariesの指定でcommons-logging.jar, log4j*.jarを一端削除. [Add Jars]ボタンを押して、simBioプロジェクトのlibフォルダーの物を選択。 バージョンrc24としてCVSに登録した。

2004/09/01

  1. バージョンrc22とタグ付けした。
  2. RungeKutta.javaのcycleは同期しているので、privateからstatic privateに変更。
  3. しかし、ResultGeneratorなど、複数のThreadでmodelを計算したときにerrorとなるので、元通りprivateに戻した。

2004/08/24

  1. RungeKutta.javaのnextCycleで次のcycleのdydt[]がyに足されていたのを現在のcycleの物が足されるように修正。 修正前はyの値が一定で4 cycle計算していた事になる。

2004/08/05

  1. profilingを行い、計算速度の向上を図った。約40%向上したか?
  2. IResetBeforeCalcをimplementsしているReactorの値のみゼロにリセットし、その後Reactor.calculateを順に呼び出すように変更した。
  3. 西君の作成した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の動作を確認。
  4. Runge-Kuttaでもdtをadjustするように変更。

2004/07/27

  1. encodingをshift-JIS (バージョンrc20とタグ付けした)からUTF-8に変更した。
  2. org.simBio.ResultGeneratorを整備、CVSに登録した。パラメータを振ったときの計算が出来る。
  3. 複数のxmlをまとめて一つのモデルxmlを生成するクラスorg.simBio.Composerを作成、 CVSに登録した。細胞モデルを直列に100個並べて計算できた。

2004/07/17

  1. Component.logIndented(String s)を@deprecatedに設定し、coreではそれぞれのClassで loggingするように変更した。

2004/07/11

  1. commons-loggingとlog4jを使ってlogを出力するように変更した。 カレントディレクトリのxml/log4j.xmlで設定する。
  2. org.eclipse.swtで作成したGUIも、グラフ表示速度はSwingとさほど変わらない。

2004/06/16

  1. Warningが複数回出力されないように抑制した。
  2. org.simBio.bio.matsuoka_et_al_2003にペーパーを再現できるモデルを登録。 xml/matsuoka_et_al_2003/ventricularCell.xmlで心室筋モデルが実行できます。

2004/06/9

  1. org.simBio.bio.hodgkin_huxley_1952を登録。
  2. org.simBio.bio.matsuoka_et_al_2003にペーパーを再現できるモデルを登録。 xml/hodgkin_huxley_1952/squid_axon.xmlで実行できます。

2004/02/24

  1. GUI改良版を登録しました。
    1. Menubarの整備(xmlファイルのopen close機能など)
    2. Toolbar設定がカストマイズ可 (Menubarのtool->optionからdrag & dropにてtoolbarに配置可)
    3. パラメータ設定画面のtree表示

2003/12/20

  1. 0.1できちんとparameterが変更されるように、Exchanger, FileNameExchanger.java, NumericalExchanger.javaを修正、 ParamChange.xmlで確認。
  2. Conductorを修正して、multi threadで、きちんと終了するようにした。Runも修正。
  3. core.XMLSerializerに比戸君のdmに含まれていたTStreamCoderを取り込んだ。
  4. dmのPartCsvMakerをsim.analyzer.csv.ALaCarteに移動。他のCsvMakerも名前を変更した。
  5. release 0.2でcsvがはき出せるように変更。sim以下をorg.simBioに変更した。PulseProtocol.xmlで確認。 analyzer.rdbは動作確認しておらず。

2003/12/08

  1. sim.serializer.xml.XMLSerializer.read()の引数にmodelを渡すようにして、 インスタンスが存在しているときは、xmlから読み込んだ値を設定するようにする。
  2. Run.javaのDebug.

2003/12/07

  1. 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"に置換してください。
  2. The arguments should be the full file name. Need to be include ".xml".
    引数に与えるxmlファイル名を拡張子も含めて与えるように変更しました。
  3. 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から起動した場合は、計算結果は保存されない。
  4. xmlのコメントは保存されない。
  5. core.Linkを作成。ようやくxmlのバックアップが完成した。xmlのタグとClass nameは1:1対応すべきである。 xml.Encoder.javaではxmlを書き出すとき、1つのclassに対して、1つのタグしか、書き出さない。
  6. logを抑制できるようにしました。java.util.logging.Levelを設定してlogを出力する。
  7. csv makerも同じ名前のfileが既に存在したら、backupを残しておくように変更。

2003/12/06

  1. The Run and RunGUI is moved from biosim.sim to biosim package of the bio project.
    RunとRunGUIをbiosim.simパッケージからbioプロジェクトのbiosimパッケージに移動しました。
  2. The Conductor is changed. Please modify parameters included in <model/>
    setLinks()を不要にした影響で、Conductorの持つparameterの名前を変更しました。 time step -> timeStep, elapsed time -> elapasedTimeのようにスペースを取り去って、Javaの名前付け規則に習った名前に変更しました。 xml上の名前を変更してください。
  3. Analyzer.graphのDebug. 最初からgridがきちんと表示されるようにしました。 それに伴い、Page ClassをViewer Classに変更し、parameterの名前も変更しています。 <page/>全体をコピーして、値を設定し直す必要があります。
  4. xml以下にbio以下のパッケージと同じfolederを作成した。
  5. Javadocを整理。Methodの順番をscope順にした。
  6. GUI, RunGUIの統合。modelを多数、GUI付きで作成できるようになった。graph grid問題解決。
  7. simBio packageの作成。
    1. docs/docs/apiにjavadocを作成する。
    2. ついで、coreをjp.ac.kyotoU.med.biosim.core.0.2.jarにExport
    3. bio, docs, simをfile systemにexportする。選択したフォルダーのみを作成を選ぶ。
    4. explolerでそれらをsimBio projectにコピーする。
    5. 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に変更しました。