| @@ 50-131 (lines=82) @@ | ||
| 47 | return real_decorator |
|
| 48 | ||
| 49 | ||
| 50 | def sensitivity_it(counter): |
|
| 51 | ||
| 52 | import matplotlib as mpl |
|
| 53 | mpl.use('Agg') |
|
| 54 | import matplotlib.pyplot as plt |
|
| 55 | import diff_classifier.aws as aws |
|
| 56 | import diff_classifier.utils as ut |
|
| 57 | import diff_classifier.msd as msd |
|
| 58 | import diff_classifier.features as ft |
|
| 59 | import diff_classifier.imagej as ij |
|
| 60 | import diff_classifier.heatmaps as hm |
|
| 61 | ||
| 62 | from scipy.spatial import Voronoi |
|
| 63 | import scipy.stats as stats |
|
| 64 | from shapely.geometry import Point |
|
| 65 | from shapely.geometry.polygon import Polygon |
|
| 66 | import matplotlib.cm as cm |
|
| 67 | import os |
|
| 68 | import os.path as op |
|
| 69 | import numpy as np |
|
| 70 | import numpy.ma as ma |
|
| 71 | import pandas as pd |
|
| 72 | import boto3 |
|
| 73 | import itertools |
|
| 74 | ||
| 75 | #Sweep parameters |
|
| 76 | #---------------------------------- |
|
| 77 | radius = [4.5, 6.0, 7.0] |
|
| 78 | do_median_filtering = [True, False] |
|
| 79 | quality = [1.5, 4.5, 8.5] |
|
| 80 | linking_max_distance = [6.0, 10.0, 15.0] |
|
| 81 | gap_closing_max_distance = [6.0, 10.0, 15.0] |
|
| 82 | max_frame_gap = [1, 2, 5] |
|
| 83 | track_displacement = [0.0, 10.0, 20.0] |
|
| 84 | ||
| 85 | sweep = [radius, do_median_filtering, quality, linking_max_distance, gap_closing_max_distance, max_frame_gap, |
|
| 86 | track_displacement] |
|
| 87 | all_params = list(itertools.product(*sweep)) |
|
| 88 | ||
| 89 | #Variable prep |
|
| 90 | #---------------------------------- |
|
| 91 | s3 = boto3.client('s3') |
|
| 92 | ||
| 93 | folder = '01_18_Experiment' |
|
| 94 | s_folder = '{}/sensitivity'.format(folder) |
|
| 95 | local_folder = '.' |
|
| 96 | prefix = "P1_S1_R_0001_2_2" |
|
| 97 | name = "{}.tif".format(prefix) |
|
| 98 | local_im = op.join(local_folder, name) |
|
| 99 | aws.download_s3('{}/{}/{}.tif'.format(folder, prefix.split('_')[0], prefix), '{}.tif'.format(prefix)) |
|
| 100 | ||
| 101 | outputs = np.zeros((len(all_params), len(all_params[0])+2)) |
|
| 102 | ||
| 103 | #Tracking and calculations |
|
| 104 | #------------------------------------ |
|
| 105 | params = all_params[counter] |
|
| 106 | outfile = 'Traj_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 107 | msd_file = 'msd_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 108 | geo_file = 'geomean_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 109 | geoS_file = 'geoSEM_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 110 | msd_image = 'msds_{}_{}.png'.format(name.split('.')[0], counter) |
|
| 111 | iter_name = "{}_{}".format(prefix, counter) |
|
| 112 | ||
| 113 | ij.track(local_im, outfile, template=None, fiji_bin=None, radius=params[0], threshold=0., |
|
| 114 | do_median_filtering=params[1], quality=params[2], x=511, y=511, ylo=1, median_intensity=300.0, snr=0.0, |
|
| 115 | linking_max_distance=params[3], gap_closing_max_distance=params[4], max_frame_gap=params[5], |
|
| 116 | track_displacement=params[6]) |
|
| 117 | ||
| 118 | traj = ut.csv_to_pd(outfile) |
|
| 119 | msds = msd.all_msds2(traj, frames=651) |
|
| 120 | msds.to_csv(msd_file) |
|
| 121 | gmean1, gSEM1 = hm.plot_individual_msds(iter_name, alpha=0.05) |
|
| 122 | np.savetxt(geo_file, gmean1, delimiter=",") |
|
| 123 | np.savetxt(geoS_file, gSEM1, delimiter=",") |
|
| 124 | ||
| 125 | aws.upload_s3(outfile, '{}/{}'.format(s_folder, outfile)) |
|
| 126 | aws.upload_s3(msd_file, '{}/{}'.format(s_folder, msd_file)) |
|
| 127 | aws.upload_s3(geo_file, '{}/{}'.format(s_folder, geo_file)) |
|
| 128 | aws.upload_s3(geoS_file, '{}/{}'.format(s_folder, geoS_file)) |
|
| 129 | aws.upload_s3(msd_image, '{}/{}'.format(s_folder, msd_image)) |
|
| 130 | ||
| 131 | print('Successful parameter calculations for {}'.format(iter_name)) |
|
| 132 | ||
| 133 | ||
| 134 | if __name__ == "__main__": |
|
| @@ 50-131 (lines=82) @@ | ||
| 47 | return real_decorator |
|
| 48 | ||
| 49 | ||
| 50 | def sensitivity_it(counter): |
|
| 51 | ||
| 52 | import matplotlib as mpl |
|
| 53 | mpl.use('Agg') |
|
| 54 | import matplotlib.pyplot as plt |
|
| 55 | import diff_classifier.aws as aws |
|
| 56 | import diff_classifier.utils as ut |
|
| 57 | import diff_classifier.msd as msd |
|
| 58 | import diff_classifier.features as ft |
|
| 59 | import diff_classifier.imagej as ij |
|
| 60 | import diff_classifier.heatmaps as hm |
|
| 61 | ||
| 62 | from scipy.spatial import Voronoi |
|
| 63 | import scipy.stats as stats |
|
| 64 | from shapely.geometry import Point |
|
| 65 | from shapely.geometry.polygon import Polygon |
|
| 66 | import matplotlib.cm as cm |
|
| 67 | import os |
|
| 68 | import os.path as op |
|
| 69 | import numpy as np |
|
| 70 | import numpy.ma as ma |
|
| 71 | import pandas as pd |
|
| 72 | import boto3 |
|
| 73 | import itertools |
|
| 74 | ||
| 75 | #Sweep parameters |
|
| 76 | #---------------------------------- |
|
| 77 | radius = [4.5, 6.0, 7.0] |
|
| 78 | do_median_filtering = [True, False] |
|
| 79 | quality = [1.5, 4.5, 8.5] |
|
| 80 | linking_max_distance = [6.0, 10.0, 15.0] |
|
| 81 | gap_closing_max_distance = [6.0, 10.0, 15.0] |
|
| 82 | max_frame_gap = [1, 2, 5] |
|
| 83 | track_displacement = [0.0, 10.0, 20.0] |
|
| 84 | ||
| 85 | sweep = [radius, do_median_filtering, quality, linking_max_distance, gap_closing_max_distance, max_frame_gap, |
|
| 86 | track_displacement] |
|
| 87 | all_params = list(itertools.product(*sweep)) |
|
| 88 | ||
| 89 | #Variable prep |
|
| 90 | #---------------------------------- |
|
| 91 | s3 = boto3.client('s3') |
|
| 92 | ||
| 93 | folder = '01_18_Experiment' |
|
| 94 | s_folder = '{}/sensitivity'.format(folder) |
|
| 95 | local_folder = '.' |
|
| 96 | prefix = "P1_S1_R_0001_2_2" |
|
| 97 | name = "{}.tif".format(prefix) |
|
| 98 | local_im = op.join(local_folder, name) |
|
| 99 | aws.download_s3('{}/{}/{}.tif'.format(folder, prefix.split('_')[0], prefix), '{}.tif'.format(prefix)) |
|
| 100 | ||
| 101 | outputs = np.zeros((len(all_params), len(all_params[0])+2)) |
|
| 102 | ||
| 103 | #Tracking and calculations |
|
| 104 | #------------------------------------ |
|
| 105 | params = all_params[counter] |
|
| 106 | outfile = 'Traj_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 107 | msd_file = 'msd_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 108 | geo_file = 'geomean_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 109 | geoS_file = 'geoSEM_{}_{}.csv'.format(name.split('.')[0], counter) |
|
| 110 | msd_image = 'msds_{}_{}.png'.format(name.split('.')[0], counter) |
|
| 111 | iter_name = "{}_{}".format(prefix, counter) |
|
| 112 | ||
| 113 | ij.track(local_im, outfile, template=None, fiji_bin=None, radius=params[0], threshold=0., |
|
| 114 | do_median_filtering=params[1], quality=params[2], x=511, y=511, ylo=1, median_intensity=300.0, snr=0.0, |
|
| 115 | linking_max_distance=params[3], gap_closing_max_distance=params[4], max_frame_gap=params[5], |
|
| 116 | track_displacement=params[6]) |
|
| 117 | ||
| 118 | traj = ut.csv_to_pd(outfile) |
|
| 119 | msds = msd.all_msds2(traj, frames=651) |
|
| 120 | msds.to_csv(msd_file) |
|
| 121 | gmean1, gSEM1 = hm.plot_individual_msds(iter_name, alpha=0.05) |
|
| 122 | np.savetxt(geo_file, gmean1, delimiter=",") |
|
| 123 | np.savetxt(geoS_file, gSEM1, delimiter=",") |
|
| 124 | ||
| 125 | aws.upload_s3(outfile, '{}/{}'.format(s_folder, outfile)) |
|
| 126 | aws.upload_s3(msd_file, '{}/{}'.format(s_folder, msd_file)) |
|
| 127 | aws.upload_s3(geo_file, '{}/{}'.format(s_folder, geo_file)) |
|
| 128 | aws.upload_s3(geoS_file, '{}/{}'.format(s_folder, geoS_file)) |
|
| 129 | aws.upload_s3(msd_image, '{}/{}'.format(s_folder, msd_image)) |
|
| 130 | ||
| 131 | print('Successful parameter calculations for {}'.format(iter_name)) |
|
| 132 | ||
| 133 | ||
| 134 | if __name__ == "__main__": |
|