'''Author: mlwave.com''' '''Description: Python benchmark code for Pearson Correlation with Descretization, in use for Kaggle Connectomics Contest''' import brainparse as bp import scipy.stats as stats import numpy as np from datetime import datetime start = datetime.now() last = datetime.now() neuron_activities = bp.parse_time_series("d:\\brain\\fluorescence_valid.txt") neuron_activities = bp.discretize_time_series(neuron_activities, threshold=0.12) neuron_positions = bp.parse_neuron_positions("d:\\brain\\networkPositions_valid.txt") predictions_loc = "d:\\brain\\kaggle_preds.csv" def create_predictions(predictions_loc,neuron_activities,neuron_positions,start=datetime.now(),last=datetime.now()): print "\nWriting:", predictions_loc cache = {} with open(predictions_loc, "wb") as outfile: outfile.write( "NET_neuronI_neuronJ,Strength\n" ) for e, neuron_i_id in enumerate( xrange(len(neuron_positions)) ): for neuron_j_id, neuron_position in neuron_positions.items(): if (neuron_i_id, neuron_j_id) in cache: outfile.write( "valid_"+str(neuron_i_id+1)+"_"+str(neuron_j_id+1)+","+cache[(neuron_i_id, neuron_j_id)] + "\n" ) elif neuron_i_id == neuron_j_id: outfile.write( "valid_"+str(neuron_i_id+1)+"_"+str(neuron_j_id+1)+",0\n" ) else: corr = str(stats.pearsonr(neuron_activities[neuron_i_id], neuron_activities[neuron_j_id])[0]) cache[(neuron_j_id, neuron_i_id)] = corr outfile.write( "valid_"+str(neuron_i_id+1)+"_"+str(neuron_j_id+1)+","+corr + "\n" ) print e+1,"/",len(neuron_positions),"\t",datetime.now()-start,"\t",datetime.now()-last last = datetime.now()
import brainparse as bp import matplotlib.pyplot as plt neuron_activities = bp.parse_time_series( "d:\\brain\\fluorescence_iNet1_Size100_CC02inh.txt") fig = plt.figure() fig.suptitle( 'Top: 2000 Activity series for neuron 0 and 5 superimposed.\n Bottom: 8000 Activity series for neuron 93 and 23 superimposed.' ) ax1 = fig.add_subplot(211) ax2 = fig.add_subplot(212) ax1.plot([f for f in xrange(2000)], neuron_activities[0][:2000]) ax1.plot([f for f in xrange(2000)], neuron_activities[5][:2000]) ax2.plot([f for f in xrange(8000)], neuron_activities[93][:8000]) ax2.plot([f for f in xrange(8000)], neuron_activities[23][:8000]) plt.savefig("neuronplot.png") plt.show()
import numpy as np import sys start = datetime.now() last = datetime.now() CALC_SCORE = len(sys.argv[1:]) > 2 JUST_SCORE = False predictions_loc = "kaggle_preds.csv" if CALC_SCORE: flurofn, posfn, networkfn = sys.argv[1:] else: flurofn, posfn = sys.argv[1:] if not JUST_SCORE: neuron_activities = bp.parse_time_series(flurofn) neuron_activities = bp.discretize_time_series(neuron_activities, threshold=0.12) #neuron_activities = bp.blur_time_series(neuron_activities) #neuron_activities = bp.normalize_time_series(neuron_activities) #neuron_activities = bp.discretize_time_series(neuron_activities, threshold=np.max(neuron_activities[0]) * 0.12) neuron_positions = bp.parse_neuron_positions(posfn) avg_spikes = [] for k, v in neuron_activities.items(): avg_spikes.append(np.sum(v)) avg_spikes = np.mean(avg_spikes) print 'Average spikes:', avg_spikes def compare_neuron_activities(X, Y): return stats.pearsonr(X, Y)[0] #return stats.spearmanr(X, Y)[0]
import brainparse as bp import matplotlib.pyplot as plt neuron_activities = bp.parse_time_series("d:\\brain\\fluorescence_iNet1_Size100_CC02inh.txt") fig = plt.figure() fig.suptitle( "Top: 2000 Activity series for neuron 0 and 5 superimposed.\n Bottom: 8000 Activity series for neuron 93 and 23 superimposed." ) ax1 = fig.add_subplot(211) ax2 = fig.add_subplot(212) ax1.plot([f for f in xrange(2000)], neuron_activities[0][:2000]) ax1.plot([f for f in xrange(2000)], neuron_activities[5][:2000]) ax2.plot([f for f in xrange(8000)], neuron_activities[93][:8000]) ax2.plot([f for f in xrange(8000)], neuron_activities[23][:8000]) plt.savefig("neuronplot.png") plt.show()