import matplotlib.pyplot as plt import numpy as np import statsLibTwo as statsLib # Initialise plot parameters and colours plt.rcParams.update({'font.size': 16}) plt.rcParams["font.family"] = "serif" names = ['NonXL', 'EDC-NHS \n 10%', 'EDC-NHS \n 50%', 'EDC-NHS \n 100%', 'Genipin \n 60%', 'Genipin \n 100% ', 'Genipin \n 200%', 'TG2 \n 40%', 'TG2 \n 100%', 'TG2 \n 200%'] barwidth = 0.2 colours = ['k', '#DC143C', '#DC143C', '#DC143C', '#6495ED', '#6495ED', '#6495ED', '#3CB371', '#3CB371', '#3CB371'] # Sample raw data (N=4, n=3 for reading from each well) NonXLArea = np.array([1648.645, 2299.598, 2282.091, 5830.558, 789.669, 933.371, 2820.221, 1134.862, 2146.183, 1385.692]) EDCNHS10Area = np.array( [1475.919, 1328.92, 1945.774, 1893.188, 3764.013, 2301.298, 560.764, 2990.666, 1714.846, 1280.637]) EDCNHS50Area = np.array( [811.389, 1852.545, 1300.218, 1682.718, 1945.864, 2320.132, 1825.505, 1577.573, 1359.812, 1850.819]) EDCNHS100Area = np.array( [1963.938, 2582.054, 2737.865, 1565.026, 957.28, 1172.362, 347.988, 248.834, 1595.93, 2603.528]) Genipin03Area = np.array( [1702.402, 2111.504, 2521.481, 2485.025, 1781.435, 1977.361, 2787.977, 1427.018, 1155.293, 3162.927]) Genipin05Area = np.array( [1297.758, 958.568, 2285.144, 2408.246, 4108.781, 3159.282, 1872.033, 2364.125, 3546.702, 1952.743]) Genipin10Area = np.array( [2704.01, 2170.805, 1892.892, 1802.948, 1210.236, 1560.453, 3813.922, 2405.956, 984.977, 2440.076]) TG2LowArea = np.array( [1422.497, 2019.254, 3646.063, 1775.702, 1348.81, 1021.769, 3020.359, 1559.628, 3811.806, 2703.224]) TG2MidArea = np.array([1416.403, 2341.748, 2518.853, 1622.764, 3944.352, 1290.299, 3813.88, 1860.12, 1668.2, 2270.252]) TG2HighArea = np.array( [2071.015, 2202.878, 1596.072, 819.968, 1316.192, 2129.603, 829.978, 2401.831, 1342.459, 2358.25]) NonXLPerimeter = np.array([424.665, 314.452, 307.683, 785.463, 179.369, 289.541, 363.602, 229.617, 725.367, 291.423]) EDCNHS10Perimeter = np.array([294.084, 228.693, 372.945, 426.875, 357.53, 436.274, 124.763, 741.803, 390.115, 223.247]) EDCNHS50Perimeter = np.array([247.911, 258.361, 313.668, 337.026, 622.499, 383.348, 727.561, 347.516, 263.486, 304.517]) EDCNHS100Perimeter = np.array([263.591, 534.659, 637.948, 371.54, 380.683, 305.476, 104.727, 68.744, 407.77, 377.19]) Genipin03Perimeter = np.array( [321.495, 376.649, 500.667, 357.245, 454.454, 344.514, 582.995, 350.435, 242.505, 650.107]) Genipin05Perimeter = np.array( [461.914, 163.342, 392.898, 308.896, 447.281, 563.727, 330.542, 419.572, 632.217, 320.048]) Genipin10Perimeter = np.array( [428.765, 465.286, 380.943, 317.328, 283.571, 214.839, 390.207, 652.876, 395.248, 352.018]) TG2LowPerimeter = np.array([390.345, 353.735, 699.282, 387.975, 423.062, 272.947, 586.729, 614.163, 666.564, 373.737]) TG2MidPerimeter = np.array([288.182, 522.625, 489.381, 663.738, 615.773, 236.399, 569.579, 262.68, 405.206, 513.952]) TG2HighPerimeter = np.array([368.97, 352.721, 504.087, 272.94, 254.454, 307.306, 213.778, 643.25, 364.797, 445.311]) NonXLCircularity = np.array([0.115, 0.292, 0.303, 0.119, 0.308, 0.14, 0.268, 0.27, 0.051, 0.205]) EDCNHS10Circularity = np.array([0.214, 0.319, 0.176, 0.131, 0.37, 0.152, 0.453, 0.068, 0.142, 0.323]) EDCNHS50Circularity = np.array([0.166, 0.349, 0.166, 0.186, 0.063, 0.198, 0.043, 0.164, 0.246, 0.251]) EDCNHS100Circularity = np.array([0.355, 0.114, 0.085, 0.142, 0.083, 0.158, 0.399, 0.662, 0.121, 0.23]) Genipin03Circularity = np.array([0.207, 0.187, 0.126, 0.245, 0.108, 0.209, 0.103, 0.146, 0.247, 0.094]) Genipin05Circularity = np.array([0.076, 0.451, 0.186, 0.317, 0.258, 0.125, 0.215, 0.169, 0.112, 0.24]) Genipin10Circularity = np.array([0.185, 0.126, 0.164, 0.225, 0.189, 0.425, 0.315, 0.071, 0.079, 0.247]) TG2LowCircularity = np.array([0.117, 0.203, 0.094, 0.148, 0.095, 0.172, 0.11, 0.052, 0.108, 0.243]) TG2MidCircularity = np.array([0.214, 0.108, 0.132, 0.046, 0.131, 0.29, 0.148, 0.339, 0.128, 0.108]) TG2HighCircularity = np.array([0.191, 0.223, 0.079, 0.138, 0.255, 0.283, 0.228, 0.073, 0.127, 0.149]) NonXLAspectRatio = np.array([1.746, 1.598, 1.59, 1.92, 1.046, 2.757, 1.558, 2.188, 2.434, 2.368]) EDCNHS10AspectRatio = np.array([1.977, 2.082, 1.823, 1.458, 1.116, 1.454, 1.298, 1.4, 1.82, 2.109]) EDCNHS50AspectRatio = np.array([1.23, 1.235, 1.387, 1.147, 1.079, 1.111, 1.716, 1.076, 1.561, 1.808]) EDCNHS100AspectRatio = np.array([1.137, 1.305, 1.556, 1.718, 2.219, 1.326, 1.072, 1.054, 1.272, 1.269]) Genipin03AspectRatio = np.array([2.031, 1.269, 1.407, 1.113, 2.168, 1.128, 1.47, 2.092, 1.663, 1.645]) Genipin05AspectRatio = np.array([1.355, 1.346, 1.719, 1.653, 1.16, 1.127, 1.806, 1.82, 1.614, 2.107]) Genipin10AspectRatio = np.array([1.604, 1.58, 1.424, 1.812, 1.549, 1.812, 1.233, 2.162, 1.974, 1.195]) TG2LowAspectRatio = np.array([1.729, 1.264, 1.685, 2.639, 1.781, 1.256, 1.229, 1.524, 1.817, 1.128]) TG2MidAspectRatio = np.array([1.046, 1.493, 1.497, 2.094, 1.604, 1.437, 1.397, 1.769, 1.829, 2.003]) TG2HighAspectRatio = np.array([1.157, 1.455, 1.377, 1.418, 2.348, 2.096, 1.31, 1.275, 1.328, 2.074]) NonXLRound = np.array([0.573, 0.626, 0.629, 0.521, 0.956, 0.363, 0.642, 0.457, 0.411, 0.422]) EDCNHS10Round = np.array([0.506, 0.48, 0.549, 0.686, 0.896, 0.688, 0.77, 0.714, 0.549, 0.474]) EDCNHS50Round = np.array([0.813, 0.81, 0.721, 0.872, 0.926, 0.9, 0.583, 0.929, 0.641, 0.553]) EDCNHS100Round = np.array([0.88, 0.766, 0.642, 0.582, 0.451, 0.754, 0.932, 0.949, 0.786, 0.788]) Genipin03Round = np.array([0.492, 0.788, 0.711, 0.898, 0.461, 0.886, 0.68, 0.478, 0.601, 0.608]) Genipin05Round = np.array([0.591, 0.867, 0.845, 0.897, 0.801, 0.762, 0.79, 0.622, 0.726, 0.889]) Genipin10Round = np.array([0.589, 0.729, 0.735, 0.8, 0.737, 0.874, 0.915, 0.688, 0.751, 0.864]) TG2LowRound = np.array([0.649, 0.8, 0.612, 0.744, 0.713, 0.691, 0.752, 0.673, 0.582, 0.888]) TG2MidRound = np.array([0.729, 0.684, 0.859, 0.463, 0.794, 0.817, 0.751, 0.837, 0.675, 0.535]) TG2HighRound = np.array([0.897, 0.906, 0.788, 0.625, 0.837, 0.8, 0.837, 0.668, 0.688, 0.703]) # Sample means + errors Area = statsLib.statsproducer( (NonXLArea, EDCNHS10Area, EDCNHS50Area, EDCNHS100Area, Genipin03Area, Genipin05Area, Genipin10Area, TG2LowArea, TG2MidArea, TG2HighArea), names) Perimeter = statsLib.statsproducer( (NonXLPerimeter, EDCNHS10Perimeter, EDCNHS50Perimeter, EDCNHS100Perimeter, Genipin03Perimeter, Genipin05Perimeter, Genipin10Perimeter, TG2LowPerimeter, TG2MidPerimeter, TG2HighPerimeter), names) Circularity = statsLib.statsproducer( (NonXLCircularity, EDCNHS10Circularity, EDCNHS50Circularity, EDCNHS100Circularity, Genipin03Circularity, Genipin05Circularity, Genipin10Circularity, TG2LowCircularity, TG2MidCircularity, TG2HighCircularity), names) AspectRatio = statsLib.statsproducer( (NonXLAspectRatio, EDCNHS10AspectRatio, EDCNHS50AspectRatio, EDCNHS100AspectRatio, Genipin03AspectRatio, Genipin05AspectRatio, Genipin10AspectRatio, TG2LowAspectRatio, TG2MidAspectRatio, TG2HighAspectRatio), names) Round = statsLib.statsproducer( (NonXLRound, EDCNHS10Round, EDCNHS50Round, EDCNHS100Round, Genipin03Round, Genipin05Round, Genipin10Round, TG2LowRound, TG2MidRound, TG2HighRound), names) # Calculate significance level with respect to the non-crosslinked condition statsLib.significanceTests(Area, standard='NonXL', names=names) statsLib.significanceTests(Perimeter, standard='NonXL', names=names) statsLib.significanceTests(Circularity, standard='NonXL', names=names) statsLib.significanceTests(AspectRatio, standard='NonXL', names=names) statsLib.significanceTests(Round, standard='NonXL', names=names)