Chaste  Release::2017.1
CorriasBuistSMCModified Class Reference

#include <CorriasBuistSMCModified.hpp>

+ Inheritance diagram for CorriasBuistSMCModified:
+ Collaboration diagram for CorriasBuistSMCModified:

Public Member Functions

 CorriasBuistSMCModified (boost::shared_ptr< AbstractIvpOdeSolver > pSolver, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
 
 ~CorriasBuistSMCModified ()
 
void VerifyStateVariables ()
 
double GetIIonic (const std::vector< double > *pStateVariables=NULL)
 
void EvaluateYDerivatives (double time, const std::vector< double > &rY, std::vector< double > &rDY)
 
void SetFakeIccStimulusPresent (bool present)
 
bool GetFakeIccStimulusPresent ()
 
double SetCarbonMonoxideScaleFactor ()
 
void SetCarbonMonoxideScaleFactor (double scaleFactor)
 
double GetCarbonMonoxideScaleFactor ()
 
- Public Member Functions inherited from AbstractCardiacCell
 AbstractCardiacCell (boost::shared_ptr< AbstractIvpOdeSolver > pOdeSolver, unsigned numberOfStateVariables, unsigned voltageIndex, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
 
virtual ~AbstractCardiacCell ()
 
void Init ()
 
void SetTimestep (double dt)
 
virtual void SolveAndUpdateState (double tStart, double tEnd)
 
virtual OdeSolution Compute (double tStart, double tEnd, double tSamp=0.0)
 
virtual void ComputeExceptVoltage (double tStart, double tEnd)
 
void SetVoltage (double voltage)
 
double GetVoltage ()
 
unsigned GetNumberOfStateVariables () const
 
unsigned GetNumberOfParameters () const
 
std::vector< doubleGetStdVecStateVariables ()
 
const std::vector< std::string > & rGetStateVariableNames () const
 
void SetStateVariables (const std::vector< double > &rVariables)
 
void SetStateVariable (unsigned index, double newValue)
 
void SetStateVariable (const std::string &rName, double newValue)
 
double GetAnyVariable (const std::string &rName, double time=0.0)
 
double GetParameter (const std::string &rParameterName)
 
double GetParameter (unsigned parameterIndex)
 
void SetParameter (const std::string &rParameterName, double value)
 
virtual void SetState (CellModelState state)
 
virtual void SetSlowValues (const std::vector< double > &rSlowValues)
 
virtual void GetSlowValues (std::vector< double > &rSlowValues)
 
virtual bool IsFastOnly ()
 
virtual void AdjustOutOfRangeSlowValues (std::vector< double > &rSlowValues)
 
virtual unsigned GetNumSlowValues ()
 
- Public Member Functions inherited from AbstractCardiacCellInterface
 AbstractCardiacCellInterface (boost::shared_ptr< AbstractIvpOdeSolver > pOdeSolver, unsigned voltageIndex, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
 
virtual ~AbstractCardiacCellInterface ()
 
unsigned GetVoltageIndex ()
 
void SetStimulusFunction (boost::shared_ptr< AbstractStimulusFunction > pStimulus)
 
double GetStimulus (double time)
 
void SetIntracellularStimulusFunction (boost::shared_ptr< AbstractStimulusFunction > pStimulus)
 
double GetIntracellularStimulus (double time)
 
double GetIntracellularAreaStimulus (double time)
 
void SetUsedInTissueSimulation (bool tissue=true)
 
virtual boost::shared_ptr< RegularStimulusUseCellMLDefaultStimulus ()
 
bool HasCellMLDefaultStimulus ()
 
virtual AbstractLookupTableCollectionGetLookupTableCollection ()
 
boost::shared_ptr< AbstractStimulusFunctionGetStimulusFunction ()
 
const boost::shared_ptr< AbstractStimulusFunctionGetStimulusFunction () const
 
const boost::shared_ptr< AbstractIvpOdeSolverGetSolver () const
 
void SetSolver (boost::shared_ptr< AbstractIvpOdeSolver > pSolver)
 
virtual void SetVoltageDerivativeToZero (bool clamp=true)
 
void SetFixedVoltage (double voltage)
 
virtual void SetStretch (double stretch)
 
virtual double GetIntracellularCalciumConcentration ()
 
- Public Member Functions inherited from AbstractOdeSystem
 AbstractOdeSystem (unsigned numberOfStateVariables)
 
virtual ~AbstractOdeSystem ()
 
virtual bool CalculateStoppingEvent (double time, const std::vector< double > &rY)
 
virtual double CalculateRootFunction (double time, const std::vector< double > &rY)
 
bool GetUseAnalyticJacobian ()
 
const std::vector< double > & rGetConstStateVariables () const
 
- Public Member Functions inherited from AbstractParameterisedSystem< std::vector< double > >
 AbstractParameterisedSystem (unsigned numberOfStateVariables)
 
std::vector< double > & rGetStateVariables ()
 
std::vector< doubleGetStateVariables ()
 
void SetStateVariables (const std::vector< double > &rStateVariables)
 
double GetStateVariable (unsigned index) const
 
double GetStateVariable (const std::string &rName) const
 
void SetStateVariable (unsigned index, double newValue)
 
void SetStateVariable (const std::string &rName, double newValue)
 
void SetDefaultInitialConditions (const std::vector< double > &rInitialConditions)
 
void SetDefaultInitialCondition (unsigned index, double initialCondition)
 
std::vector< doubleGetInitialConditions () const
 
void ResetToInitialConditions ()
 
double GetParameter (unsigned index) const
 
double GetParameter (const std::string &rName) const
 
void SetParameter (const std::string &rName, double value)
 
void SetParameter (unsigned index, double value)
 
double GetAnyVariable (unsigned index, double time=0.0, std::vector< double > *pDerivedQuantities=NULL)
 
double GetAnyVariable (const std::string &rName, double time=0.0, std::vector< double > *pDerivedQuantities=NULL)
 
void SetAnyVariable (unsigned index, double value)
 
void SetAnyVariable (const std::string &rName, double value)
 
virtual std::vector< doubleComputeDerivedQuantities (double time, const std::vector< double > &rState)
 
std::vector< doubleComputeDerivedQuantitiesFromCurrentState (double time)
 
- Public Member Functions inherited from AbstractUntemplatedParameterisedSystem
 AbstractUntemplatedParameterisedSystem (unsigned numberOfStateVariables)
 
virtual ~AbstractUntemplatedParameterisedSystem ()
 
boost::shared_ptr< const AbstractOdeSystemInformationGetSystemInformation () const
 
std::string GetSystemName () const
 
unsigned GetNumberOfAttributes () const
 
bool HasAttribute (const std::string &rName) const
 
double GetAttribute (const std::string &rName) const
 
unsigned GetNumberOfStateVariables () const
 
const std::vector< std::string > & rGetStateVariableNames () const
 
const std::vector< std::string > & rGetStateVariableUnits () const
 
unsigned GetStateVariableIndex (const std::string &rName) const
 
bool HasStateVariable (const std::string &rName) const
 
std::string GetStateVariableUnits (unsigned index) const
 
unsigned GetNumberOfParameters () const
 
const std::vector< std::string > & rGetParameterNames () const
 
const std::vector< std::string > & rGetParameterUnits () const
 
unsigned GetParameterIndex (const std::string &rName) const
 
bool HasParameter (const std::string &rName) const
 
std::string GetParameterUnits (unsigned index) const
 
unsigned GetNumberOfDerivedQuantities () const
 
const std::vector< std::string > & rGetDerivedQuantityNames () const
 
const std::vector< std::string > & rGetDerivedQuantityUnits () const
 
unsigned GetDerivedQuantityIndex (const std::string &rName) const
 
bool HasDerivedQuantity (const std::string &rName) const
 
std::string GetDerivedQuantityUnits (unsigned index) const
 
unsigned GetAnyVariableIndex (const std::string &rName) const
 
bool HasAnyVariable (const std::string &rName) const
 
std::string GetAnyVariableUnits (unsigned index) const
 
std::string GetAnyVariableUnits (const std::string &rName) const
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Private Attributes

double mScaleFactorCarbonMonoxide
 
bool mFakeIccStimulusPresent
 
double Cm
 
double Asurf_in_cm_square
 
double Asurf
 
double VolCell
 
double hCa
 
double sCa
 
double Ki
 
double Nai
 
double ACh
 
double CaiRest
 
double gLVA_max
 
double gCaL_max
 
double gBK_max
 
double gKb_max
 
double gKA_max
 
double gKr_max
 
double gNa_max
 
double gnsCC_max
 
double gcouple
 
double JCaExt_max
 
double Q10Ca
 
double Q10K
 
double Q10Na
 
double Texp
 
double T_correct_Ca
 
double T_correct_K
 
double T_correct_Na
 
double T_correct_gBK
 
double EK
 
double ENa
 
double EnsCC
 
double Ca_o
 
double K_o
 
double Na_o
 
double R
 
double T
 
double F
 
double FoRT
 
double RToF
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Protected Member Functions inherited from AbstractParameterisedSystem< std::vector< double > >
std::string DumpState (const std::string &rMessage)
 
std::string DumpState (const std::string &rMessage, std::vector< double >Y)
 
std::string DumpState (const std::string &rMessage, std::vector< double >Y, double time)
 
void CheckParametersOnLoad (const std::vector< double > &rParameters, const std::vector< std::string > &rParameterNames)
 
- Protected Attributes inherited from AbstractCardiacCell
double mDt
 
- Protected Attributes inherited from AbstractCardiacCellInterface
unsigned mVoltageIndex
 
boost::shared_ptr< AbstractIvpOdeSolvermpOdeSolver
 
boost::shared_ptr< AbstractStimulusFunctionmpIntracellularStimulus
 
bool mSetVoltageDerivativeToZero
 
bool mIsUsedInTissue
 
bool mHasDefaultStimulusFromCellML
 
double mFixedVoltage
 
- Protected Attributes inherited from AbstractOdeSystem
bool mUseAnalyticJacobian
 
- Protected Attributes inherited from AbstractParameterisedSystem< std::vector< double > >
std::vector< doublemStateVariables
 
std::vector< doublemParameters
 
- Protected Attributes inherited from AbstractUntemplatedParameterisedSystem
unsigned mNumberOfStateVariables
 
boost::shared_ptr< AbstractOdeSystemInformationmpSystemInfo
 

Detailed Description

This class is a modified version of the model of a gastric Smooth Muscle Cell.

Reference publication is:

Corrias A, Buist ML. "A quantitative model of gastric smooth muscle cellular activation." Ann Biomed Eng. 2007 Sep;35(9):1595-607. Epub 2007 May 8.

Modifications include:

  • ability to include/exclude built-in fake ICC stimulus
  • ability to set K+ channels-affecting CO concentrations

Definition at line 58 of file CorriasBuistSMCModified.hpp.

Constructor & Destructor Documentation

CorriasBuistSMCModified::CorriasBuistSMCModified ( boost::shared_ptr< AbstractIvpOdeSolver pSolver,
boost::shared_ptr< AbstractStimulusFunction pIntracellularStimulus 
)
CorriasBuistSMCModified::~CorriasBuistSMCModified ( )

Destructor

Definition at line 117 of file CorriasBuistSMCModified.cpp.

Member Function Documentation

void CorriasBuistSMCModified::EvaluateYDerivatives ( double  time,
const std::vector< double > &  rY,
std::vector< double > &  rDY 
)
virtual

Compute the RHS of the FitHugh-Nagumo system of ODEs

Parameters
timethe current time, in milliseconds
rYcurrent values of the state variables
rDYto be filled in with derivatives

Implements AbstractOdeSystem.

Definition at line 191 of file CorriasBuistSMCModified.cpp.

References ACh, Asurf, Ca_o, CaiRest, EK, ENa, EnsCC, F, gCaL_max, gcouple, AbstractCardiacCellInterface::GetStimulus(), gKA_max, gKb_max, gKr_max, gLVA_max, gNa_max, gnsCC_max, hCa, JCaExt_max, mFakeIccStimulusPresent, mScaleFactorCarbonMonoxide, AbstractCardiacCellInterface::mSetVoltageDerivativeToZero, RToF, sCa, T_correct_Ca, T_correct_gBK, T_correct_K, T_correct_Na, and VolCell.

double CorriasBuistSMCModified::GetCarbonMonoxideScaleFactor ( )
Returns
the Carbon Monoxide scale factor

Definition at line 139 of file CorriasBuistSMCModified.cpp.

References mScaleFactorCarbonMonoxide.

bool CorriasBuistSMCModified::GetFakeIccStimulusPresent ( )
Returns
true if the fake ICC stimulus is present

Definition at line 134 of file CorriasBuistSMCModified.cpp.

References mFakeIccStimulusPresent.

double CorriasBuistSMCModified::GetIIonic ( const std::vector< double > *  pStateVariables = NULL)
virtual

Calculates the ionic current

Parameters
pStateVariablesthe state variables of this model
Returns
the total ionic current

Now convert to microA over cm^2, the units that Chaste needs

Implements AbstractCardiacCellInterface.

Definition at line 144 of file CorriasBuistSMCModified.cpp.

References ACh, Asurf, Ca_o, EK, ENa, EnsCC, F, gCaL_max, gKA_max, gKb_max, gKr_max, gLVA_max, gNa_max, gnsCC_max, JCaExt_max, mScaleFactorCarbonMonoxide, AbstractParameterisedSystem< std::vector< double > >::rGetStateVariables(), RToF, T_correct_gBK, and VolCell.

template<class Archive >
void CorriasBuistSMCModified::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Boost Serialization method for archiving/checkpointing. Archives the object and its member variables.

Parameters
archiveThe boost archive.
versionThe current version of this class.

Definition at line 69 of file CorriasBuistSMCModified.hpp.

double CorriasBuistSMCModified::SetCarbonMonoxideScaleFactor ( )
Returns
the Carbon Monoxide scale for
void CorriasBuistSMCModified::SetCarbonMonoxideScaleFactor ( double  scaleFactor)

Set the carbon monoxide scale factor. This will multiply the following currents: I_kr, I_Ka, Ibk

Parameters
scaleFactorthe scale factor that multiply the currents.

Definition at line 124 of file CorriasBuistSMCModified.cpp.

References mScaleFactorCarbonMonoxide.

void CorriasBuistSMCModified::SetFakeIccStimulusPresent ( bool  present)

Set whether we want the fake ICC stimulus or not. It changes the member variable mFakeIccStimulusPresent (which is true by default).

Parameters
present- true if we want the fake ICC stimulus, false otherwise

Definition at line 129 of file CorriasBuistSMCModified.cpp.

References mFakeIccStimulusPresent.

void CorriasBuistSMCModified::VerifyStateVariables ( )
virtual

Now empty

Reimplemented from AbstractParameterisedSystem< std::vector< double > >.

Definition at line 121 of file CorriasBuistSMCModified.cpp.

Member Data Documentation

double CorriasBuistSMCModified::ACh
private

acetylcholine conc (mM)

Definition at line 100 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::Asurf
private

surface area (mm^2)

Definition at line 91 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::Asurf_in_cm_square
private

Surface area in cm^2

Definition at line 90 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::Ca_o
private
double CorriasBuistSMCModified::CaiRest
private

baseline Ca conc (mM)

Definition at line 101 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), and EvaluateYDerivatives().

double CorriasBuistSMCModified::Cm
private

membrane capacitance, pF

Definition at line 88 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::EK
private

Nernst potential for K (mV)

Definition at line 127 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::ENa
private

Nernst potential for Na (mV)

Definition at line 128 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::EnsCC
private

Nernst potential for nsCC (mV)

Definition at line 129 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::F
private

nC/nmol

Definition at line 138 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::FoRT
private

1/mV

Definition at line 139 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::gBK_max
private

max conductance of IBK)

Definition at line 106 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::gCaL_max
private

max conductance of ICaL

Definition at line 105 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::gcouple
private

coupling conductance bewteen fake ICC and SMC

Definition at line 112 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), and EvaluateYDerivatives().

double CorriasBuistSMCModified::gKA_max
private

max conductance of IKA

Definition at line 108 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::gKb_max
private

max conductance of IKb

Definition at line 107 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::gKr_max
private

max conductance of IKr

Definition at line 109 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::gLVA_max
private

max conductance of ILVA

Definition at line 104 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::gNa_max
private

max conductance of INa

Definition at line 110 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::gnsCC_max
private

max conductance of InsCC

Definition at line 111 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::hCa
private

conc for half inactivation of fCa

Definition at line 94 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), and EvaluateYDerivatives().

double CorriasBuistSMCModified::JCaExt_max
private

max flux of CaSR (mM/ms)

Definition at line 113 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::K_o
private

mM

Definition at line 132 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::Ki
private

intra K conc (mM)

Definition at line 98 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

bool CorriasBuistSMCModified::mFakeIccStimulusPresent
private

True if the fake built-in ICC stimulus is present

Definition at line 86 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), GetFakeIccStimulusPresent(), and SetFakeIccStimulusPresent().

double CorriasBuistSMCModified::mScaleFactorCarbonMonoxide
private

Scale factor for CO-affected currents Note that this the number that multiply the currents, hence it is not [CO], but a function of [CO] (for example, 2.8*[CO] - 0.1)

Definition at line 81 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), GetCarbonMonoxideScaleFactor(), GetIIonic(), and SetCarbonMonoxideScaleFactor().

double CorriasBuistSMCModified::Na_o
private

mM

Definition at line 133 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::Nai
private

intra Na conc (mM)

Definition at line 99 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::Q10Ca
private

(dim)

Definition at line 116 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::Q10K
private

(dim)

Definition at line 117 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::Q10Na
private

(dim)

Definition at line 118 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::R
private

pJ/nmol/K

Definition at line 136 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::RToF
private
double CorriasBuistSMCModified::sCa
private

lope factor for inactivation of fCa

Definition at line 95 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), and EvaluateYDerivatives().

double CorriasBuistSMCModified::T
private

degK

Definition at line 137 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::T_correct_Ca
private

temperature correction for Ca (dim)

Definition at line 121 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), and EvaluateYDerivatives().

double CorriasBuistSMCModified::T_correct_gBK
private

temperature correction for gBK

Definition at line 124 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().

double CorriasBuistSMCModified::T_correct_K
private

temperature correction for K (dim)

Definition at line 122 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), and EvaluateYDerivatives().

double CorriasBuistSMCModified::T_correct_Na
private

temperature correction for Na (dim)

Definition at line 123 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), and EvaluateYDerivatives().

double CorriasBuistSMCModified::Texp
private

(degK)

Definition at line 119 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified().

double CorriasBuistSMCModified::VolCell
private

cell volume (mm^3)

Definition at line 93 of file CorriasBuistSMCModified.hpp.

Referenced by CorriasBuistSMCModified(), EvaluateYDerivatives(), and GetIIonic().


The documentation for this class was generated from the following files: