Excitation-contraction coupling/mitochondrial energetics (ECME) model (Cortassa et al. 2006)

 Download zip file 
Help downloading and running models
Accession:105383
"An intricate network of reactions is involved in matching energy supply with demand in the heart. This complexity arises because energy production both modulates and is modulated by the electrophysiological and contractile activity of the cardiac myocyte. Here, we present an integrated mathematical model of the cardiac cell that links excitation-contraction coupling with mitochondrial energy generation. The dynamics of the model are described by a system of 50 ordinary differential equations. The formulation explicitly incorporates cytoplasmic ATP-consuming processes associated with force generation and ion transport, as well as the creatine kinase reaction. Changes in the electrical and contractile activity of the myocyte are coupled to mitochondrial energetics through the ATP, Ca21, and Na1 concentrations in the myoplasmic and mitochondrial matrix compartments. ..."
Reference:
1 . Cortassa S, Aon MA, Marbán E, Winslow RL, O'Rourke B (2003) An integrated model of cardiac mitochondrial energy metabolism and calcium dynamics. Biophys J 84:2734-55 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Electrogenic pump;
Brain Region(s)/Organism:
Cell Type(s): Heart cell;
Channel(s): I L high threshold; I Sodium; I Potassium; Na/Ca exchanger; I_SERCA;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s): Activity Patterns; Temporal Pattern Generation; Signaling pathways; Calcium dynamics;
Implementer(s):
Search NeuronDB for information about:  I L high threshold; I Sodium; I Potassium; Na/Ca exchanger; I_SERCA;
// GPC.cpp : Defines the entry point for the console application.
//

#include "Integrator.h"
#include "integratorcvode.h"
#include "fileIO.h"
#include "Model.h"

#include <time.h>
#include <iostream>
using namespace std;

void displayCopyright() {
	// Outputting Introduction and Copyright information
	cout << "-------------------------------------------------------\n\n";
	cout << "      NOTICE OF COPYRIGHT AND OWNERSHIP OF SOFTWARE    \n";
	cout << "       Copyright 2004, The Johns Hopkins University    \n";
	cout << "        School of Medicine. All rights reserved.       \n\n";
	cout << "  For research use only; commercial use prohibited.    \n";
	cout << "  Distribution without permission of Raimond L. Winslow\n";
	cout << "  not permitted. rwinslow@bme.jhu.edu					\n\n";
	cout << "  Name of Program: Guinea Pig C++ (Coupled)			\n";
    cout << "  Version: Documented Version, version 1.0.8			\n";
	cout << "  Date: November 2004									\n";
    cout << "-------------------------------------------------------\n";  
}

int main(int argc, char* argv[])
{
	//Variable Declarations
	clock_t tic = clock();
	Model gpc;
	fileIO data;
	IntegratorCVode cvode;

	displayCopyright();

	//Load parameters in classes
	data.loadFile("parameters.txt");
	data.loadFile("initial_conditions.txt");
	data.loadFile("control.txt");
	gpc.setParameters(data);
	gpc.setInitialConditions(data);
	cvode.setParameters(data);

	//Init CVode structures
	cvode.setupCVode(&gpc);

	//Initialize the control variables
	data.setupFileOut();

	//Open files
	data.openOutputFiles(&gpc, "States.txt", "Currents.txt", "Derivatives.txt" );

	//Setup MCA and averaging
	data.MCA_Setup(&gpc);

	//Should we perform an MCA
	if ( data.MCA_isEnabled() ) {
		for (int param = 0; param < data.MCA_GetNumberOfParameters(); param++) {
			for (int percent = 0; percent < data.MCA_GetNumberOfPercents(); percent++) {
				data.MCA_Update(&gpc,param,percent);
				cvode.integrateModel(&gpc, &data, 0);
				data.MCA_Analyze(&gpc,param,percent);
			}
		}
	} else {
		//IF mode loop
		for(int i = 0; i < gpc.getNumRun(); i++) {
			data.setupFileOut();
			cvode.integrateModel(&gpc, &data, i);
		}
	}

	data.finalizeFileOut();
	data.closeOutputFiles();
	data.writeInitialConditionsFile("SSConditions.txt", gpc);
	// calculate time spent
	cout << "Time used: "<< (clock() - tic) / (double)CLOCKS_PER_SEC<<"s\a\a\a"<< endl;
	return 0;
}

Loading data, please wait...