This notebook demonstrates how quantifications and tracks generated by ShuttleTracker (http://pmbm.ippt.pan.pl/software/shuttletracker) can be loaded, joined, and analyzed using the shuttletracker Python module. Below, it's shown how the module can be used to search for the most suspicious outliers among all tracks (→ section Reporting global outliers) or to scrutinize the tracks one-by-one (→ section Checking tracks individually), and how to obtain cell lineage (→ section Separate use of subroutines).
# Likely, you have just finished working on microscopic images.
# A dark theme in Jupyter may be easier on your eyes.
!pip3 install jupyterthemes
!${HOME}/.local/bin/jt -t monokai -fs 110 -tfs 12 -nfs 115 -ofs 11 -cellw 70% -T -f roboto
from jupyterthemes import jtplot
jtplot.style(theme='monokai', context='talk', fscale=1.45, spines=True, ticks=True)
import shuttletracker
# Quantification files (*_quant.csv) and tracking files (tracks.csv, tracks_meta.csv)
# shoud be located in the below-specified folder.
my_dir = '../March26_WellB_Pos09'
delta_t = shuttletracker.read_time_interval(my_dir)
qtracks = shuttletracker.load_tracks(my_dir,
ntracks=300,
exclude_tracks_with_incomplete_nuclei=True)
Found 241 quantification file sets (nuc,per,img). Found 425 tracks. Merging 300 tracks with quantifications... done. Excluding 80 tracks with incomplete nuclei... done.
# Print columns available in quantified tracks.
first_track_name, first_track_data, first_track_is_revised = qtracks[0]
print('\n'.join(first_track_data.keys()))
time_point_index nuc_nucleus_id nuc_area nuc_masked_area nuc_eccentricity nuc_is_complete nuc_center_x nuc_center_y nuc_NFkB_intensity_min nuc_NFkB_intensity_max nuc_NFkB_intensity_median nuc_NFkB_intensity_quartile1 nuc_NFkB_intensity_quartile3 nuc_NFkB_intensity_mean nuc_NFkB_intensity_stddev nuc_NFkB_intensities_sum nuc_H2B_intensity_min nuc_H2B_intensity_max nuc_H2B_intensity_median nuc_H2B_intensity_quartile1 nuc_H2B_intensity_quartile3 nuc_H2B_intensity_mean nuc_H2B_intensity_stddev nuc_H2B_intensities_sum per_area per_NFkB_intensity_min per_NFkB_intensity_max per_NFkB_intensity_median per_NFkB_intensity_quartile1 per_NFkB_intensity_quartile3 per_NFkB_intensity_mean per_NFkB_intensity_stddev per_NFkB_intensities_sum per_H2B_intensity_min per_H2B_intensity_max per_H2B_intensity_median per_H2B_intensity_quartile1 per_H2B_intensity_quartile3 per_H2B_intensity_mean per_H2B_intensity_stddev per_H2B_intensities_sum img_area img_area_masked img_NFkB_intensity_min img_NFkB_intensity_max img_NFkB_intensity_median img_NFkB_intensity_quartile1 img_NFkB_intensity_quartile3 img_NFkB_intensity_mean img_NFkB_intensity_stddev img_NFkB_intensities_sum img_H2B_intensity_min img_H2B_intensity_max img_H2B_intensity_median img_H2B_intensity_quartile1 img_H2B_intensity_quartile3 img_H2B_intensity_mean img_H2B_intensity_stddev img_H2B_intensities_sum
# For several tracks, plot a proxy of nuclear translocation based on available quantifications.
%matplotlib inline
import matplotlib.pyplot as plot
import matplotlib.ticker as ticker
n_curves = 30
skip_initial = 10
secs_per_min = 60
fig, ax = plot.subplots(figsize=(16, 5))
ax.set_xlabel('Time [min]')
ax.set_ylabel('Nuclear translocation of NF-κB')
ax.xaxis.set_major_locator(ticker.MultipleLocator(secs_per_min))
for track_name, q, is_revised in qtracks[skip_initial:skip_initial + n_curves]:
x = q['time_point_index']*delta_t/secs_per_min
y = q['nuc_NFkB_intensity_mean']/q['per_NFkB_intensity_mean']
key = 'track ' + track_name
ax.plot(x, y, label=key, linewidth=0.75)
This mode of use aids priority fixing of the most outstanding errors in segmentation or tracking.
shuttletracker.inspect(qtracks)
Largest nuclear displacements [showing largest 30]: track 205 [@ time-point 203]: nucleus displacement of 17.0x median displacement track 68 [@ time-point 23]: nucleus displacement of 15.5x median displacement track 268 [@ time-point 158]: nucleus displacement of 14.7x median displacement track 104 [@ time-point 23]: nucleus displacement of 14.6x median displacement track 155 [@ time-point 158]: nucleus displacement of 14.5x median displacement track 71 [@ time-point 203]: nucleus displacement of 14.5x median displacement track 70 [@ time-point 116]: nucleus displacement of 14.4x median displacement track 216 [@ time-point 203]: nucleus displacement of 14.2x median displacement track 166 [@ time-point 68]: nucleus displacement of 14.0x median displacement track 50 [@ time-point 26]: nucleus displacement of 13.6x median displacement track 233 [@ time-point 116]: nucleus displacement of 13.1x median displacement track 65 [@ time-point 49]: nucleus displacement of 13.0x median displacement track 94 [@ time-point 68]: nucleus displacement of 12.9x median displacement track 56 [@ time-point 48]: nucleus displacement of 12.9x median displacement track 124 [@ time-point 136]: nucleus displacement of 12.9x median displacement track 130 [@ time-point 204]: nucleus displacement of 12.7x median displacement track 118 [@ time-point 113]: nucleus displacement of 12.7x median displacement track 60 [@ time-point 203]: nucleus displacement of 12.6x median displacement track 59 [@ time-point 45]: nucleus displacement of 12.4x median displacement track 103 [@ time-point 181]: nucleus displacement of 12.3x median displacement track 294 [@ time-point 1]: nucleus displacement of 12.2x median displacement track 54 [@ time-point 181]: nucleus displacement of 12.2x median displacement track 58 [@ time-point 139]: nucleus displacement of 12.1x median displacement track 130 [@ time-point 138]: nucleus displacement of 11.8x median displacement track 67 [@ time-point 26]: nucleus displacement of 11.8x median displacement track 166 [@ time-point 26]: nucleus displacement of 11.8x median displacement track 122 [@ time-point 68]: nucleus displacement of 11.7x median displacement track 71 [@ time-point 204]: nucleus displacement of 11.7x median displacement track 146 [@ time-point 158]: nucleus displacement of 11.6x median displacement track 51 [@ time-point 113]: nucleus displacement of 11.6x median displacement Nuclear area drops [larger than 25.0%]: track 144 [@ time-point 139]: nucleus area -49.6% track 46 [@ time-point 227]: nucleus area -48.7% track 115 [@ time-point 21]: nucleus area -47.1% track 254 [@ time-point 21]: nucleus area -46.4% track 135 [@ time-point 129]: nucleus area -46.1% track 105 [@ time-point 7]: nucleus area -46.0% track 74 [@ time-point 57]: nucleus area -45.9% track 146 [@ time-point 158]: nucleus area -45.5% track 215 [@ time-point 202]: nucleus area -45.5% track 103 [@ time-point 90]: nucleus area -45.2% track 45 [@ time-point 174]: nucleus area -45.1% track 224 [@ time-point 161]: nucleus area -45.0% track 185 [@ time-point 170]: nucleus area -44.8% track 45 [@ time-point 168]: nucleus area -44.4% track 228 [@ time-point 33]: nucleus area -44.2% track 147 [@ time-point 142]: nucleus area -44.1% track 63 [@ time-point 28]: nucleus area -44.0% track 234 [@ time-point 208]: nucleus area -43.9% track 224 [@ time-point 169]: nucleus area -43.3% track 72 [@ time-point 39]: nucleus area -43.0% track 130 [@ time-point 205]: nucleus area -42.7% track 52 [@ time-point 214]: nucleus area -42.2% track 52 [@ time-point 210]: nucleus area -42.2% track 74 [@ time-point 66]: nucleus area -42.1% track 224 [@ time-point 183]: nucleus area -42.1% track 224 [@ time-point 180]: nucleus area -42.0% track 74 [@ time-point 72]: nucleus area -41.8% track 190 [@ time-point 64]: nucleus area -41.7% track 228 [@ time-point 34]: nucleus area -41.6% track 269 [@ time-point 161]: nucleus area -40.8% track 157 [@ time-point 110]: nucleus area -40.7% track 74 [@ time-point 79]: nucleus area -40.3% track 112 [@ time-point 68]: nucleus area -39.2% track 294 [@ time-point 4]: nucleus area -37.5% track 254 [@ time-point 19]: nucleus area -37.1% track 266 [@ time-point 6]: nucleus area -36.9% track 234 [@ time-point 213]: nucleus area -36.5% track 156 [@ time-point 33]: nucleus area -36.4% track 145 [@ time-point 208]: nucleus area -35.3% track 241 [@ time-point 189]: nucleus area -35.2% track 112 [@ time-point 71]: nucleus area -35.0% track 92 [@ time-point 171]: nucleus area -34.1% track 156 [@ time-point 27]: nucleus area -31.9% track 86 [@ time-point 203]: nucleus area -31.8% track 145 [@ time-point 209]: nucleus area -30.4% track 179 [@ time-point 79]: nucleus area -29.8% track 35 [@ time-point 195]: nucleus area -29.6% track 46 [@ time-point 220]: nucleus area -29.4% track 63 [@ time-point 23]: nucleus area -28.3% track 202 [@ time-point 206]: nucleus area -28.3% track 42 [@ time-point 68]: nucleus area -27.6% track 128 [@ time-point 121]: nucleus area -27.2% track 94 [@ time-point 8]: nucleus area -27.0% track 202 [@ time-point 217]: nucleus area -26.8% track 85 [@ time-point 207]: nucleus area -26.8% track 254 [@ time-point 6]: nucleus area -26.7% track 256 [@ time-point 235]: nucleus area -26.3% track 72 [@ time-point 35]: nucleus area -25.8% Nuclear area surges [larger than 25.0%]: track 89 [@ time-point 45]: nucleus area +185.1% track 234 [@ time-point 207]: nucleus area +165.6% track 266 [@ time-point 3]: nucleus area +162.2% track 52 [@ time-point 215]: nucleus area +160.1% track 74 [@ time-point 58]: nucleus area +90.3% track 224 [@ time-point 196]: nucleus area +88.7% track 224 [@ time-point 160]: nucleus area +88.0% track 128 [@ time-point 145]: nucleus area +84.3% track 74 [@ time-point 1]: nucleus area +82.3% track 74 [@ time-point 78]: nucleus area +82.0% track 224 [@ time-point 182]: nucleus area +77.7% track 224 [@ time-point 177]: nucleus area +77.7% track 224 [@ time-point 164]: nucleus area +74.0% track 74 [@ time-point 71]: nucleus area +72.9% track 74 [@ time-point 81]: nucleus area +71.3% track 112 [@ time-point 72]: nucleus area +69.7% track 234 [@ time-point 212]: nucleus area +69.0% track 254 [@ time-point 22]: nucleus area +59.7% track 112 [@ time-point 70]: nucleus area +58.7% track 154 [@ time-point 48]: nucleus area +54.9% track 251 [@ time-point 214]: nucleus area +48.4% track 157 [@ time-point 111]: nucleus area +47.3% track 89 [@ time-point 46]: nucleus area +46.9% track 115 [@ time-point 13]: nucleus area +44.2% track 202 [@ time-point 208]: nucleus area +42.8% track 157 [@ time-point 112]: nucleus area +42.2% track 81 [@ time-point 28]: nucleus area +39.5% track 202 [@ time-point 205]: nucleus area +37.8% track 128 [@ time-point 21]: nucleus area +37.4% track 94 [@ time-point 19]: nucleus area +36.1% track 94 [@ time-point 9]: nucleus area +35.8% track 130 [@ time-point 204]: nucleus area +33.3% track 112 [@ time-point 32]: nucleus area +33.0% track 89 [@ time-point 48]: nucleus area +33.0% track 94 [@ time-point 5]: nucleus area +31.8% track 52 [@ time-point 211]: nucleus area +31.3% track 52 [@ time-point 212]: nucleus area +31.2% track 128 [@ time-point 118]: nucleus area +30.7% track 256 [@ time-point 236]: nucleus area +30.6% track 94 [@ time-point 1]: nucleus area +30.5% track 256 [@ time-point 230]: nucleus area +30.3% track 254 [@ time-point 9]: nucleus area +30.2% track 112 [@ time-point 46]: nucleus area +29.8% track 27 [@ time-point 227]: nucleus area +29.4% track 128 [@ time-point 133]: nucleus area +28.8% track 256 [@ time-point 238]: nucleus area +28.4% track 27 [@ time-point 48]: nucleus area +27.8% track 52 [@ time-point 200]: nucleus area +27.7% track 128 [@ time-point 147]: nucleus area +27.2% track 52 [@ time-point 227]: nucleus area +25.8% track 112 [@ time-point 42]: nucleus area +25.4% track 27 [@ time-point 54]: nucleus area +25.0% Possible track mergers [showing at most best 50]: match: [183:195] @ track 286 -&- track 219 @ [197:240] gap: 1 displacement: 1.4 lengths: 13+ 44 match: [142:156] @ track 281 -&- track 170 @ [157:240] gap: 0 displacement: 2.9 lengths: 15+ 84 match: [ 0: 24] @ track 254 -&- track 81 @ [ 27:240] gap: 2 displacement: 4.5 lengths: 25+214 Inferred cell division events: track 124 [@ time point 160] --> track 180 [@161] -&- track 182 [@162] track 128 [@ time point 147] --> track 224 [@157] -&- track 169 [@153] track 131 [@ time point 121] --> track 135 [@122] -&- track 143 [@129] track 134 [@ time point 119] --> track 133 [@120] -&- track 132 [@120] track 190 [@ time point 69] --> track 100 [@ 70] -&- track 101 [@ 70] track 224 [@ time point 196] --> track 218 [@197] -&- track 219 [@197] track 241 [@ time point 194] --> track 244 [@195] -&- track 245 [@195] track 263 [@ time point 155] --> track 269 [@156] -&- track 181 [@161] track 266 [@ time point 19] --> track 157 [@ 21] -&- track 128 [@ 20] track 286 [@ time point 195] --> track 219 [@197] -&- track 218 [@197] track 294 [@ time point 9] --> track 187 [@ 10] -&- track 129 [@ 10]
This mode is useful for revising tracks one-by-one in conjunction with viewing them in ShuttleTracker.
The call to inspect()
is still exposed in API to allow changing default assessment parameters.
inspection = shuttletracker.inspect(qtracks, print_results=False)
shuttletracker.print_inspection_per_track(qtracks, inspection)
Track 2 -- OK (but NOT revised) Track 3 -- OK (but NOT revised) Track 4 -- OK (but NOT revised) Track 5 -- OK (but NOT revised) Track 6 -- OK (but NOT revised) Track 7 -- OK (but NOT revised) Track 8 -- OK (but NOT revised) Track 9 -- OK (but NOT revised) Track 10 -- OK (but NOT revised) Track 11 -- OK (but NOT revised) Track 12 -- OK (but NOT revised) Track 13 -- OK (but NOT revised) Track 15 -- OK (but NOT revised) Track 16 -- OK (but NOT revised) Track 17 -- OK (but NOT revised) Track 18 -- OK (but NOT revised) Track 19 -- OK (but NOT revised) Track 20 -- OK (but NOT revised) Track 21 -- OK (but NOT revised) Track 23 -- OK (but NOT revised) Track 24 -- OK (but NOT revised) Track 25 -- OK (but NOT revised) Track 26 -- OK (but NOT revised) Track 27: @ time point 227: nucleus area change (+29.4%) @ time point 48: nucleus area change (+27.8%) @ time point 54: nucleus area change (+25.0%) NOT revised. Track 28 -- OK (but NOT revised) Track 29 -- OK (but NOT revised) Track 30 -- OK (but NOT revised) Track 32 -- OK (but NOT revised) Track 33 -- OK (but NOT revised) Track 34 -- OK (but NOT revised) Track 35: @ time point 195: nucleus area change (-29.6%) NOT revised. Track 36 -- OK (but NOT revised) Track 37 -- OK (but NOT revised) Track 38 -- OK (but NOT revised) Track 39 -- OK (but NOT revised) Track 40 -- OK (but NOT revised) Track 41 -- OK (but NOT revised) Track 42: @ time point 68: nucleus area change (-27.6%) NOT revised. Track 43 -- OK (but NOT revised) Track 44 -- OK (but NOT revised) Track 45: @ time point 168: nucleus area change (-44.4%) @ time point 174: nucleus area change (-45.1%) NOT revised. Track 46: @ time point 220: nucleus area change (-29.4%) @ time point 227: nucleus area change (-48.7%) NOT revised. Track 47 -- OK (but NOT revised) Track 48 -- OK (but NOT revised) Track 49 -- OK (but NOT revised) Track 50: @ time point 26: nucleus displacement (13.6x median) NOT revised. Track 51: @ time point 113: nucleus displacement (11.6x median) NOT revised. Track 52: @ time point 200: nucleus area change (+27.7%) @ time point 210: nucleus area change (-42.2%) @ time point 211: nucleus area change (+31.3%) @ time point 212: nucleus area change (+31.2%) @ time point 214: nucleus area change (-42.2%) @ time point 215: nucleus area change (+160.1%) @ time point 227: nucleus area change (+25.8%) NOT revised. Track 53 -- OK (but NOT revised) Track 54: @ time point 181: nucleus displacement (12.2x median) NOT revised. Track 55 -- OK (but NOT revised) Track 56: @ time point 48: nucleus displacement (12.9x median) NOT revised. Track 57 -- OK (but NOT revised) Track 58: @ time point 139: nucleus displacement (12.1x median) NOT revised. Track 59: @ time point 45: nucleus displacement (12.4x median) NOT revised. Track 60: @ time point 203: nucleus displacement (12.6x median) NOT revised. Track 61 -- OK (but NOT revised) Track 62 -- OK (but NOT revised) Track 63: @ time point 23: nucleus area change (-28.3%) @ time point 28: nucleus area change (-44.0%) NOT revised. Track 64 -- OK (but NOT revised) Track 65: @ time point 49: nucleus displacement (13.0x median) NOT revised. Track 66 -- OK (but NOT revised) Track 67: @ time point 26: nucleus displacement (11.8x median) NOT revised. Track 68: @ time point 23: nucleus displacement (15.5x median) NOT revised. Track 70: @ time point 116: nucleus displacement (14.4x median) NOT revised. Track 71: @ time point 203: nucleus displacement (14.5x median) @ time point 204: nucleus displacement (11.7x median) NOT revised. Track 72: @ time point 35: nucleus area change (-25.8%) @ time point 39: nucleus area change (-43.0%) NOT revised. Track 74: @ time point 1: nucleus area change (+82.3%) @ time point 57: nucleus area change (-45.9%) @ time point 58: nucleus area change (+90.3%) @ time point 66: nucleus area change (-42.1%) @ time point 71: nucleus area change (+72.9%) @ time point 72: nucleus area change (-41.8%) @ time point 78: nucleus area change (+82.0%) @ time point 79: nucleus area change (-40.3%) @ time point 81: nucleus area change (+71.3%) NOT revised. Track 75 -- OK (but NOT revised) Track 76 -- OK (but NOT revised) Track 78 -- OK (but NOT revised) Track 79 -- OK (but NOT revised) Track 80 -- OK (but NOT revised) Track 81: @ time point 28: nucleus area change (+39.5%) Likely, a continuation of track 254 NOT revised. Track 82 -- OK (but NOT revised) Track 83 -- OK (but NOT revised) Track 84 -- OK (but NOT revised) Track 85: @ time point 207: nucleus area change (-26.8%) NOT revised. Track 86: @ time point 203: nucleus area change (-31.8%) NOT revised. Track 87 -- OK (but NOT revised) Track 88 -- OK (but NOT revised) Track 89: @ time point 45: nucleus area change (+185.1%) @ time point 46: nucleus area change (+46.9%) @ time point 48: nucleus area change (+33.0%) NOT revised. Track 91 -- OK (but NOT revised) Track 92: @ time point 171: nucleus area change (-34.1%) NOT revised. Track 93 -- OK (but NOT revised) Track 94: @ time point 19: nucleus area change (+36.1%) @ time point 1: nucleus area change (+30.5%) @ time point 5: nucleus area change (+31.8%) @ time point 68: nucleus displacement (12.9x median) @ time point 8: nucleus area change (-27.0%) @ time point 9: nucleus area change (+35.8%) NOT revised. Track 95 -- OK (but NOT revised) Track 96 -- OK (but NOT revised) Track 98 -- OK (but NOT revised) Track 99 -- OK (but NOT revised) Track 100: Daughter of track 190 (division @ time point 69) NOT revised. Track 101: Daughter of track 190 (division @ time point 69) NOT revised. Track 102 -- OK (but NOT revised) Track 103: @ time point 181: nucleus displacement (12.3x median) @ time point 90: nucleus area change (-45.2%) NOT revised. Track 104: @ time point 23: nucleus displacement (14.6x median) NOT revised. Track 105: @ time point 7: nucleus area change (-46.0%) NOT revised. Track 110 -- OK (but NOT revised) Track 112: @ time point 32: nucleus area change (+33.0%) @ time point 42: nucleus area change (+25.4%) @ time point 46: nucleus area change (+29.8%) @ time point 68: nucleus area change (-39.2%) @ time point 70: nucleus area change (+58.7%) @ time point 71: nucleus area change (-35.0%) @ time point 72: nucleus area change (+69.7%) NOT revised. Track 113 -- OK (but NOT revised) Track 115: @ time point 13: nucleus area change (+44.2%) @ time point 21: nucleus area change (-47.1%) NOT revised. Track 116 -- OK (but NOT revised) Track 117 -- OK (but NOT revised) Track 118: @ time point 113: nucleus displacement (12.7x median) NOT revised. Track 119 -- OK (but NOT revised) Track 121 -- OK (but NOT revised) Track 122: @ time point 68: nucleus displacement (11.7x median) NOT revised. Track 123 -- OK (but NOT revised) Track 124: @ time point 136: nucleus displacement (12.9x median) Parent of tracks 180 and 182 (division @ time point 160) NOT revised. Track 125 -- OK (but NOT revised) Track 127 -- OK (but NOT revised) Track 128: @ time point 118: nucleus area change (+30.7%) @ time point 121: nucleus area change (-27.2%) @ time point 133: nucleus area change (+28.8%) @ time point 145: nucleus area change (+84.3%) @ time point 147: nucleus area change (+27.2%) @ time point 21: nucleus area change (+37.4%) Parent of tracks 224 and 169 (division @ time point 147) Daughter of track 266 (division @ time point 19) NOT revised. Track 129: Daughter of track 294 (division @ time point 9) NOT revised. Track 130: @ time point 138: nucleus displacement (11.8x median) @ time point 204: nucleus displacement (12.7x median) @ time point 204: nucleus area change (+33.3%) @ time point 205: nucleus area change (-42.7%) NOT revised. Track 131: Parent of tracks 135 and 143 (division @ time point 121) NOT revised. Track 132: Daughter of track 134 (division @ time point 119) NOT revised. Track 133: Daughter of track 134 (division @ time point 119) NOT revised. Track 134: Parent of tracks 133 and 132 (division @ time point 119) NOT revised. Track 135: @ time point 129: nucleus area change (-46.1%) Daughter of track 131 (division @ time point 121) NOT revised. Track 137 -- OK (but NOT revised) Track 138 -- OK (but NOT revised) Track 140 -- OK (but NOT revised) Track 141 -- OK (but NOT revised) Track 143: Daughter of track 131 (division @ time point 121) NOT revised. Track 144: @ time point 139: nucleus area change (-49.6%) NOT revised. Track 145: @ time point 208: nucleus area change (-35.3%) @ time point 209: nucleus area change (-30.4%) NOT revised. Track 146: @ time point 158: nucleus displacement (11.6x median) @ time point 158: nucleus area change (-45.5%) NOT revised. Track 147: @ time point 142: nucleus area change (-44.1%) NOT revised. Track 149 -- OK (but NOT revised) Track 150 -- OK (but NOT revised) Track 151 -- OK (but NOT revised) Track 152 -- OK (but NOT revised) Track 153 -- OK (but NOT revised) Track 154: @ time point 48: nucleus area change (+54.9%) NOT revised. Track 155: @ time point 158: nucleus displacement (14.5x median) NOT revised. Track 156: @ time point 27: nucleus area change (-31.9%) @ time point 33: nucleus area change (-36.4%) NOT revised. Track 157: @ time point 110: nucleus area change (-40.7%) @ time point 111: nucleus area change (+47.3%) @ time point 112: nucleus area change (+42.2%) Daughter of track 266 (division @ time point 19) NOT revised. Track 158 -- OK (but NOT revised) Track 159 -- OK (but NOT revised) Track 160 -- OK (but NOT revised) Track 166: @ time point 26: nucleus displacement (11.8x median) @ time point 68: nucleus displacement (14.0x median) NOT revised. Track 169: Daughter of track 128 (division @ time point 147) NOT revised. Track 170: Likely, a continuation of track 281 NOT revised. Track 172 -- OK (but NOT revised) Track 176 -- OK (but NOT revised) Track 178 -- OK (but NOT revised) Track 179: @ time point 79: nucleus area change (-29.8%) NOT revised. Track 180: Daughter of track 124 (division @ time point 160) NOT revised. Track 181: Daughter of track 263 (division @ time point 155) NOT revised. Track 182: Daughter of track 124 (division @ time point 160) NOT revised. Track 183 -- OK (but NOT revised) Track 185: @ time point 170: nucleus area change (-44.8%) NOT revised. Track 186 -- OK (but NOT revised) Track 187: Daughter of track 294 (division @ time point 9) NOT revised. Track 188 -- OK (but NOT revised) Track 190: @ time point 64: nucleus area change (-41.7%) Parent of tracks 100 and 101 (division @ time point 69) NOT revised. Track 191 -- OK (but NOT revised) Track 192 -- OK (but NOT revised) Track 197 -- OK (but NOT revised) Track 198 -- OK (but NOT revised) Track 199 -- OK (but NOT revised) Track 200 -- OK (but NOT revised) Track 202: @ time point 205: nucleus area change (+37.8%) @ time point 206: nucleus area change (-28.3%) @ time point 208: nucleus area change (+42.8%) @ time point 217: nucleus area change (-26.8%) NOT revised. Track 203 -- OK (but NOT revised) Track 205: @ time point 203: nucleus displacement (17.0x median) NOT revised. Track 207 -- OK (but NOT revised) Track 209 -- OK (but NOT revised) Track 212 -- OK (but NOT revised) Track 213 -- OK (but NOT revised) Track 214 -- OK (but NOT revised) Track 215: @ time point 202: nucleus area change (-45.5%) NOT revised. Track 216: @ time point 203: nucleus displacement (14.2x median) NOT revised. Track 218: Daughter of track 286 (division @ time point 195) Daughter of track 224 (division @ time point 196) NOT revised. Track 219: Daughter of track 286 (division @ time point 195) Daughter of track 224 (division @ time point 196) Likely, a continuation of track 286 NOT revised. Track 221 -- OK (but NOT revised) Track 224: @ time point 160: nucleus area change (+88.0%) @ time point 161: nucleus area change (-45.0%) @ time point 164: nucleus area change (+74.0%) @ time point 169: nucleus area change (-43.3%) @ time point 177: nucleus area change (+77.7%) @ time point 180: nucleus area change (-42.0%) @ time point 182: nucleus area change (+77.7%) @ time point 183: nucleus area change (-42.1%) @ time point 196: nucleus area change (+88.7%) Daughter of track 128 (division @ time point 147) Parent of tracks 218 and 219 (division @ time point 196) NOT revised. Track 227 -- OK (but NOT revised) Track 228: @ time point 33: nucleus area change (-44.2%) @ time point 34: nucleus area change (-41.6%) NOT revised. Track 232 -- OK (but NOT revised) Track 233: @ time point 116: nucleus displacement (13.1x median) NOT revised. Track 234: @ time point 207: nucleus area change (+165.6%) @ time point 208: nucleus area change (-43.9%) @ time point 212: nucleus area change (+69.0%) @ time point 213: nucleus area change (-36.5%) NOT revised. Track 235 -- OK (but NOT revised) Track 240 -- OK (but NOT revised) Track 241: @ time point 189: nucleus area change (-35.2%) Parent of tracks 244 and 245 (division @ time point 194) NOT revised. Track 244: Daughter of track 241 (division @ time point 194) NOT revised. Track 245: Daughter of track 241 (division @ time point 194) NOT revised. Track 246 -- OK (but NOT revised) Track 248 -- OK (but NOT revised) Track 249 -- OK (but NOT revised) Track 251: @ time point 214: nucleus area change (+48.4%) NOT revised. Track 252 -- OK (but NOT revised) Track 253 -- OK (but NOT revised) Track 254: @ time point 19: nucleus area change (-37.1%) @ time point 21: nucleus area change (-46.4%) @ time point 22: nucleus area change (+59.7%) @ time point 6: nucleus area change (-26.7%) @ time point 9: nucleus area change (+30.2%) Likely, could be continued as track 81 NOT revised. Track 256: @ time point 230: nucleus area change (+30.3%) @ time point 235: nucleus area change (-26.3%) @ time point 236: nucleus area change (+30.6%) @ time point 238: nucleus area change (+28.4%) NOT revised. Track 257 -- OK (but NOT revised) Track 259 -- OK (but NOT revised) Track 260 -- OK (but NOT revised) Track 261 -- OK (but NOT revised) Track 262 -- OK (but NOT revised) Track 263: Parent of tracks 269 and 181 (division @ time point 155) NOT revised. Track 264 -- OK (but NOT revised) Track 266: @ time point 3: nucleus area change (+162.2%) @ time point 6: nucleus area change (-36.9%) Parent of tracks 157 and 128 (division @ time point 19) NOT revised. Track 267 -- OK (but NOT revised) Track 268: @ time point 158: nucleus displacement (14.7x median) NOT revised. Track 269: @ time point 161: nucleus area change (-40.8%) Daughter of track 263 (division @ time point 155) NOT revised. Track 271 -- OK (but NOT revised) Track 273 -- OK (but NOT revised) Track 275 -- OK (but NOT revised) Track 276 -- OK (but NOT revised) Track 277 -- OK (but NOT revised) Track 280 -- OK (but NOT revised) Track 281: Likely, could be continued as track 170 NOT revised. Track 282 -- OK (but NOT revised) Track 283 -- OK (but NOT revised) Track 284 -- OK (but NOT revised) Track 286: Parent of tracks 219 and 218 (division @ time point 195) Likely, could be continued as track 219 NOT revised. Track 289 -- OK (but NOT revised) Track 290 -- OK (but NOT revised) Track 292 -- OK (but NOT revised) Track 294: @ time point 1: nucleus displacement (12.2x median) @ time point 4: nucleus area change (-37.5%) Parent of tracks 187 and 129 (division @ time point 9) NOT revised. Track 298 -- OK (but NOT revised)
Functions called by inspect()
can be used separetly. You can then set individual parameter values and store results in a variable.
from shuttletracker import read_time_interval
from shuttletracker import load_tracks
from shuttletracker import check_displacements_sanity
from shuttletracker import check_nuclear_area_consistency
from shuttletracker import suggest_merging
from shuttletracker import infer_cell_divisions
divs = infer_cell_divisions(qtracks, min_time_points_sep=1,
max_time_points_sep=8,
max_displacement_in_median_displacements_sq_per_step=7**2,
skip_tracks_shorter_than_n_timepoints=2,
print_results=False)
for parent_track, (division_frame_index, daughter1_track, daughter2_track) in divs.items():
print(f'{parent_track} --@time_frame:{division_frame_index}--< '
f'{daughter1_track}, {daughter2_track}')
286 --@time_frame:195--< 219, 218 224 --@time_frame:196--< 218, 219 294 --@time_frame:9--< 187, 129 134 --@time_frame:119--< 133, 132 190 --@time_frame:69--< 100, 101 241 --@time_frame:194--< 244, 245 131 --@time_frame:121--< 135, 143 263 --@time_frame:155--< 269, 181 266 --@time_frame:19--< 157, 128