MOOSE - Multiscale Object Oriented Simulation Environment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
MarkovChannel Class Reference

#include <MarkovChannel.h>

+ Inheritance diagram for MarkovChannel:
+ Collaboration diagram for MarkovChannel:

Public Member Functions

vector< double > getGbars () const
 
vector< double > getInitialState () const
 
double getLigandConc () const
 
vector< vector< bool > > getLigandGated () const
 
unsigned int getNumOpenStates () const
 
unsigned int getNumStates () const
 
vector< double > getState () const
 
vector< string > getStateLabels () const
 
double getVm () const
 
void handleLigandConc (double)
 
void handleState (vector< double >)
 
 MarkovChannel ()
 
 MarkovChannel (unsigned int, unsigned int)
 
void setGbars (vector< double >)
 
void setInitialState (vector< double >)
 
void setLigandConc (double)
 
void setLigandGated (vector< vector< bool > >)
 
void setNumOpenStates (unsigned int)
 
void setNumStates (unsigned int)
 
void setState (vector< double >)
 
void setStateLabels (vector< string >)
 
void setVm (double)
 
void vProcess (const Eref &, const ProcPtr)
 
void vReinit (const Eref &, const ProcPtr)
 
 ~MarkovChannel ()
 
- Public Member Functions inherited from ChanCommon
 ChanCommon ()
 
double getGbar () const
 Utility function to acces Gbar. More...
 
double getModulation () const
 
double getVm () const
 Utility function to access Vm. More...
 
void sendProcessMsgs (const Eref &e, const ProcPtr info)
 
void sendReinitMsgs (const Eref &e, const ProcPtr info)
 
void updateIk ()
 
double vGetEk (const Eref &e) const
 
double vGetGbar (const Eref &e) const
 
double vGetGk (const Eref &e) const
 
double vGetIk (const Eref &e) const
 
double vGetModulation (const Eref &e) const
 
void vHandleVm (double Vm)
 
void vSetEk (const Eref &e, double Ek)
 
void vSetGbar (const Eref &e, double Gbar)
 
void vSetGk (const Eref &e, double Gk)
 
void vSetIk (const Eref &e, double Ic)
 
void vSetModulation (const Eref &e, double modulation)
 
 ~ChanCommon ()
 
- Public Member Functions inherited from ChanBase
 ChanBase ()
 
double getEk (const Eref &e) const
 
double getGbar (const Eref &e) const
 
double getGk (const Eref &e) const
 
double getIk (const Eref &e) const
 
double getModulation (const Eref &e) const
 
void handleVm (double Vm)
 
void process (const Eref &e, const ProcPtr info)
 
void reinit (const Eref &e, const ProcPtr info)
 
void setEk (const Eref &e, double Ek)
 
void setGbar (const Eref &e, double Gbar)
 
void setGk (const Eref &e, double Gk)
 
void setIk (const Eref &e, double Ic)
 
void setModulation (const Eref &e, double modulation)
 
 ~ChanBase ()
 

Static Public Member Functions

static const CinfoinitCinfo ()
 
- Static Public Member Functions inherited from ChanCommon
static const CinfoinitCinfo ()
 Specify the Class Info static variable for initialization. More...
 
- Static Public Member Functions inherited from ChanBase
static SrcFinfo2< double,
double > * 
channelOut ()
 
static SrcFinfo1< double > * IkOut ()
 
static const CinfoinitCinfo ()
 Specify the Class Info static variable for initialization. More...
 
static SrcFinfo1< double > * permeability ()
 

Private Attributes

double g_
 
vector< double > Gbars_
 
vector< double > initialState_
 
double ligandConc_
 
unsigned int numOpenStates_
 
unsigned int numStates_
 
vector< double > state_
 
vector< string > stateLabels_
 

Additional Inherited Members

- Protected Attributes inherited from ChanCommon
double Vm_
 Vm_ is input variable from compartment, used for most rates. More...
 

Detailed Description

Definition at line 15 of file MarkovChannel.h.

Constructor & Destructor Documentation

MarkovChannel::MarkovChannel ( )

Definition at line 130 of file MarkovChannel.cpp.

130  :
131  g_(0),
132  ligandConc_(0),
133  numStates_(0),
134  numOpenStates_(0)
135 { ; }
unsigned int numStates_
Definition: MarkovChannel.h:75
unsigned int numOpenStates_
Definition: MarkovChannel.h:76
double ligandConc_
Definition: MarkovChannel.h:74
MarkovChannel::MarkovChannel ( unsigned int  numStates,
unsigned int  numOpenStates 
)

Definition at line 137 of file MarkovChannel.cpp.

References Gbars_, initialState_, state_, and stateLabels_.

137  :
138  g_(0), ligandConc_(0), numStates_(numStates), numOpenStates_(numOpenStates)
139 {
140  stateLabels_.resize( numStates );
141  state_.resize( numStates );
142  initialState_.resize( numStates );
143  Gbars_.resize( numOpenStates ) ;
144 }
unsigned int numStates_
Definition: MarkovChannel.h:75
unsigned int numOpenStates_
Definition: MarkovChannel.h:76
vector< string > stateLabels_
Definition: MarkovChannel.h:78
vector< double > initialState_
Definition: MarkovChannel.h:80
vector< double > state_
Definition: MarkovChannel.h:79
vector< double > Gbars_
Definition: MarkovChannel.h:81
double ligandConc_
Definition: MarkovChannel.h:74
MarkovChannel::~MarkovChannel ( )

Definition at line 146 of file MarkovChannel.cpp.

147 {
148  ;
149 }

Member Function Documentation

vector< double > MarkovChannel::getGbars ( ) const

Definition at line 217 of file MarkovChannel.cpp.

References Gbars_.

Referenced by initCinfo().

218 {
219  return Gbars_;
220 }
vector< double > Gbars_
Definition: MarkovChannel.h:81

+ Here is the caller graph for this function:

vector< double > MarkovChannel::getInitialState ( ) const

Definition at line 206 of file MarkovChannel.cpp.

References initialState_.

Referenced by initCinfo().

207 {
208  return initialState_;
209 }
vector< double > initialState_
Definition: MarkovChannel.h:80

+ Here is the caller graph for this function:

double MarkovChannel::getLigandConc ( ) const

Definition at line 161 of file MarkovChannel.cpp.

References ligandConc_.

Referenced by initCinfo().

162 {
163  return ligandConc_;
164 }
double ligandConc_
Definition: MarkovChannel.h:74

+ Here is the caller graph for this function:

vector< vector< bool > > MarkovChannel::getLigandGated ( ) const
unsigned int MarkovChannel::getNumOpenStates ( ) const

Definition at line 181 of file MarkovChannel.cpp.

References numOpenStates_.

Referenced by initCinfo().

182 {
183  return numOpenStates_;
184 }
unsigned int numOpenStates_
Definition: MarkovChannel.h:76

+ Here is the caller graph for this function:

unsigned int MarkovChannel::getNumStates ( ) const

Definition at line 171 of file MarkovChannel.cpp.

References numStates_.

Referenced by initCinfo().

172 {
173  return numStates_;
174 }
unsigned int numStates_
Definition: MarkovChannel.h:75

+ Here is the caller graph for this function:

vector< double > MarkovChannel::getState ( ) const

Definition at line 201 of file MarkovChannel.cpp.

References state_.

Referenced by initCinfo().

202 {
203  return state_;
204 }
vector< double > state_
Definition: MarkovChannel.h:79

+ Here is the caller graph for this function:

vector< string > MarkovChannel::getStateLabels ( ) const

Definition at line 191 of file MarkovChannel.cpp.

References stateLabels_.

Referenced by initCinfo().

192 {
193  return stateLabels_;
194 }
vector< string > stateLabels_
Definition: MarkovChannel.h:78

+ Here is the caller graph for this function:

double MarkovChannel::getVm ( ) const

Definition at line 151 of file MarkovChannel.cpp.

References ChanCommon::Vm_.

Referenced by initCinfo().

152 {
153  return Vm_;
154 }
double Vm_
Vm_ is input variable from compartment, used for most rates.
Definition: ChanCommon.h:80

+ Here is the caller graph for this function:

void MarkovChannel::handleLigandConc ( double  ligandConc)

Definition at line 262 of file MarkovChannel.cpp.

References ligandConc_.

Referenced by initCinfo().

263 {
264  ligandConc_ = ligandConc;
265 }
double ligandConc_
Definition: MarkovChannel.h:74

+ Here is the caller graph for this function:

void MarkovChannel::handleState ( vector< double >  state)

Definition at line 267 of file MarkovChannel.cpp.

References state_.

Referenced by initCinfo().

268 {
269  state_ = state;
270 }
vector< double > state_
Definition: MarkovChannel.h:79

+ Here is the caller graph for this function:

const Cinfo * MarkovChannel::initCinfo ( )
static

Definition at line 22 of file MarkovChannel.cpp.

References getGbars(), getInitialState(), getLigandConc(), getNumOpenStates(), getNumStates(), getState(), getStateLabels(), getVm(), handleLigandConc(), handleState(), ChanBase::initCinfo(), setGbars(), setInitialState(), setLigandConc(), setNumOpenStates(), setNumStates(), setStateLabels(), and setVm().

23 {
25  //Field information.
27  static ValueFinfo< MarkovChannel, double > ligandconc( "ligandConc",
28  "Ligand concentration.",
31  );
32 
34  "Membrane voltage.",
37  );
38 
39  static ValueFinfo< MarkovChannel, unsigned int > numstates( "numStates",
40  "The number of states that the channel can occupy.",
43  );
44 
45 
46  static ValueFinfo< MarkovChannel, unsigned int > numopenstates( "numOpenStates",
47  "The number of states which are open/conducting.",
50  );
51 
52  static ValueFinfo< MarkovChannel, vector< string > > labels("labels",
53  "Labels for each state.",
56  );
57 
59  "This is a row vector that contains the probabilities of finding the channel in each state.",
61  );
62 
63  static ValueFinfo< MarkovChannel, vector< double > > initialstate( "initialState",
64  "This is a row vector that contains the probabilities of finding the channel in each state at t = 0. The state of the channel is reset to this value during a call to reinit()",
67  );
68 
69  static ValueFinfo< MarkovChannel, vector< double > > gbar( "gbar",
70  "A row vector containing the conductance associated with each of the open/conducting states.",
73  );
74 
75  //MsgDest functions
76  static DestFinfo handleligandconc( "handleLigandConc",
77  "Deals with incoming messages containing information of ligand concentration",
79 
80  static DestFinfo handlestate("handleState",
81  "Deals with incoming message from MarkovSolver object containing state information of the channel.\n",
82  new OpFunc1< MarkovChannel, vector< double > >(&MarkovChannel::handleState) );
83 
85  static Finfo* MarkovChannelFinfos[] =
86  {
87  &ligandconc,
88  &vm,
89  &numstates,
90  &numopenstates,
91  &state,
92  &initialstate,
93  &labels,
94  &gbar,
95  &handleligandconc,
96  &handlestate,
97  };
98 
99  static string doc[] =
100  {
101  "Name", "MarkovChannel",
102  "Author", "Vishaka Datta S, 2011, NCBS",
103  "Description", "MarkovChannel : Multistate ion channel class."
104  "It deals with ion channels which can be found in one of multiple states, "
105  "some of which are conducting. This implementation assumes the occurence "
106  "of first order kinetics to calculate the probabilities of the channel "
107  "being found in all states. Further, the rates of transition between these "
108  "states can be constant, voltage-dependent or ligand dependent (only one "
109  "ligand species). The current flow obtained from the channel is calculated "
110  "in a deterministic method by solving the system of differential equations "
111  "obtained from the assumptions above."
112  };
113 
114  static Dinfo< MarkovChannel > dinfo;
115  static Cinfo MarkovChannelCinfo(
116  "MarkovChannel",
118  MarkovChannelFinfos,
119  sizeof( MarkovChannelFinfos )/ sizeof( Finfo* ),
120  &dinfo,
121  doc,
122  sizeof(doc) / sizeof(string)
123  );
124 
125  return &MarkovChannelCinfo;
126 }
vector< double > getState() const
double getVm() const
void setVm(double)
Definition: Dinfo.h:60
void setInitialState(vector< double >)
void setLigandConc(double)
void handleState(vector< double >)
void setGbars(vector< double >)
void handleLigandConc(double)
unsigned int getNumStates() const
Definition: OpFunc.h:27
vector< double > getInitialState() const
vector< double > getGbars() const
double getLigandConc() const
vector< string > getStateLabels() const
void setNumStates(unsigned int)
unsigned int getNumOpenStates() const
Definition: Cinfo.h:18
static const Cinfo * initCinfo()
Specify the Class Info static variable for initialization.
Definition: ChanBase.cpp:36
void setNumOpenStates(unsigned int)
Definition: Finfo.h:12
void setStateLabels(vector< string >)

+ Here is the call graph for this function:

void MarkovChannel::setGbars ( vector< double >  Gbars)

Definition at line 222 of file MarkovChannel.cpp.

References Gbars_.

Referenced by initCinfo().

223 {
224  Gbars_ = Gbars;
225 }
vector< double > Gbars_
Definition: MarkovChannel.h:81

+ Here is the caller graph for this function:

void MarkovChannel::setInitialState ( vector< double >  initialState)

Definition at line 211 of file MarkovChannel.cpp.

References initialState_, and state_.

Referenced by initCinfo().

212 {
213  initialState_ = initialState;
214  state_ = initialState;
215 }
vector< double > initialState_
Definition: MarkovChannel.h:80
vector< double > state_
Definition: MarkovChannel.h:79

+ Here is the caller graph for this function:

void MarkovChannel::setLigandConc ( double  ligandConc)

Definition at line 166 of file MarkovChannel.cpp.

References ligandConc_.

Referenced by initCinfo().

167 {
168  ligandConc_ = ligandConc;
169 }
double ligandConc_
Definition: MarkovChannel.h:74

+ Here is the caller graph for this function:

void MarkovChannel::setLigandGated ( vector< vector< bool > >  )
void MarkovChannel::setNumOpenStates ( unsigned int  numOpenStates)

Definition at line 186 of file MarkovChannel.cpp.

References numOpenStates_.

Referenced by initCinfo().

187 {
188  numOpenStates_ = numOpenStates;
189 }
unsigned int numOpenStates_
Definition: MarkovChannel.h:76

+ Here is the caller graph for this function:

void MarkovChannel::setNumStates ( unsigned int  numStates)

Definition at line 176 of file MarkovChannel.cpp.

References numStates_.

Referenced by initCinfo().

177 {
178  numStates_ = numStates;
179 }
unsigned int numStates_
Definition: MarkovChannel.h:75

+ Here is the caller graph for this function:

void MarkovChannel::setState ( vector< double >  )
void MarkovChannel::setStateLabels ( vector< string >  )

Definition at line 196 of file MarkovChannel.cpp.

References stateLabels_.

Referenced by initCinfo().

197 {
198  stateLabels_ = stateLabels;
199 }
vector< string > stateLabels_
Definition: MarkovChannel.h:78

+ Here is the caller graph for this function:

void MarkovChannel::setVm ( double  Vm)

Definition at line 156 of file MarkovChannel.cpp.

References ChanCommon::Vm_.

Referenced by initCinfo().

157 {
158  Vm_ = Vm;
159 }
double Vm_
Vm_ is input variable from compartment, used for most rates.
Definition: ChanCommon.h:80

+ Here is the caller graph for this function:

void MarkovChannel::vProcess ( const Eref e,
const ProcPtr  p 
)
virtual

Implements ChanBase.

Definition at line 231 of file MarkovChannel.cpp.

References g_, Gbars_, numOpenStates_, ChanCommon::sendProcessMsgs(), ChanBase::setGk(), state_, and ChanCommon::updateIk().

232 {
233  g_ = 0.0;
234 
235  //Cannot use the Gbar_ variable of the ChanBase class. The conductance
236  //Gk_ calculated here is the "expected conductance" of the channel due to its
237  //stochastic nature.
238 
239  for( unsigned int i = 0; i < numOpenStates_; ++i )
240  g_ += Gbars_[i] * state_[i];
241 
242  setGk( e, g_ );
243  updateIk();
244 
245  sendProcessMsgs( e, p );
246 }
void updateIk()
Definition: ChanCommon.cpp:119
void setGk(const Eref &e, double Gk)
Definition: ChanBase.cpp:216
unsigned int numOpenStates_
Definition: MarkovChannel.h:76
vector< double > state_
Definition: MarkovChannel.h:79
vector< double > Gbars_
Definition: MarkovChannel.h:81
void sendProcessMsgs(const Eref &e, const ProcPtr info)
Definition: ChanCommon.cpp:100

+ Here is the call graph for this function:

void MarkovChannel::vReinit ( const Eref e,
const ProcPtr  p 
)
virtual

Implements ChanBase.

Definition at line 248 of file MarkovChannel.cpp.

References g_, initialState_, ChanCommon::sendReinitMsgs(), and state_.

249 {
250  g_ = 0.0;
251 
252  if ( initialState_.empty() )
253  {
254  cerr << "MarkovChannel::reinit : Initial state has not been set.!\n";
255  return;
256  }
258 
259  sendReinitMsgs( e, p );
260 }
vector< double > initialState_
Definition: MarkovChannel.h:80
vector< double > state_
Definition: MarkovChannel.h:79
void sendReinitMsgs(const Eref &e, const ProcPtr info)
Definition: ChanCommon.cpp:111

+ Here is the call graph for this function:

Member Data Documentation

double MarkovChannel::g_
private

Definition at line 73 of file MarkovChannel.h.

Referenced by vProcess(), and vReinit().

vector< double > MarkovChannel::Gbars_
private

Definition at line 81 of file MarkovChannel.h.

Referenced by getGbars(), MarkovChannel(), setGbars(), and vProcess().

vector< double > MarkovChannel::initialState_
private

Definition at line 80 of file MarkovChannel.h.

Referenced by getInitialState(), MarkovChannel(), setInitialState(), and vReinit().

double MarkovChannel::ligandConc_
private

Definition at line 74 of file MarkovChannel.h.

Referenced by getLigandConc(), handleLigandConc(), and setLigandConc().

unsigned int MarkovChannel::numOpenStates_
private

Definition at line 76 of file MarkovChannel.h.

Referenced by getNumOpenStates(), setNumOpenStates(), and vProcess().

unsigned int MarkovChannel::numStates_
private

Definition at line 75 of file MarkovChannel.h.

Referenced by getNumStates(), and setNumStates().

vector< double > MarkovChannel::state_
private

Definition at line 79 of file MarkovChannel.h.

Referenced by getState(), handleState(), MarkovChannel(), setInitialState(), vProcess(), and vReinit().

vector< string > MarkovChannel::stateLabels_
private

Definition at line 78 of file MarkovChannel.h.

Referenced by getStateLabels(), MarkovChannel(), and setStateLabels().


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