def saveECD(LoggerList, FullPN):
    Data = LoggerList[0].getData()
    Data = np.matrix(Data)
    Data = Data[:, 0]
    Data = Data.tolist()
    rabelrows = ['time']
    for i in range(len(LoggerList)):
        Next_Data = LoggerList[i].getData()
        rabel = LoggerList[i].getName()
        if len(Next_Data) > 1:
            rabelrows.append(rabel)

        else:
            pass

        for j in range(len(Data)):
            if len(Next_Data) > RECORDING_TIME * 200:
                Data[j].append(Next_Data[2 * j][1])
            elif len(Next_Data) > RECORDING_TIME * 100:
                Data[j].append(Next_Data[j][1])

            else:
                pass

    Data.insert(0, rabelrows)
    Data = np.array(Data)
    ECDFile = ECDDataFile(Data)
    ECDFile.setDataName(VmLogger.getName())
    ECDFile.setNote(FullPN + 'is' + str(VALUE_OF_GX))
    FullPN = FullPN.replace(':', '_')
    FullPN = FullPN.replace('/', '_')
    filename = FullPN + str(VALUE_OF_GX) + '.ecd'
    ECDFile.save(filename)
Esempio n. 2
0
def saveECD(LoggerList, FullPN):
    Data = LoggerList[0].getData()
    Data = np.matrix(Data)
    Data = Data[:, 0]
    Data = Data.tolist()
    rabelrows = ["time"]
    for i in range(len(LoggerList)):
        Next_Data = LoggerList[i].getData()
        rabel = LoggerList[i].getName()
        if len(Next_Data) > 1:
            rabelrows.append(rabel)

        else:
            pass

        for j in range(len(Data)):
            if len(Next_Data) > RECORDING_TIME * 200:
                Data[j].append(Next_Data[2 * j][1])
            elif len(Next_Data) > RECORDING_TIME * 100:
                Data[j].append(Next_Data[j][1])

            else:
                pass

    Data.insert(0, rabelrows)
    Data = np.array(Data)
    ECDFile = ECDDataFile(Data)
    ECDFile.setDataName(VmLogger.getName())
    ECDFile.setNote(FullPN + "is" + str(VALUE_OF_GX))
    FullPN = FullPN.replace(":", "_")
    FullPN = FullPN.replace("/", "_")
    filename = FullPN + str(VALUE_OF_GX) + ".ecd"
    ECDFile.save(filename)
Esempio n. 3
0
    def saveLoggerData(self,
                       fullpn=0,
                       aSaveDirectory='./Data',
                       aStartTime=-1,
                       anEndTime=-1,
                       anInterval=-1):

        # -------------------------------------------------
        # Check type.
        # -------------------------------------------------

        aLoggerNameList = []

        if type(fullpn) == str:
            aLoggerNameList.append(fullpn)
        elif not fullpn:
            aLoggerNameList = self.getLoggerList()
        elif type(fullpn) == list:
            aLoggerNameList = fullpn
        elif type(fullpn) == tuple:
            aLoggerNameList = fullpn
        else:
            self.message(
                "%s is not suitable type.\nuse string or list or tuple" %
                fullpn)
            return

        # -------------------------------------------------
        # Execute saving.
        # -------------------------------------------------
        if not os.path.isdir(aSaveDirectory):
            os.mkdir(aSaveDirectory)

        # creates instance datafilemanager
        aDataFileManager = DataFileManager()

        # sets root directory to datafilemanager
        aDataFileManager.setRootDirectory(aSaveDirectory)

        aFileIndex = 0

        # gets all list of selected property name
        for aFullPNString in aLoggerNameList:  #(2)

            # -------------------------------------------------
            # from [Variable:/CELL/CYTOPLASM:E:Value]
            # to   [Variable_CELL_CYTOPLASM_E_Value]
            # -------------------------------------------------

            aRootIndex = aFullPNString.find(':/')
            aFileName = aFullPNString[:aRootIndex] + aFullPNString[aRootIndex +
                                                                   1:]
            aFileName = aFileName.replace(':', '_')
            aFileName = aFileName.replace('/', '_')

            aECDDataFile = ECDDataFile()
            aECDDataFile.setFileName(aFileName)

            # -------------------------------------------------
            # Gets logger
            # -------------------------------------------------
            # need check if the logger exists
            aLoggerStub = self.createLoggerStub(aFullPNString)
            if not aLoggerStub.exists():
                aErrorMessage = '\nLogger doesn\'t exist.!\n'
                self.message(aErrorMessage)
                return None
            aLoggerStartTime = aLoggerStub.getStartTime()
            aLoggerEndTime = aLoggerStub.getEndTime()
            if aStartTime == -1 or anEndTime == -1:
                # gets start time and end time from logger
                aStartTime = aLoggerStartTime
                anEndTime = aLoggerEndTime
            else:
                # checks the value
                if not (aLoggerStartTime < aStartTime < aLoggerEndTime):
                    aStartTime = aLoggerStartTime
                if not (aLoggerStartTime < anEndTime < aLoggerEndTime):
                    anEndTime = aLoggerEndTime

            # -------------------------------------------------
            # gets the matrix data from logger.
            # -------------------------------------------------
            if anInterval == -1:
                # gets data with specifing interval
                aMatrixData = aLoggerStub.getData(aStartTime, anEndTime)
            else:
                # gets data without specifing interval
                aMatrixData = aLoggerStub.getData(aStartTime, anEndTime,
                                                  anInterval)

            # sets data name
            aECDDataFile.setDataName(aFullPNString)

            # sets matrix data
            aECDDataFile.setData(aMatrixData)

            # -------------------------------------------------
            # adds data file to data file manager
            # -------------------------------------------------
            aDataFileManager.getFileMap()[ ` aFileIndex `] = aECDDataFile

            aFileIndex = aFileIndex + 1

            # for(2)

        try:  #(1)

            aDataFileManager.saveAll()

        except:  #try(1)

            # -------------------------------------------------
            # displays error message and exit this method.
            # -------------------------------------------------

            import traceback
            print __name__,
            aErrorMessageList = traceback.format_exception(
                sys.exc_type, sys.exc_value, sys.exc_traceback)
            for aLine in aErrorMessageList:
                self.message(aLine)

            aErrorMessage = "Error : could not save [%s] " % aFullPNString
            self.message(aErrorMessage)

        else:  # try(1)
            # -------------------------------------------------
            # displays error message and exit this method.
            # -------------------------------------------------

            aSuccessMessage = " All files you selected are saved. "
            self.message(aSuccessMessage)
#run for recording simulation log of all variable in this model.
VmLogger.setLoggerPolicy([1, 0.1, 1, 1000000])
run(RECORDING_TIME)

#save simulation log of membrane potential in files as csv and ecd.
pretimecourse = VmLogger.getData()
precsvfile = open('Vm' + '_' + FullPN_GX + '_' + str(VALUE_OF_GX) + '.csv',
                  'w')
writer = csv.writer(precsvfile)
pretimecourse_csv = np.matrix(pretimecourse)
pretimecourse_csv = pretimecourse_csv.tolist()
name = ['time', 'Vm']
pretimecourse_csv.insert(0, ['time', 'Vm'])
writer.writerows(pretimecourse_csv)
pretimecourse = ECDDataFile(pretimecourse)
pretimecourse.setDataName(VmLogger.getName())
pretimecourse.setNote(VmLogger.getName())
pretimecourse.save('Vm' + '_' + FullPN_GX + '_' + str(VALUE_OF_GX) + '.ecd')

#save simulation log of all variable except for membrane potential in a file as csv.
saveCSV(allLoggerList, FullPN_GX)

#
print currentnumber
if currentnumber == endnumber - 1:
    print "end"

else:
    print "continue"

print FullPN_GX + '_' + str(VALUE_OF_GX)
Esempio n. 5
0
	aTimeCouse = ECDDataFile()
	aTimeCouse.load( _DATA_ + os.sep + TRAINING_DATA_FILE_LIST[i] )
	aTrainingTimeCourseList.append( aTimeCouse )

# --------------------------------------------------------
# (6) save predicted time-course
# --------------------------------------------------------
aPredictedTimeCouseList = []

for i in range( len(aLoggerList) ):
	
	aTimeCouse = ECDDataFile( aLoggerList[i].getData(START_TIME, \
							 DULATION + INTERVAL, \
							 INTERVAL) )
	aTimeCouse.setDataName( aLoggerList[i].getName() )
	aTimeCouse.setNote( 'Predicted %s' %VARIABLE_LIST_FOR_LOGGER[i] )
	aTimeCouse.save( PREFIX_OF_PREDICTED_TIMECOURSE + \
			 TRAINING_DATA_FILE_LIST[i] )

	aPredictedTimeCouseList.append( aTimeCouse )



# --------------------------------------------------------
# (7) calculate the difference between the training and 
#     the prediction simulated time-course.
# --------------------------------------------------------
aDifference = 0.0

for i in range(aTrainingTimeCourseList[0].getSize()[1]):
Esempio n. 6
0
# run for recording simulation log of all variable in this model.
VmLogger.setLoggerPolicy([1, 0.1, 1, 1000000])
run(RECORDING_TIME)

# save simulation log of membrane potential in files as csv and ecd.
pretimecourse = VmLogger.getData()
precsvfile = open("Vm" + "_" + FullPN_GX + "_" + str(VALUE_OF_GX) + ".csv", "w")
writer = csv.writer(precsvfile)
pretimecourse_csv = np.matrix(pretimecourse)
pretimecourse_csv = pretimecourse_csv.tolist()
name = ["time", "Vm"]
pretimecourse_csv.insert(0, ["time", "Vm"])
writer.writerows(pretimecourse_csv)
pretimecourse = ECDDataFile(pretimecourse)
pretimecourse.setDataName(VmLogger.getName())
pretimecourse.setNote(VmLogger.getName())
pretimecourse.save("Vm" + "_" + FullPN_GX + "_" + str(VALUE_OF_GX) + ".ecd")

# save simulation log of all variable except for membrane potential in a file as csv.
saveCSV(allLoggerList, FullPN_GX)

#
print currentnumber
if currentnumber == endnumber - 1:
    print "end"

else:
    print "continue"

print FullPN_GX + "_" + str(VALUE_OF_GX)
Esempio n. 7
0
    def saveLoggerData( self, fullpn=0, aSaveDirectory='./Data', aStartTime=-1, anEndTime=-1, anInterval=-1 ):
        
        # -------------------------------------------------
        # Check type.
        # -------------------------------------------------
        
        aLoggerNameList = []

        if type( fullpn ) == str:
            aLoggerNameList.append( fullpn )
        elif not fullpn :
            aLoggerNameList = self.getLoggerList()
        elif type( fullpn ) == list: 
            aLoggerNameList = fullpn
        elif type( fullpn ) == tuple: 
            aLoggerNameList = fullpn
        else:
            self.message( "%s is not suitable type.\nuse string or list or tuple"%fullpn )
            return
            
        # -------------------------------------------------
        # Execute saving.
        # -------------------------------------------------
        if not os.path.isdir( aSaveDirectory ):
           os.mkdir( aSaveDirectory )

        # creates instance datafilemanager
        aDataFileManager = DataFileManager()

        # sets root directory to datafilemanager
        aDataFileManager.setRootDirectory( aSaveDirectory )
        
        aFileIndex=0

            
            # gets all list of selected property name
        for aFullPNString in aLoggerNameList: #(2)

             # -------------------------------------------------
            # from [Variable:/CELL/CYTOPLASM:E:Value]
            # to   [Variable_CELL_CYTOPLASM_E_Value]
             # -------------------------------------------------

            aRootIndex = aFullPNString.find( ':/' )
            aFileName = aFullPNString[:aRootIndex]+aFullPNString[aRootIndex+1:]
            aFileName = aFileName.replace( ':', '_' )
            aFileName = aFileName.replace( '/', '_' )
            
            aECDDataFile = ECDDataFile()
            aECDDataFile.setFileName( aFileName )
            
            # -------------------------------------------------
            # Gets logger
            # -------------------------------------------------
            # need check if the logger exists
            aLoggerStub = self.createLoggerStub( aFullPNString )
            if not aLoggerStub.exists():
                aErrorMessage='\nLogger doesn\'t exist.!\n'
                self.message( aErrorMessage )
                return None
            aLoggerStartTime= aLoggerStub.getStartTime()
            aLoggerEndTime= aLoggerStub.getEndTime()
            if aStartTime == -1 or anEndTime == -1:
                # gets start time and end time from logger
                aStartTime = aLoggerStartTime
                anEndTime = aLoggerEndTime
            else:
                # checks the value
                if not ( aLoggerStartTime < aStartTime < aLoggerEndTime ):
                    aStartTime = aLoggerStartTime
                if not ( aLoggerStartTime < anEndTime < aLoggerEndTime ):
                    anEndTime = aLoggerEndTime

            # -------------------------------------------------
            # gets the matrix data from logger.
            # -------------------------------------------------
            if anInterval == -1:
                # gets data with specifing interval 
                aMatrixData = aLoggerStub.getData( aStartTime, anEndTime )
            else:
                # gets data without specifing interval 
                aMatrixData = aLoggerStub.getData( aStartTime, anEndTime, anInterval )

            # sets data name 
            aECDDataFile.setDataName(aFullPNString)

            # sets matrix data
            aECDDataFile.setData(aMatrixData)

            # -------------------------------------------------
            # adds data file to data file manager
            # -------------------------------------------------
            aDataFileManager.getFileMap()[`aFileIndex`] = aECDDataFile
            
            aFileIndex = aFileIndex + 1

            # for(2)

        try: #(1)
                
            aDataFileManager.saveAll()

        except: #try(1)

            # -------------------------------------------------
            # displays error message and exit this method.
            # -------------------------------------------------

            import traceback 
            print __name__,
            aErrorMessageList = traceback.format_exception(sys.exc_type,sys.exc_value,sys.exc_traceback)
            for aLine in aErrorMessageList: 
                self.message( aLine ) 
                
            aErrorMessage= "Error : could not save [%s] " %aFullPNString
            self.message( aErrorMessage )


        else: # try(1)
            # -------------------------------------------------
            # displays error message and exit this method.
            # -------------------------------------------------
            
            aSuccessMessage= " All files you selected are saved. " 
            self.message( aSuccessMessage )
Esempio n. 8
0
File: run.py Progetto: ecell/ecell3
# print some values
message( 't= \t%s' % getCurrentTime() )
message( 'S:Value= \t%s' % S.getProperty( 'Value' ) )
message( 'S:MolarConc= \t%s' % S.getProperty( 'MolarConc' ) )
# run
duration = 1000
message( '\n' )
message( 'run %s sec.\n' % duration )
run( duration )


# print results
message( 't= \t%s' % getCurrentTime() )
message( 'S:Value= \t%s' % S.getProperty( 'Value' ) )
message( 'S:MolarConc= \t%s' % S.getProperty( 'MolarConc' ) )

message( '\n' )

from ecell.ECDDataFile import *

message('saving S.ecd..')
aDataFile = ECDDataFile( S_Logger.getData(0,2000,.5) )
aDataFile.setDataName( S_Logger.getName() )
aDataFile.setNote( '' )
aDataFile.save( 'S.ecd' )

#message('loading')
#aNewFile = ECDDataFile()
#aNewFile.load( 'S.ecd' )
#print aNewFile.getData()[:10]
Esempio n. 9
0
# (5) run
# --------------------------------------------------------
run( DULATION + INTERVAL )
step( 1 )


# --------------------------------------------------------
# (6) save predicted time-course
# --------------------------------------------------------
predictedTimeCouseDict = {}

for FullPN in TRAINING_TIME_COURSE_DATA_DICT.keys():
    
    aTimeCouse = ECDDataFile( aLoggerDict[ FullPN ].getData(
                              START_TIME, DULATION + INTERVAL, INTERVAL) )
    aTimeCouse.setDataName( aLoggerDict[ FullPN ].getName() )
    aTimeCouse.setNote( 'Predicted {}'.format( FullPN ) )
    aTimeCouse.save( PREFIX_OF_PREDICTED_TIMECOURSE + \
             TRAINING_TIME_COURSE_DATA_DICT[ FullPN ]['ECDFileName'] )

    predictedTimeCouseDict[ FullPN ] = aTimeCouse


# --------------------------------------------------------
# (7) calculate the difference between the training and 
#     the prediction simulated time-course.
# --------------------------------------------------------
aDifference = 0.0
data_size = None

for FullPN in TRAINING_TIME_COURSE_DATA_DICT.keys():
Esempio n. 10
0
# print some values
message( 't= \t%s' % getCurrentTime() )
message( 'S:Value= \t%s' % S.getProperty( 'Value' ) )
message( 'S:MolarConc= \t%s' % S.getProperty( 'MolarConc' ) )
# run
duration = 1000
message( '\n' )
message( 'run %s sec.\n' % duration )
run( duration )


# print results
message( 't= \t%s' % getCurrentTime() )
message( 'S:Value= \t%s' % S.getProperty( 'Value' ) )
message( 'S:MolarConc= \t%s' % S.getProperty( 'MolarConc' ) )

message( '\n' )

from ecell.ECDDataFile import *

message('saving S.ecd..')
aDataFile = ECDDataFile( S_Logger.getData(0,2000,.5) )
aDataFile.setDataName( S_Logger.getName() )
aDataFile.setNote( '' )
aDataFile.save( 'S.ecd' )

#message('loading')
#aNewFile = ECDDataFile()
#aNewFile.load( 'S.ecd' )
#print aNewFile.getData()[:10]
Esempio n. 11
0
# --------------------------------------------------------
# (3) create logger stubs
# --------------------------------------------------------
logger_dict = {}

for a_target_FullPN in TARGET:
    logger_dict[a_target_FullPN] = createLoggerStub(a_target_FullPN)
    logger_dict[a_target_FullPN].create()

# --------------------------------------------------------
# (4) run
# --------------------------------------------------------

run(11.0)
step(1)

# --------------------------------------------------------
# (6) save predicted time-course
# --------------------------------------------------------
aPredictedTimeCouseList = []

for a_FullPN, a_Logger in logger_dict.items():

    a_time_course = ECDDataFile(a_Logger.getData(0, 11, 0.01))
    a_time_course.setDataName(a_Logger.getName())
    a_time_course.setNote('Predicted {}'.format(a_FullPN))
    a_time_course.save('{}.ecd'.format(a_FullPN.split(':')[2]))

# end of this file