Changeset - 854077b2d7cc
[Not reviewed]
Michael Guravage - 14 years ago 2011-08-26 15:56:01
michael.guravage@cwi.nl
Added first tissue growth protocol: The expanding cell.

--
user: Michael Guravage <michael.guravage@cwi.nl>
branch 'default'
added src/protocols/MyGrowthModel/Makefile
added src/protocols/MyGrowthModel/mygrowthmodel.cpp
added src/protocols/MyGrowthModel/mygrowthmodel.h
added src/protocols/MyGrowthModel/mygrowthmodel.pro
changed src/protocols/Makefile
5 files changed with 223 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/protocols/Makefile
Show inline comments
 
@@ -6,13 +6,14 @@
 

	
 
ifeq ($(MAKE),)
 
	MAKE=make
 
endif
 

	
 
PROTOCOLS=\
 
 MyEmptyModel
 
 MyEmptyModel\
 
 MyGrowthModel
 

	
 
all:
 
	@for p in $(PROTOCOLS); do $(MAKE) -C $$p; done;
 

	
 
clean:
 
	@for p in $(PROTOCOLS); do $(MAKE) -C $$p clean; done;
src/protocols/MyGrowthModel/Makefile
Show inline comments
 
new file 100644
 
# Set an environment varible $(MAKE) to the name of the make command
 
# on your machine, e.g. 'make' on UNIX and 'mingw32-make' on windows.
 
# Fallback default is UNIX make.
 

	
 
ifeq ($(MAKE),)
 
	MAKE=make
 
endif
 

	
 
# Ditto for QMAKE
 
ifeq ($(QMAKE),)
 
	QMAKE=qmake
 
endif
 

	
 
all: mygrowthmodel
 

	
 
mygrowthmodel: Makefile.mygrowthmodel
 
	$(MAKE) -f Makefile.mygrowthmodel
 

	
 
Makefile.mygrowthmodel: mygrowthmodel.pro
 
	$(QMAKE) -o $@ $< 
 

	
 
clean:
 
	$(MAKE) -f Makefile.mygrowthmodel clean
 
ifeq ($(MAKE),make)
 
	touch mygrowthmodel.pro
 
else
 
	copy /b mygrowthmodel.pro +,,
 
endif
 

	
 
# finis
src/protocols/MyGrowthModel/mygrowthmodel.cpp
Show inline comments
 
new file 100644
 
/*
 
 *
 
 *  This file is part of the Virtual Leaf.
 
 *
 
 *  The Virtual Leaf is free software: you can redistribute it and/or modify
 
 *  it under the terms of the GNU General Public License as published by
 
 *  the Free Software Foundation, either version 3 of the License, or
 
 *  (at your option) any later version.
 
 *
 
 *  The Virtual Leaf is distributed in the hope that it will be useful,
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 *  GNU General Public License for more details.
 
 *
 
 *  You should have received a copy of the GNU General Public License
 
 *  along with the Virtual Leaf.  If not, see <http://www.gnu.org/licenses/>.
 
 *
 
 *  Copyright 2010 Roeland Merks.
 
 *
 
 */
 

	
 
#include <QObject>
 
#include <QtGui>
 
#include <QDebug>
 
#include "simplugin.h"
 
#include "parameter.h"
 
#include "wallbase.h"
 
#include "cellbase.h"
 
#include "mygrowthmodel.h"
 
#include "pi.h"
 
#include "random.h"
 

	
 
QString Mygrowthmodel::ModelID(void) {
 
  // specify the name of your model here
 
  return QString( "Expanding cell model" );
 
}
 

	
 
// return the number of chemicals your model uses
 
int Mygrowthmodel::NChem(void) { return 0; }
 

	
 
// To be executed after cell division
 
void Mygrowthmodel::OnDivide(ParentInfo *parent_info, CellBase *daughter1, CellBase *daughter2) {
 
  // rules to be executed after cell division go here
 
  // (e.g., cell differentiation rules)
 
}
 

	
 
void Mygrowthmodel::SetCellColor(CellBase *c, QColor *color) { 
 
  // add cell coloring rules here
 
}
 

	
 
void Mygrowthmodel::CellHouseKeeping(CellBase *c) {
 
  // add cell behavioral rules here
 

	
 
  c->EnlargeTargetArea(par->cell_expansion_rate);
 
}
 

	
 
void Mygrowthmodel::CelltoCellTransport(Wall *w, double *dchem_c1, double *dchem_c2) {
 
  // add biochemical transport rules here
 
}
 

	
 
void Mygrowthmodel::WallDynamics(Wall *w, double *dw1, double *dw2) {
 
  // add biochemical networks for reactions occuring at walls here
 
}
 

	
 
void Mygrowthmodel::CellDynamics(CellBase *c, double *dchem) {
 
  // add biochemical networks for intracellular reactions here
 
}
 

	
 
Q_EXPORT_PLUGIN2(mygrowthmodel, Mygrowthmodel)
 

	
 
// finis
src/protocols/MyGrowthModel/mygrowthmodel.h
Show inline comments
 
new file 100644
 
/*
 
 *
 
 *  This file is part of the Virtual Leaf.
 
 *
 
 *  The Virtual Leaf is free software: you can redistribute it and/or modify
 
 *  it under the terms of the GNU General Public License as published by
 
 *  the Free Software Foundation, either version 3 of the License, or
 
 *  (at your option) any later version.
 
 *
 
 *  The Virtual Leaf is distributed in the hope that it will be useful,
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 *  GNU General Public License for more details.
 
 *
 
 *  You should have received a copy of the GNU General Public License
 
 *  along with the Virtual Leaf.  If not, see <http://www.gnu.org/licenses/>.
 
 *
 
 *  Copyright 2010 Roeland Merks.
 
 *
 
 */
 

	
 
#include <QObject>
 
#include <QtGui>
 
#include <QString>
 
#include "simplugin.h"
 

	
 
class Mygrowthmodel : public QObject, SimPluginInterface {
 
  Q_OBJECT
 
  Q_INTERFACES(SimPluginInterface);
 

	
 
 public:
 
  virtual QString ModelID(void);
 
	
 
  // Executed after the cellular mechanics steps have equillibrized
 
  virtual void CellHouseKeeping (CellBase *c);
 

	
 
  // Differential equations describing transport of chemicals from cell to cell
 
  virtual void CelltoCellTransport(Wall *w, double *dchem_c1, double *dchem_c2);
 
    
 
  // Differential equations describing chemical reactions taking place at or near the cell walls
 
  // (e.g. PIN accumulation)
 
  virtual void WallDynamics(Wall *w, double *dw1, double *dw2);
 
	
 
  // Differential equations describing chemical reactions inside the cells
 
  virtual void CellDynamics(CellBase *c, double *dchem);
 
	
 
  // To be executed after a cell division
 
  virtual void OnDivide(ParentInfo *parent_info, CellBase *daughter1, CellBase *daughter2);
 
	
 
  // To be executed for coloring a cell
 
  virtual void SetCellColor(CellBase *c, QColor *color);	
 

	
 
  // Return number of chemicals
 
  virtual int NChem(void);
 
};
 

	
 
// finis
src/protocols/MyGrowthModel/mygrowthmodel.pro
Show inline comments
 
new file 100644
 
#
 
# $Id$
 
#
 
#  This file is part of the Virtual Leaf.
 
#
 
#  The Virtual Leaf is free software: you can redistribute it and/or modify
 
#  it under the terms of the GNU General Public License as published by
 
#  the Free Software Foundation, either version 3 of the License, or
 
#  (at your option) any later version.
 
#
 
#  The Virtual Leaf is distributed in the hope that it will be useful,
 
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
#  GNU General Public License for more details.
 
#
 
#  You should have received a copy of the GNU General Public License
 
#  along with the Virtual Leaf.  If not, see <http://www.gnu.org/licenses/>.
 
#
 
#  Copyright 2010 Roeland Merks.
 
#
 

	
 

	
 
TARGET = mygrowthmodel
 
VLEAFHOME = ../../..
 

	
 
CONFIG += release
 
CONFIG -= debug
 
CONFIG += plugin
 

	
 
BINDIR = $${VLEAFHOME}/bin
 
LIBDIR = $${VLEAFHOME}/lib
 
INCDIR = $${VLEAFHOME}/src
 
DEFINES = QTGRAPHICS # VLEAFPLUGIN
 
DESTDIR = $${BINDIR}/models
 
HEADERS = $${TARGET}.h $${INCDIR}/simplugin.h
 
INCLUDEPATH += $${INCDIR}	
 

	
 
QMAKE_CXXFLAGS += -fexceptions #-I$${INCDIR}
 
QMAKE_CXXFLAGS += -Wno-write-strings
 
QMAKE_CXXFLAGS += -Wno-unused-parameter
 
QMAKE_CXXFLAGS_DEBUG += -g3
 
QMAKE_CXXFLAGS_DEBUG += -DQDEBUG
 
QT += qt3support
 
SOURCES = $${TARGET}.cpp
 
TEMPLATE = lib 
 

	
 
unix {
 
 LIBS += -L$${LIBDIR} -lvleaf
 
 QMAKE_CXXFLAGS += -fPIC -I/usr/include/libxml2
 
 QMAKE_LFLAGS += -fPIC
 
}
 

	
 
win32 {
 
 LIBXML2DIR = $${LIBDIR}\libxml2
 
 LIBICONVDIR = $${LIBDIR}\libiconv
 
 LIBZDIR = $${LIBDIR}\libz
 
 LIBS += -L$${LIBDIR} -lvleaf
 
 QMAKE_CXXFLAGS += -DLIBXML_STATIC
 
 QMAKE_CXXFLAGS += -I$${LIBXML2DIR}\include -I$${LIBICONVDIR}\include -I$${LIBZDIR}\include
 

	
 
}
 

	
 
# finish
0 comments (0 inline, 0 general)