-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathChangeLog
396 lines (359 loc) · 19.9 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
### CHANGELOG FORMAT:
yyyy-mm-dd Your Name <[email protected]>
* file ( method in file ) : changes.
###
2020-01-03 Inge Wortel <[email protected]>
* misc : added this folder for some helper scripts etc, and moved some
stuff here.
* misc/fix-docs.bash : the ESDOC parser that converts markdown to html
doesn't recognize iframes and displays code blocks weirdly if they overflow.
This bash script fixes that.
* src/simulation/Simulation.js : slight change so that SHOWBORDERS is no
longer an obligatory argument in conf (defaults to false now).
2020-01-02 Inge Wortel <[email protected]>
* manual : added a folder to write a manual (automatically via ESDOC).
Write manual here and add the required pages to .esdoc.json for the index.
* manual/index.md : added.
* manual/installation.md : added
* manual/quickstart.md : added.
2020-01-01 Inge Wortel <[email protected]>
* spec/grid/Grid3DSpec.js : added this file with tests for neighi and
pixelsi methods on the 3D grid.
* spec/grid/Grid2DSpec.js : extra tests added: testing neighborhoods for
specific cases.
* spec/grid/GridExtensionSpec.js : doc-blocks only.
* build : updated
2019-12-31 Inge Wortel <[email protected]>
* spec/grid/GridExtensionSpec.js : added a file of tests that should be
met for any grid subclass. It also has a section of tests that only need
to be fulfilled by grid subclasses that implement diffusion.
* src/grid/Grid.js : minor changes in the errors thrown.
* src/grid/Grid2D.js : minor changes in docs etc.
* spec/grid/Grid2DSpec.js : rigorous tests for neighborhood and gradient
methods added.
* build : updated.
2019-12-30 Inge Wortel <[email protected]>
* Added a copy of the fpsmeter package to the right folder in the examples
folder to fix a problem with the 3D examples not working.
* .eslintrc.js : added compatibility with jasmine (for the WebStorm editor).
* .esdoc.json : set up the config so that also an overview of tests is
listed, and a link to the github repo.
* spec/LocalConnectivityConstraintSpec.js : Updated doc blocks to link tests
to the documentation with the @test tag. Minor bug fixed.
* examples/build-examples/Makefile : set up automatic generation of node
scripts with short burnin & runtime for rapid automatic testing of all the
examples.
* Makefile : split testing procedure (target test-all) into jasmine spec
tests and separate testing of the examples.
2019-12-29 Inge Wortel <[email protected]>
* spec/grid/GridSpec.js : tests added for the Grid superclass.
* app/include-list.txt : Grid superclass added to the build so it can
be tested more easily.
* src/grid/Grid.js : errors added when methods are called that should be
implemented in the subclass but haven't been. Added setter/getter for the
private pixels array so that an error can be thrown when this is undefined.
Check for negative/floating point values when grid is Uint16, because this
gives weird bugs if you try to set such a value on the grid.
* src/grid/Grid2D/3D.js : save datatype as a grid property so the
isValidValue method knows which values are valid on a grid instance.
* spec/LocalConnectivityConstraintSpec.js : Updated tests.
* src/hamiltonian/LocalConnectivityConstraint.js : Updated docs.
2019-12-20 Inge Wortel <[email protected]>
* src/hamiltonian/SoftLocalConnectivityConstraint.js : changed code so that
the neighborhood type used to compute connectivity can be changed through
the conf object (NBH_TYPE key).
* spec/hamiltonian/SoftLocalConnectivityConstraintSpec.js : added tests for
this constraint.
* src/hamiltonian/SoftLocalConnectivityConstraint.js : added this version of
the local connectivity constraint, where copy attempts disrupting
connectivity are not forbidden explicitly but strongly discouraged via a
large deltaH penalty.
* spec/hamiltonian/LocalConnectivityConstraintSpec.js : added tests for this
constraint.
2019-12-19 Inge Wortel <[email protected]>
* spec/ : Set up interface for automated testing using jasmine, where tests
go in this folder.
* spec/grid/GridSpec.js : initial tests for the Grid.js superclass.
* spec/hamiltonian/LocalConnectivityConstraintSpec.js : initial tests for
the local connectivity constraint.
* src/hamiltonian/LocalConnectivityConstraint.js : added this constraint.
2019-12-17 Inge Wortel <[email protected]>
* docs : updated.
2019-12-13 Inge Wortel <[email protected]>
* README.md : Added tumor infiltration example to the list.
* docs/index.html : Tumor infiltration example is now in here too.
2019-12-09 Inge Wortel <[email protected]>
* Set up github pages for this repo.
* README.md : small changes.
* examples/ : examples html folder restructured so it doesn't depend on
any other folder and can be copied into the docs.
2019-12-02 : Inge Wortel <[email protected]>
* README.md : Added cancer invasion example to the docs.
2019-11-30 Inge Wortel <[email protected]>
* README.md : fixed mistake in example code.
* examples/ : imgrate in the examples set to 1 so that ffmpeg works.
* examples/ : CancerInvasion example added.
* LICENSE : created an MIT license.
* docs/ : updated and added to the repo.
2019-11-29 Inge Wortel <[email protected]>
* README.md : Added more examples and fixed it so that this now works
directly from the README, as well as from docs/index.html
* src/hamiltonian : removed experimental constraints and updated
documentation.
* docs/ : updated documentation.
* Removed several old files.
* simulation-examples : removed this directory and restructured it into
examples/.
* src/models/GridBasedModel.js : replaced mersennetwister by
mersenne-twister, an MIT licensed version.
* examples/3D/ : 3D examples added.
2019-08-21 Inge Wortel <[email protected]>
* src/grid/Grid.js : The torus property is now an array with a boolean
value for each dimension separately. It is therefore now possible to have a
torus in x dimension, but not in y-dimension. Methods listening to the torus
are also compatible with this update now.
* src/grid/Grid2D.js : Made neighborhood computation compatible with new
specification of the torus property.
* src/grid/Grid3D.js : idem.
* src/grid/CoarseGrid.js : is now an extension of the Grid2D class so that
neighborhood methods are also available when a CoarseGrid is supplied to a
Canvas.
* src/grid/GridManipulator.js : now also compatible with the new way of
specifying a torus.
* docs : removed from git for now because it's annoying. Type 'make docs' to
create them locally.
* src/hamiltonian/ChemotaxisConstraint.js : updated jsdoc example code with
new torus syntax.
* src/hamiltonian/ProtrusionConstraint.js : updated with new torus syntax.
* src/hamiltonian/PreferredDirectionConstraint.js : updated with new torus syntax.
* src/hamiltonian/AttractionPointConstraint.js : updated with new torus syntax.
* src/hamiltonian/PersistenceConstraint.js: updated with new torus syntax.
* src/models/CPM.js : updated jsdoc comments with new torus syntax.
* src/models/CA.js : updated jsdoc comments with new torus syntax.
* src/models/GridBasedModel.js : made compatible with new torus syntax.
* src/simulation/Simulation.js : centroid computation now compatible with
new torus syntax.
* src/stats/CentroidsWithTorusCorrection.js : now compatible with new torus
syntax, performing
the correction only in the necessary dimensions.
* src/stats/CellNeighborList.js : updated jsdoc example with new torus syntax.
* src/stats/Centroids.js : included check for torus and warning not to use
this stat if there is.
* examples/* : made compatible with new torus syntax.
* simulation-examples/* made compatible with new torus syntax.
2019-08-20 Inge Wortel <[email protected]>
* src/simulation/Simulation.js : change in default drawing method for cells
on the grid.
* src/Canvas.js : Changed method to draw a chemokine field, which now uses
transparency
and a color of choice rather than only the default red-on-black color.
* README.md : Added some links to examples. Note these only work when
opening this file
from the docs/index.html.
* src/hamiltonian/SoftConnectivityConstraint.js : Added soft connectivity
constraint (experimental).
2019-08-19 Inge Wortel <[email protected]>
* src/hamiltonian/ConnectivityConstraint.js : Added connectivity constraint
(experimental).
* src/Canvas.js : Added method to draw contour of chemokine field.
2019-08-08 Inge Wortel <[email protected]>
* docs : documentation now almost finished. Many src files have been
modified to include esdoc syntax for automatic documentation (doxygen-like).
Open the docs from docs/index.html. If functions change, the associated
documentation should from now on be changed as well. Note that I have
defined some special variable "types" (red entries in the left menu in
docs/index.html) that should be used in the documentation when
appropriate. Use "make docs" to update documentation.
* old : new folder for old implementations that don't have to be in the
build anymore.
* old/AdhesionMultiBackground : moved from src/hamiltonian/... because
this constraint doesn't really work.
* src/grid/grid-typedef.js : file with some esdoc @typedefs associated with
the grid.
* src/grid/models/model-typedefs.js : file with esdoc @typedefs associated
with the models.
* src/grid/stats/stat-typedef.js : file with esdoc @typedefs associated
with stats.
* src/grid/hamiltonian/constraint-typedef.js : file with esdoc @typedefs
associated with constraints.
* src/hamiltonian/ParameterChecker.js : moved confCheck functions from
Constraint.js to this new class, and changed the functions so that they
are more structured. See the documentation for usage.
* src/stats/CellNeighborList.js : new stat ported from the old Stats class,
but hasn't been properly tested yet.
* src/stats/BorderPixelsByCell.js : new stat.
* build-makeout.bash : keeping track of the makefile dependencies
automatically didn't really work, so now this script just makes a special
makefile to handle the dependencies.
2019-08-05 Inge Wortel <[email protected]>
* app/automatic-index.bash : script automatically generates app/index.js
from a standard file app/include-list.txt. This ensures that both the
Makefile dependencies and the app index can be kept up to date from a single
file. See app/include-list.txt.
* app/include-list.txt : file that keeps track of which modules are used in
the build, and which should be exported. See this file for the format.
* Makefile : app/index.js and makefile dependencies now kept up to date
automatically from app/include-list.txt.
* src : Moved all source code into a folder src/. This will help generating
automatic documentation using esdoc.
* app/index.js : Fixed the new paths using the src folder.
* Makefile : Fixed the new paths using the src folder.
* node_modules : installed "esdoc": "^1.1.0" and "esdoc-standard-plugin":
"^1.0.0", and these are added to package.json.
* docs : Added documentation using esdoc (not finished yet, but accessible
from docs/index.html)
2019-08-01 Inge Wortel <[email protected]>
* hamiltonian/AdhesionMultiBackground.js : Added a new form of the adhesion
constraint, where a set of pixels on the grid is given different parameters
when it is background.
* hamiltonian/ActivityMultiBackground.js : Idem for the Act model. This
allows building adhesive micropatterns on the substrate for the cell to
move on.
* simulation-examples : new examples added for the GameOfLife CA, and one
for the micropatterned substrate.
2019-07-16 Inge Wortel <[email protected]>
* grid/GridManipulator.js : reset stats after cell division, because
the cellpixels stat is out of date
* models/CPM.js : added a method getConstraint() to retrieve a
constraint by name. This is useful for drawing methods that need
attributes stored in the constraint object.
* simulation/Simulation.js : Made compatible with the new version of
the CPM in which constraints are added automatically.
* simulation-examples/new-simulation.bash : changed this so that
it now works differently. Run with
"bash new-simulation.bash <simulation-name>",
which will produce a file simulation-files/<simulation-name>.js
that serves as a template for the html/node files.
This file is produced from simulation-files/Template.js, and contains
both configuration object and custom code for that simulation.
See the provided examples for details. After editing the template in
simulation-files/<simulation-name>.js, type "make" from the
simulation-examples folder to produce the html and node files.
* simulation-examples/write-example-html.bash and write-example-node.bash
have been adjusted to use the new method.
* simulation-examples/Makefile : this now contains a target
"test-node-examples", which runs all the examples in the
simulation-examples/node folder, to see if they work without any errors.
2019-07-18 Johannes <[email protected]>
* PreferredDirectionConstraint.js: Renamed to to PersistenceConstraint
* Constraint.js: confChecker no longer obligatory as this makes implementing
new custom constraints unnecessarily bureaucratic. Instead the method will
be called when available.
2019-07-13 Inge Wortel <[email protected]>
* hamiltonian/ActivityConstraint.js : changed the name of the old version
to hamiltonian/ActivityConstraintOld.js and the name of the new version
to hamiltonian/ActivityConstraint.js, and updated app/index.js and Makefile
accordingly. For the difference between those two versions, see entry of
2019-03-09 in this ChangeLog.
* I have now made it obligatory for every constraint to implement a
confChecker() method, which checks if the required configuration parameters
are actually present in the supplied conf object and have the right format.
See the code in the main Constraint.js class for some default checker methods
that should be usable for most constraints you can imagine. Note that some
examples may not work right now if the nCellKinds is not present in the conf.
2019-07-12 Inge Wortel <[email protected]>
* stats/CentroidsWithTorusCorrection.js : fixed it so it works now.
* simulation/Simulation.js : added a class for setting up a simulation
that removes a lot of the boilerplate code. Still trying to work out
what should and should not be in there by default, but it's a start.
* simulation-examples : started a new folder for examples generated
using simulation classes. This way, the node and html examples can be
generated automatically from a single file. To do this, call
'bash new-simulation.bash' <mysim> <basic/custom> from the
simulation-examples/ folder. This will set up a new config file in
simulation-files, which you can then edit. It will also add the simulation
to the Makefile. If <basic>, the StandardSimulation.js class is used;
otherwise, the boilerplate code for a new class is generated in <mysim>.js.
You can then adjust the config and class files, and type 'make' to
produce the node/html examples.
* simulation-examples/Makefile : This automatically generates a node and
html version of each example.
* simulation-examples/write-example-html.bash : Writes an html version
of a simulation.
* simulation-examples/write-example-node.bash : Writes a node version
of a simulation.
* simulation-examples/new-simulation.bash : Sets up a new simulation
which you can then edit. See above.
* simulation-examples/simulation-files/Microchannel.js : example
of creating a Microchannel simulation.
* simulation-examples/simulation-files/Microchannel-config.js : configuration
for the Microchannel simulation.
2019-07-09 Johannes Textor <[email protected]>
* grid/GridManipulator.js : Added this new class, and removed the
existing "GridInitializer" class. There seems to be no good reason
to let these be two separate classes.
* examples/cancer-invasion.js : Made this example work as it was,
but now without the separate "CPMChemotaxis" class which will be
removed soon.
2019-07-04 Inge Wortel <[email protected]>
* hamiltonian/BarrierConstraint.js : new hard constraint to replace
the "stroma" celltype in the previous version. Basically, this
constraint sets one cellkind as "barrier" cellkind. Copy attempts
from or into pixels with this cellkind are forbidden. Which cellkinds
are barrier are defined in the conf object in the IS_BARRIER array,
with a boolean value for each cellkind.
* grid/GridInitializer.js : added functions to define a plane on
the grid and to set all pixels in that plane to a certain cellkind.
This can be used to build microchannels, for example.
2019-03-20 Johannes Textor <[email protected]>
* stats/PostMCSStats.js : new class for parameters that can be
computed after each Monte Carlo steps. Includes an event listener that
converts the CPM class's internal pixel representation to a more
convenient format allowing direct access to cell pixels. This should
prevent us from calling this method over and over again like in
previous versions.
Moreover, I have improved the centroid computation when there is a
torus. There is now a simpler algorithm that relies on the same
assumption and does not require us to compute connected components.
I removed all methods that now have an implementation in this file
from Stats.js and TODO: Stats.js should no longer exist in the future.
* hamiltonian/PreferredDirectionConstraint : new constraint that
implements Beltman-style directional persistence. Includes a
parameter that controls the amount of angular diffusion.
* examples/many-cells.html : new example showcasing the persistent
direction constraint
2019-03-10 Johannes Textor <[email protected]>
* examples-node/ : changed all examples to new syntax
* benchmarks/ : new folder with simple scripts for benchmarking the
framework
* CPM.js : simplified border updating code, yields ~3-4fold speedup
for 3D simulations.
2019-03-09 Johannes Textor <[email protected]>
* examples/ : changed all examples to new syntax, added perimeter
constraint where missing
2019-03-09 Inge Wortel <[email protected]>
* hamiltonian/ActivityConstraint2.js : Added new implementation of the
activity constraint that directly tracks activity values in an object
instead of their birth time. This implementation should be more efficient
because pixels are removed once their activity reaches zero.
!!! We may want to make a test that checks if two implementations do the same
thing?
* app/index.js : use ActivityConstraint2.js instead of ActivityConstraint.js
for the build.
* examples/actmodel.html : fixed bug because of change in CPM.js file. Added a
perimeter constraint to the cell.
2019-03-09 Johannes Textor <[email protected]>
* hamiltonian/Constraint.js : new base class for all constraints
* CPM.js: renamed addTerm to simply "add" -- we may want to add other
things like loggers, trackers, drawing functions. Also fixed bug in
cellBorderPixels
* hamiltonian/PersistenceConstraint.js : works now
2019-03-08 Inge Wortel <[email protected]>
* CPM.js : wrapped grid.neighi as an internal function here.
* hamiltonian/ActivityConstraint.js : Added this file.
* app/index.js : added Activity Constraint to the build.
* Canvas.js : fixed code for displaying the activity model
* examples/actmodel.html : added an example with act model (this doesn't work
properly yet, as the cell needs a perimeter constraint to stay together).
2019-03-08 Johannes Textor <[email protected]>
* CPM.js : added listener stubs for pixel changes and MCS termination
* TestLogger.js : new file for simple logging of events, to check if
this works
2019-03-08 Inge Wortel <[email protected]>
* Makefile : changed call to rollup to a direct call to the rollup binary in
node_modules, so it doesn't require a global install.
* hamiltonian/SoftConstraint.js : fixed typo in filename.
* hamiltonian/SoftConstraint.js ( deltaH ) : Disabled eslint error on
unused variables for this method.
* hamiltonian/HardConstraint.js ( fulfilled ): Disabled eslint error on
unused variables for this method.