-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSCRaMbLE_simulation_chr_len_events_store.py
executable file
·103 lines (86 loc) · 31.3 KB
/
SCRaMbLE_simulation_chr_len_events_store.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import matplotlib.pyplot as plt
essential = [2,7,9,10,12,20]
#essential = [2,7,9,10,12,15,16,20,22,23,27,30]
L_event = 7 # length of SCRaMbLE events
Chr_len0 = 45
max_SCRaMbLEd_events = 1001
SCRaMbLEd_events_range = 10
#num_essential = round(len(syn_chr) / 6)
num_essential = 10
syn_chr = list(range(1, Chr_len0, 1))
SCRaMbLEd_events = list(range(0, max_SCRaMbLEd_events, SCRaMbLEd_events_range))
# These results are with the normal SCRaMbLE4 function that allows null event
simulations = 1000
chr_len = [44.0, 44.078, 43.909, 43.582, 44.22, 44.302, 44.198, 43.863, 44.25, 44.567, 43.956, 44.132, 44.06, 44.2, 44.325, 44.661, 43.808, 45.241, 44.839, 45.024, 44.29, 44.863, 44.773, 44.926, 44.232, 44.975, 45.375, 45.342, 45.016, 45.014, 45.193, 45.331, 45.335, 44.6, 45.653, 44.922, 45.277, 44.921, 45.945, 44.486, 46.864, 45.554, 44.665, 47.052, 45.843, 45.238, 46.902, 46.304, 46.013, 45.494, 44.923, 46.399, 45.395, 45.689, 45.636, 45.779, 46.736, 47.008, 47.276, 46.754, 46.588, 46.62, 45.404, 45.682, 46.349, 46.216, 47.26, 45.963, 47.282, 46.739, 46.479, 46.643, 46.818, 47.549, 47.04, 46.622, 47.173, 46.892, 45.605, 46.244, 45.461, 46.771, 46.163, 46.652, 45.959, 46.547, 46.975, 46.66, 46.266, 46.508, 47.243, 48.639, 48.147, 47.694, 46.239, 46.366, 47.885, 46.433, 45.605, 45.361, 44.506, 46.054, 45.473, 45.5, 46.025, 46.441, 45.656, 46.619, 47.38, 46.378, 48.278, 45.852, 47.364, 47.349, 46.078, 47.281, 46.93, 46.923, 47.298, 47.328, 47.464, 46.465, 45.711, 46.192, 47.787, 45.927, 46.51, 45.198, 46.955, 47.222, 45.094, 46.602, 47.414, 46.344, 45.8, 46.577, 47.657, 46.226, 46.088, 46.427, 47.537, 46.168, 45.339, 47.113, 47.102, 46.451, 45.636, 47.255, 46.081, 47.403, 43.894, 46.126, 47.576, 45.653, 46.994, 45.984, 46.865, 46.693, 46.96, 46.181, 44.805, 45.628, 47.181, 46.873, 44.928, 47.523, 46.632, 46.304, 45.623, 44.698, 45.2, 46.161, 46.384, 44.32, 44.845, 46.466, 44.297, 46.67, 44.96, 45.732, 45.111, 45.611, 45.412, 45.025, 43.183, 45.874, 45.687, 45.747, 46.019, 45.691, 46.626, 44.417, 44.875, 46.592, 43.96, 45.921, 45.113, 44.747, 44.715, 47.265, 44.539, 44.851, 44.163, 44.158, 45.364, 45.393, 45.445, 43.722, 44.925, 45.25, 45.538, 44.065, 46.105, 45.73, 45.441, 44.849, 44.584, 44.624, 44.34, 45.812, 43.996, 44.921, 43.885, 45.488, 44.753, 43.524, 45.628, 45.223, 44.467, 44.088, 44.286, 44.77, 43.001, 43.892, 43.468, 44.4, 44.203, 43.162, 44.075, 42.919, 43.995, 43.87, 45.762, 43.274, 43.912, 45.013, 42.485, 44.004, 43.382, 43.089, 43.318, 43.8, 43.454, 44.168, 44.151, 43.285, 43.222, 43.139, 43.461, 43.101, 43.3, 44.281, 43.754, 42.94, 43.215, 43.85, 43.443, 42.993, 44.749, 43.299, 42.435, 43.022, 43.896, 41.459, 42.641, 43.911, 43.226, 44.08, 43.341, 42.892, 42.198, 42.004, 42.361, 42.266, 41.969, 42.081, 42.598, 43.086, 42.544, 41.795, 41.714, 42.617, 42.17, 43.029, 42.539, 41.352, 42.419, 42.141, 42.147, 42.819]
L_unique = [44.0, 43.328, 42.478, 41.504, 41.087, 40.558, 40.039, 39.395, 38.877, 38.294, 37.718, 37.544, 37.164, 36.62, 36.174, 36.053, 35.207, 35.706, 35.378, 34.92, 34.182, 34.474, 33.933, 33.784, 33.066, 33.179, 32.796, 32.579, 32.268, 32.325, 31.848, 31.72, 31.479, 30.813, 31.266, 30.68, 30.508, 30.318, 30.541, 30.042, 30.16, 29.966, 29.354, 30.051, 29.257, 29.084, 29.658, 28.656, 28.81, 28.318, 27.859, 28.551, 27.839, 27.989, 27.742, 27.664, 27.996, 27.734, 27.784, 27.363, 27.156, 26.994, 26.473, 26.709, 26.653, 26.461, 26.719, 26.183, 26.24, 26.174, 25.977, 25.907, 25.887, 25.915, 25.83, 25.516, 25.369, 25.335, 24.825, 24.663, 24.54, 24.797, 24.838, 25.122, 24.378, 24.683, 24.055, 24.359, 24.225, 24.128, 24.207, 24.766, 24.054, 24.074, 23.409, 23.378, 23.842, 23.499, 23.257, 23.23, 23.103, 23.13, 22.749, 22.965, 23.032, 22.931, 22.859, 22.584, 22.833, 22.48, 22.865, 22.053, 22.823, 22.77, 22.312, 22.113, 22.374, 22.063, 22.319, 21.892, 22.116, 21.776, 21.545, 21.368, 21.979, 21.756, 21.516, 21.276, 21.255, 21.371, 20.803, 21.083, 20.964, 21.097, 20.907, 20.818, 21.012, 20.812, 20.779, 20.814, 20.798, 20.493, 20.397, 20.701, 20.404, 20.114, 20.022, 20.429, 20.203, 20.501, 19.457, 19.786, 20.275, 19.605, 20.203, 19.84, 19.943, 19.838, 19.791, 19.511, 19.339, 19.542, 19.526, 19.81, 19.008, 19.502, 19.214, 19.381, 19.029, 18.995, 19.063, 19.08, 18.943, 18.521, 18.528, 19.056, 18.234, 18.772, 18.468, 18.576, 18.366, 18.602, 18.496, 18.17, 18.025, 18.487, 18.537, 18.33, 18.268, 17.912, 18.413, 18.162, 18.206, 18.397, 17.595, 18.203, 17.712, 17.819, 18.102, 18.1, 17.835, 17.46, 17.673, 17.334, 17.71, 17.66, 17.632, 17.23, 17.172, 17.149, 17.541, 17.068, 17.444, 17.358, 17.131, 17.198, 16.968, 17.267, 17.012, 17.166, 16.826, 17.216, 16.944, 17.193, 17.093, 16.847, 16.946, 16.62, 16.455, 16.526, 16.789, 16.615, 16.143, 16.357, 16.39, 16.691, 16.389, 16.576, 16.473, 16.225, 16.052, 16.18, 16.781, 16.186, 16.175, 16.552, 15.827, 16.004, 16.251, 15.814, 15.949, 15.981, 16.056, 16.178, 15.922, 15.735, 16.041, 15.823, 15.99, 15.804, 15.761, 15.743, 15.807, 15.528, 15.648, 15.846, 15.355, 15.546, 15.42, 15.516, 15.322, 15.577, 15.462, 15.283, 15.17, 15.351, 15.433, 15.394, 14.907, 15.078, 14.994, 15.087, 15.243, 15.047, 14.908, 15.042, 15.053, 14.937, 15.11, 15.031, 14.478, 14.576, 14.791, 14.749, 14.64, 14.529, 14.564, 14.665, 14.549, 14.834]
LG50 = [21.0, 20.311, 19.59, 18.799, 18.203, 17.66, 17.234, 16.8, 16.211, 15.643, 15.422, 15.178, 14.865, 14.318, 14.03, 13.836, 13.405, 13.39, 13.2, 12.859, 12.625, 12.513, 12.268, 12.141, 11.715, 11.561, 11.377, 11.18, 11.076, 11.144, 10.77, 10.737, 10.593, 10.324, 10.404, 10.09, 9.907, 9.853, 9.845, 9.831, 9.571, 9.514, 9.335, 9.402, 9.157, 9.089, 9.235, 8.769, 8.825, 8.748, 8.522, 8.585, 8.497, 8.488, 8.359, 8.319, 8.315, 8.233, 8.227, 8.063, 7.863, 7.798, 7.696, 7.74, 7.73, 7.549, 7.601, 7.511, 7.412, 7.359, 7.373, 7.289, 7.355, 7.208, 7.279, 7.13, 7.074, 7.064, 6.837, 6.768, 6.746, 6.77, 6.849, 6.875, 6.628, 6.716, 6.429, 6.541, 6.622, 6.576, 6.421, 6.621, 6.34, 6.251, 6.199, 6.193, 6.301, 6.234, 6.173, 6.16, 6.124, 6.037, 5.919, 6.059, 5.952, 5.974, 5.954, 5.753, 5.809, 5.775, 5.813, 5.702, 5.766, 5.769, 5.71, 5.608, 5.712, 5.55, 5.572, 5.515, 5.498, 5.459, 5.458, 5.351, 5.489, 5.485, 5.351, 5.317, 5.228, 5.22, 5.155, 5.16, 5.111, 5.175, 5.136, 5.03, 5.089, 5.081, 5.103, 5.025, 4.987, 4.961, 4.958, 5.015, 4.91, 4.8, 4.804, 4.839, 4.815, 4.92, 4.652, 4.708, 4.815, 4.636, 4.724, 4.67, 4.719, 4.653, 4.616, 4.618, 4.628, 4.569, 4.553, 4.623, 4.418, 4.521, 4.474, 4.553, 4.409, 4.447, 4.457, 4.416, 4.4, 4.274, 4.303, 4.397, 4.233, 4.35, 4.326, 4.308, 4.266, 4.312, 4.21, 4.165, 4.137, 4.204, 4.196, 4.182, 4.101, 4.068, 4.165, 4.171, 4.126, 4.121, 4.008, 4.146, 4.016, 3.994, 4.046, 3.998, 4.042, 3.854, 4.027, 3.93, 3.991, 3.932, 3.96, 3.864, 3.768, 3.761, 3.883, 3.798, 3.87, 3.816, 3.809, 3.781, 3.731, 3.861, 3.694, 3.795, 3.706, 3.81, 3.755, 3.789, 3.718, 3.666, 3.687, 3.603, 3.547, 3.603, 3.673, 3.612, 3.556, 3.562, 3.596, 3.705, 3.556, 3.631, 3.544, 3.595, 3.441, 3.529, 3.586, 3.522, 3.512, 3.559, 3.444, 3.413, 3.478, 3.395, 3.461, 3.437, 3.444, 3.481, 3.432, 3.361, 3.421, 3.435, 3.432, 3.372, 3.303, 3.362, 3.371, 3.335, 3.286, 3.379, 3.278, 3.311, 3.266, 3.297, 3.264, 3.306, 3.259, 3.2, 3.219, 3.188, 3.257, 3.23, 3.152, 3.175, 3.119, 3.185, 3.224, 3.163, 3.09, 3.128, 3.127, 3.1, 3.165, 3.145, 3.031, 3.029, 3.108, 3.043, 3.074, 3.017, 3.01, 3.046, 2.993, 3.082]
"""
# These results are with the force_SCRaMbLE function that forces a SCRaMbLE event, null events are not possible.
simulations = 1000
chr_len = [44.0, 44.077, 43.986, 44.21, 43.85, 44.406, 44.247, 43.949, 44.026, 44.95, 44.803, 43.776, 44.394, 44.657, 44.567, 44.641, 44.894, 44.203, 44.928, 45.324, 44.947, 45.307, 45.919, 44.938, 45.758, 44.768, 44.585, 46.167, 45.198, 45.637, 44.206, 45.643, 45.474, 45.721, 45.72, 45.69, 46.2, 46.705, 45.123, 47.137, 46.612, 46.111, 45.615, 47.625, 46.394, 45.767, 47.236, 45.463, 45.438, 46.937, 45.748, 46.59, 47.159, 45.259, 45.944, 45.869, 45.821, 45.327, 46.891, 45.874, 47.693, 46.014, 45.872, 46.618, 45.424, 46.999, 46.126, 46.737, 47.036, 45.028, 45.546, 46.52, 46.024, 46.207, 45.002, 46.028, 45.553, 44.816, 46.582, 44.877, 46.424, 45.907, 45.593, 46.047, 45.035, 46.532, 45.629, 45.454, 45.891, 45.104, 45.251, 44.53, 45.251, 45.874, 45.477, 45.564, 44.829, 46.428, 45.954, 45.241, 45.285, 46.648, 46.082, 44.931, 44.528, 44.078, 45.653, 44.427, 44.92, 45.681, 44.094, 46.848, 45.381, 44.271, 45.228, 43.709, 44.524, 45.875, 45.279, 44.126, 45.153, 44.813, 43.866, 44.872, 44.464, 45.6, 43.531, 43.734, 43.474, 43.887, 42.958, 45.09, 43.788, 44.32, 45.284, 45.267, 43.274, 42.772, 43.274, 44.989, 42.561, 41.787, 43.521, 43.644, 42.648, 43.391, 43.869, 44.956, 43.749, 43.918, 43.866, 42.725, 42.421, 42.459, 43.303, 43.079, 44.234, 42.316, 41.317, 44.31, 41.286, 42.965, 41.614, 42.76, 42.83, 43.154, 41.554, 42.596, 43.935, 42.855, 42.691, 40.999, 42.131, 43.2, 43.15, 42.269, 42.036, 41.596, 42.136, 42.591, 42.013, 42.575, 41.796, 41.164, 41.278, 42.178, 41.59, 41.732, 42.504, 40.85, 41.006, 41.606, 41.312, 42.271, 39.824, 40.138, 42.013, 41.076, 39.234, 41.372, 40.632, 40.596, 39.97, 40.707, 42.535, 41.066, 40.827, 41.755, 40.114, 40.483, 40.75, 41.034, 39.59, 40.563, 40.105, 39.601, 40.364, 40.412, 40.936, 41.304, 38.787, 39.263, 38.757, 41.161, 41.194, 40.676, 41.408, 40.143, 40.009, 39.359, 38.502, 40.828, 38.533, 39.83, 39.052, 40.969, 39.996, 39.99, 40.395, 39.006, 39.388, 38.44, 38.821, 39.609, 38.493, 40.091, 38.157, 39.553, 40.165, 39.925, 39.978, 39.253, 39.287, 39.381, 38.532, 38.387, 36.913, 38.64, 38.733, 39.046, 38.617, 37.796, 37.207, 38.127, 38.137, 39.661, 38.13, 38.215, 38.755, 38.192, 37.612, 37.697, 38.597, 38.595, 37.811, 38.943, 38.764, 37.836, 37.909, 38.546, 36.91, 38.863, 37.079, 38.497, 38.064, 36.906, 37.902, 36.822, 36.58, 38.346, 38.229, 37.314, 38.464, 37.407, 37.122, 38.101, 37.706, 36.684, 37.065, 39.574]
L_unique = [44.0, 42.525, 41.145, 39.96, 38.492, 37.8, 36.899, 35.562, 34.993, 34.508, 33.793, 32.588, 31.838, 31.519, 30.952, 30.377, 29.744, 29.395, 28.841, 28.349, 28.211, 27.603, 27.824, 26.774, 26.979, 26.039, 25.947, 26.034, 25.253, 25.095, 24.527, 24.448, 24.436, 24.044, 23.752, 23.45, 23.318, 23.427, 22.607, 22.707, 22.555, 22.407, 21.883, 22.28, 21.772, 21.507, 21.415, 21.165, 20.837, 20.99, 20.742, 20.572, 20.515, 19.992, 20.011, 19.64, 19.73, 19.274, 19.673, 19.156, 19.339, 18.891, 18.495, 18.967, 18.682, 18.474, 18.267, 18.341, 18.293, 17.85, 17.584, 17.823, 17.566, 17.297, 17.166, 17.219, 17.133, 17.112, 17.243, 16.846, 16.733, 16.785, 16.448, 16.392, 16.242, 16.453, 16.345, 16.236, 15.99, 15.731, 15.717, 15.639, 15.554, 15.4, 15.589, 15.595, 15.232, 15.39, 15.127, 15.239, 15.139, 15.076, 14.937, 14.955, 14.799, 14.453, 14.742, 14.412, 14.585, 14.545, 14.12, 14.494, 14.489, 14.133, 14.008, 13.981, 13.748, 14.013, 14.021, 13.919, 13.781, 13.856, 13.546, 13.739, 13.469, 13.766, 13.43, 13.365, 13.188, 13.212, 13.118, 13.221, 13.214, 12.902, 13.222, 13.143, 12.97, 12.838, 12.787, 12.828, 12.58, 12.311, 12.676, 12.679, 12.454, 12.39, 12.383, 12.325, 12.403, 12.264, 12.348, 12.135, 11.99, 12.086, 11.908, 11.965, 12.156, 11.856, 11.783, 12.06, 11.39, 11.71, 11.504, 11.727, 11.66, 11.64, 11.391, 11.602, 11.686, 11.6, 11.525, 11.262, 11.478, 11.437, 11.322, 11.148, 11.311, 11.075, 11.292, 11.135, 11.082, 10.951, 11.082, 10.959, 10.884, 11.001, 10.789, 10.901, 10.804, 10.741, 10.697, 10.796, 10.768, 10.823, 10.444, 10.47, 10.582, 10.672, 10.41, 10.538, 10.371, 10.441, 10.305, 10.364, 10.59, 10.26, 10.289, 10.362, 10.218, 10.133, 10.274, 10.384, 9.993, 10.148, 9.927, 9.832, 9.993, 10.13, 10.041, 10.05, 9.942, 9.729, 9.783, 9.915, 9.86, 9.822, 9.884, 9.91, 9.775, 9.759, 9.532, 9.925, 9.648, 9.56, 9.651, 9.772, 9.534, 9.54, 9.646, 9.593, 9.51, 9.415, 9.469, 9.482, 9.397, 9.436, 9.35, 9.497, 9.349, 9.391, 9.433, 9.252, 9.222, 9.382, 9.151, 9.231, 9.054, 9.179, 9.057, 9.15, 9.025, 9.064, 8.967, 9.014, 9.114, 9.15, 8.984, 9.118, 8.899, 8.927, 9.036, 9.006, 8.905, 8.877, 8.792, 8.957, 8.778, 8.769, 8.873, 8.698, 8.607, 8.619, 8.827, 8.909, 8.79, 8.751, 8.68, 8.579, 8.593, 8.631, 8.891, 8.603, 8.749, 8.592, 8.42, 8.523, 8.62, 8.454, 8.496, 8.605]
LG50 = [21.0, 19.579, 18.296, 17.138, 16.0, 15.205, 14.563, 13.596, 13.133, 12.627, 12.171, 11.57, 10.957, 10.743, 10.354, 10.06, 9.645, 9.459, 9.136, 8.808, 8.778, 8.34, 8.52, 8.093, 8.07, 7.729, 7.685, 7.573, 7.229, 7.097, 7.042, 6.875, 6.916, 6.709, 6.62, 6.427, 6.269, 6.34, 6.089, 6.002, 6.008, 5.874, 5.694, 5.77, 5.634, 5.579, 5.463, 5.404, 5.321, 5.293, 5.236, 5.116, 5.086, 4.915, 4.916, 4.873, 4.808, 4.706, 4.764, 4.595, 4.67, 4.475, 4.428, 4.52, 4.483, 4.317, 4.313, 4.285, 4.263, 4.202, 4.025, 4.121, 4.096, 3.995, 3.944, 3.866, 3.853, 3.904, 3.871, 3.788, 3.78, 3.734, 3.666, 3.635, 3.646, 3.602, 3.696, 3.622, 3.549, 3.436, 3.429, 3.466, 3.4, 3.345, 3.393, 3.384, 3.259, 3.301, 3.234, 3.216, 3.237, 3.215, 3.207, 3.173, 3.092, 3.036, 3.11, 3.027, 3.074, 3.049, 2.911, 3.014, 3.005, 2.922, 2.905, 2.883, 2.821, 2.919, 2.854, 2.904, 2.801, 2.851, 2.754, 2.824, 2.707, 2.795, 2.738, 2.676, 2.65, 2.642, 2.631, 2.661, 2.629, 2.601, 2.632, 2.603, 2.595, 2.552, 2.493, 2.519, 2.412, 2.394, 2.462, 2.502, 2.412, 2.424, 2.368, 2.37, 2.427, 2.364, 2.416, 2.327, 2.35, 2.351, 2.306, 2.292, 2.311, 2.281, 2.31, 2.308, 2.158, 2.194, 2.194, 2.218, 2.186, 2.152, 2.138, 2.189, 2.21, 2.165, 2.179, 2.097, 2.169, 2.115, 2.118, 2.09, 2.084, 2.114, 2.119, 2.043, 2.042, 1.99, 2.071, 2.051, 1.964, 2.007, 1.981, 1.974, 1.967, 1.956, 1.953, 1.983, 1.949, 1.917, 1.869, 1.86, 1.914, 1.95, 1.888, 1.869, 1.856, 1.895, 1.853, 1.835, 1.885, 1.796, 1.876, 1.857, 1.838, 1.768, 1.851, 1.874, 1.725, 1.83, 1.731, 1.725, 1.766, 1.762, 1.791, 1.766, 1.763, 1.694, 1.736, 1.713, 1.695, 1.708, 1.733, 1.739, 1.714, 1.719, 1.651, 1.733, 1.698, 1.649, 1.699, 1.691, 1.612, 1.643, 1.639, 1.65, 1.616, 1.609, 1.608, 1.612, 1.581, 1.637, 1.586, 1.648, 1.597, 1.592, 1.587, 1.564, 1.554, 1.598, 1.561, 1.561, 1.525, 1.547, 1.54, 1.537, 1.511, 1.523, 1.485, 1.48, 1.519, 1.511, 1.502, 1.54, 1.486, 1.498, 1.512, 1.48, 1.482, 1.469, 1.408, 1.487, 1.452, 1.45, 1.493, 1.427, 1.459, 1.398, 1.473, 1.459, 1.453, 1.43, 1.445, 1.425, 1.412, 1.403, 1.451, 1.438, 1.408, 1.41, 1.336, 1.4, 1.382, 1.39, 1.322, 1.372]
"""
simulations = 1000
chr_len_100 = [100.0, 105.775, 107.979, 109.778, 110.28, 112.58, 111.003, 111.983, 109.025, 111.835, 112.181, 108.464, 109.785, 106.974, 107.69, 104.887, 104.868, 103.858, 99.767, 100.475, 101.391, 98.957, 96.818, 96.024, 96.086, 93.929, 94.127, 93.335, 91.072, 90.673, 89.724, 89.476, 88.689, 86.053, 85.411, 85.395, 84.578, 82.336, 83.01, 83.807, 81.194, 81.229, 79.965, 81.086, 79.698, 78.986, 78.379, 77.022, 78.709, 76.129, 78.377, 75.454, 74.611, 74.069, 74.443, 72.791, 74.738, 72.595, 73.762, 71.364, 70.984, 70.932, 70.749, 71.908, 69.596, 71.198, 69.467, 70.354, 68.768, 70.266, 69.473, 68.569, 68.75, 66.701, 65.545, 66.021, 67.132, 66.418, 66.964, 67.123, 65.411, 66.101, 65.496, 62.924, 64.764, 64.129, 64.895, 62.96, 63.32, 63.403, 63.674, 63.598, 62.938, 62.493, 63.008, 63.157, 63.093, 62.094, 62.239, 62.898, 63.04]
L_unique_100 = [100.0, 90.096, 82.236, 76.8, 71.025, 67.152, 63.068, 59.727, 56.724, 54.044, 51.992, 49.405, 47.412, 44.93, 43.54, 41.845, 41.041, 38.924, 36.741, 36.294, 35.138, 33.453, 32.425, 31.653, 30.997, 29.71, 29.101, 28.682, 27.371, 26.799, 26.171, 25.362, 24.883, 23.987, 23.49, 22.958, 22.816, 21.964, 21.719, 21.431, 20.937, 20.488, 20.148, 20.142, 19.408, 19.395, 18.778, 18.41, 18.385, 17.885, 17.633, 17.606, 17.148, 16.966, 16.86, 16.455, 16.304, 15.941, 16.112, 15.752, 15.352, 15.454, 15.278, 15.17, 14.841, 14.536, 14.608, 14.63, 14.323, 14.235, 14.121, 13.855, 13.915, 13.748, 13.543, 13.453, 13.437, 13.351, 13.23, 13.083, 12.914, 12.992, 12.817, 12.752, 12.745, 12.666, 12.597, 12.499, 12.49, 12.389, 12.349, 12.278, 12.172, 12.15, 12.067, 12.027, 11.983, 11.977, 11.89, 11.907, 11.869]
LG50_100 = [49.0, 36.677, 29.131, 25.111, 21.656, 19.408, 17.759, 16.047, 15.163, 13.841, 13.154, 12.333, 11.471, 10.688, 10.21, 9.761, 9.476, 8.864, 8.325, 8.036, 7.75, 7.253, 6.947, 6.76, 6.65, 6.261, 6.073, 5.959, 5.626, 5.465, 5.335, 5.059, 4.977, 4.74, 4.606, 4.421, 4.43, 4.177, 4.181, 4.065, 4.037, 3.859, 3.789, 3.75, 3.557, 3.584, 3.479, 3.306, 3.328, 3.238, 3.183, 3.191, 3.038, 3.035, 2.942, 2.875, 2.828, 2.756, 2.771, 2.653, 2.594, 2.641, 2.562, 2.564, 2.49, 2.386, 2.382, 2.414, 2.324, 2.352, 2.333, 2.226, 2.279, 2.251, 2.22, 2.143, 2.146, 2.138, 2.085, 2.058, 2.099, 2.083, 2.009, 2.05, 2.0, 1.992, 1.961, 1.965, 1.912, 1.917, 1.926, 1.919, 1.885, 1.82, 1.818, 1.853, 1.845, 1.82, 1.802, 1.809, 1.776]
chr_len_L = [50.0, 60.677, 67.548, 71.942, 74.396, 75.664, 78.597, 80.25, 80.127, 80.735, 80.81, 80.946, 80.739, 81.702, 79.558, 80.152, 78.795, 81.583, 81.196, 79.532, 78.739, 77.642, 78.431, 78.38, 77.742, 78.354, 75.278, 77.579, 75.347, 76.432, 73.62, 73.651, 75.166, 74.533, 72.831, 72.268, 72.905, 72.297, 73.966, 71.532, 72.352, 71.192, 71.256, 70.675, 70.533, 68.726, 69.48, 70.087, 69.314, 70.254, 66.076, 67.753, 66.434, 67.55, 68.227, 66.502, 67.561, 65.564, 65.732, 65.635, 66.405, 65.007, 65.927, 63.642, 65.161, 65.386, 66.393, 63.636, 62.921, 63.256, 63.048, 65.047, 63.738, 61.73, 62.961, 64.789, 63.152, 62.178, 61.366, 62.439, 61.324, 61.757, 62.866, 62.413, 60.146, 60.286, 59.668, 60.893, 59.617, 60.948, 60.101, 60.89, 59.807, 59.942, 60.897, 61.105, 59.049, 60.581, 59.358, 59.012, 59.263]
L_unique_L = [50.0, 45.586, 42.968, 40.611, 38.254, 36.557, 34.955, 33.868, 32.152, 31.166, 29.685, 28.76, 27.951, 27.195, 26.128, 25.431, 24.744, 24.307, 23.339, 23.098, 22.402, 21.662, 21.438, 21.018, 20.486, 20.208, 19.515, 19.44, 18.856, 18.676, 18.303, 17.997, 17.949, 17.554, 17.079, 17.009, 16.829, 16.587, 16.224, 16.058, 15.987, 15.679, 15.74, 15.274, 15.143, 15.037, 14.903, 14.689, 14.508, 14.665, 14.152, 14.095, 13.776, 13.884, 13.893, 13.595, 13.652, 13.467, 13.26, 13.16, 13.203, 13.154, 12.964, 12.851, 12.821, 12.671, 12.713, 12.604, 12.446, 12.417, 12.377, 12.381, 12.27, 12.259, 12.17, 12.107, 12.062, 12.012, 11.82, 11.827, 11.879, 11.834, 11.724, 11.652, 11.652, 11.588, 11.566, 11.563, 11.534, 11.402, 11.378, 11.32, 11.383, 11.278, 11.216, 11.259, 11.192, 11.198, 11.094, 11.159, 11.12]
LG50_L = [24.0, 16.347, 13.316, 11.744, 10.496, 9.676, 8.837, 8.361, 7.698, 7.419, 6.91, 6.591, 6.246, 5.982, 5.684, 5.335, 5.248, 5.108, 4.804, 4.729, 4.6, 4.403, 4.262, 4.132, 4.037, 3.92, 3.772, 3.698, 3.556, 3.514, 3.449, 3.347, 3.295, 3.222, 3.107, 3.102, 3.002, 2.927, 2.827, 2.819, 2.827, 2.681, 2.778, 2.651, 2.603, 2.564, 2.515, 2.473, 2.433, 2.446, 2.362, 2.363, 2.313, 2.276, 2.278, 2.26, 2.253, 2.191, 2.115, 2.13, 2.127, 2.137, 2.059, 2.055, 2.026, 1.966, 1.998, 1.972, 1.986, 1.921, 1.899, 1.892, 1.881, 1.915, 1.852, 1.89, 1.829, 1.839, 1.864, 1.852, 1.839, 1.81, 1.756, 1.767, 1.76, 1.762, 1.773, 1.729, 1.736, 1.718, 1.685, 1.717, 1.705, 1.675, 1.648, 1.642, 1.642, 1.686, 1.644, 1.621, 1.668]
chr_len_20 = [20.0, 30.9, 38.912, 43.093, 46.068, 51.085, 52.967, 53.689, 55.752, 56.554, 57.975, 57.248, 57.861, 59.143, 60.843, 59.993, 59.698, 58.856, 60.398, 60.889, 60.696, 60.308, 61.769, 61.262, 60.378, 62.263, 59.551, 59.761, 61.308, 63.033, 59.7, 60.503, 61.361, 61.28, 61.568, 60.96, 60.147, 61.51, 60.817, 60.329, 59.497, 60.618, 62.011, 60.816, 59.81, 59.855, 58.685, 60.074, 61.009, 58.981, 60.041, 60.819, 59.263, 58.389, 60.105, 58.357, 59.68, 60.149, 57.797, 58.714, 58.154, 58.465, 58.679, 58.648, 57.857, 58.547, 59.24, 59.812, 58.468, 59.369, 58.903, 58.646, 57.491, 57.048, 58.32, 59.119, 57.065, 56.961, 56.787, 56.658, 58.537, 57.289, 57.799, 56.409, 56.947, 58.115, 58.221, 57.284, 56.424, 57.579, 56.862, 58.731, 56.918, 57.777, 55.197, 56.911, 55.92, 57.629, 57.861, 56.824, 55.384]
L_unique_20 = [20.0, 19.052, 18.392, 17.715, 17.204, 16.86, 16.487, 16.133, 15.749, 15.581, 15.25, 14.945, 14.785, 14.571, 14.382, 14.198, 13.853, 13.809, 13.642, 13.556, 13.452, 13.282, 13.204, 13.071, 12.969, 12.9, 12.782, 12.682, 12.55, 12.494, 12.373, 12.364, 12.342, 12.295, 12.154, 12.118, 11.917, 11.995, 11.892, 11.861, 11.731, 11.684, 11.619, 11.649, 11.546, 11.501, 11.439, 11.469, 11.474, 11.326, 11.326, 11.359, 11.27, 11.276, 11.135, 11.182, 11.177, 11.182, 11.064, 11.089, 11.0, 11.001, 10.977, 10.978, 10.915, 10.929, 10.878, 10.93, 10.865, 10.882, 10.799, 10.747, 10.774, 10.778, 10.721, 10.692, 10.682, 10.646, 10.622, 10.733, 10.666, 10.589, 10.63, 10.622, 10.627, 10.581, 10.548, 10.557, 10.502, 10.508, 10.487, 10.501, 10.496, 10.473, 10.414, 10.445, 10.415, 10.439, 10.447, 10.436, 10.382]
LG50_20 = [9.0, 5.959, 5.024, 4.521, 4.125, 3.861, 3.665, 3.527, 3.293, 3.172, 3.135, 2.981, 2.871, 2.826, 2.727, 2.671, 2.575, 2.515, 2.447, 2.434, 2.368, 2.342, 2.3, 2.283, 2.218, 2.187, 2.166, 2.135, 2.121, 2.071, 2.012, 2.038, 1.975, 1.97, 1.938, 1.948, 1.913, 1.918, 1.866, 1.877, 1.841, 1.805, 1.794, 1.794, 1.822, 1.782, 1.756, 1.722, 1.769, 1.719, 1.734, 1.758, 1.687, 1.738, 1.694, 1.691, 1.666, 1.644, 1.707, 1.656, 1.626, 1.635, 1.598, 1.639, 1.597, 1.628, 1.586, 1.597, 1.576, 1.631, 1.567, 1.592, 1.591, 1.578, 1.538, 1.535, 1.555, 1.519, 1.498, 1.598, 1.517, 1.572, 1.536, 1.557, 1.558, 1.542, 1.51, 1.511, 1.532, 1.519, 1.484, 1.516, 1.506, 1.487, 1.496, 1.473, 1.531, 1.5, 1.496, 1.488, 1.516]
chr_len_50_cir = [50.0, 62.68, 66.57, 71.09333333333333, 76.23333333333333, 75.76333333333334, 78.76333333333334, 80.62333333333333, 82.08333333333333, 85.14666666666666, 85.35666666666667, 82.28666666666666, 80.10666666666667, 82.10333333333334, 79.46666666666667, 81.48333333333333, 80.70333333333333, 80.55, 80.97, 77.6, 80.73666666666666, 77.38333333333334, 78.88666666666667, 76.81333333333333, 79.26, 76.87333333333333, 79.24333333333334, 78.72666666666667, 76.01, 78.07333333333334, 73.30666666666667, 75.08, 71.40333333333334, 71.79, 72.09, 74.43, 70.97, 72.26666666666667, 71.02666666666667, 75.38333333333334, 72.4, 72.55, 69.92333333333333, 69.63, 69.11666666666666, 71.05333333333333, 69.43, 71.53, 68.75666666666666, 69.16333333333333, 65.04333333333334, 68.55333333333333, 68.93333333333334, 65.75, 70.55333333333333, 69.12, 65.01666666666667, 64.34666666666666, 68.00333333333333, 66.31333333333333, 67.74333333333334, 65.80666666666667, 63.64333333333333, 65.58666666666667, 66.67333333333333, 61.95666666666666, 61.906666666666666, 64.61333333333333, 60.666666666666664, 61.85, 62.55, 62.903333333333336, 63.46333333333333, 64.78666666666666, 63.763333333333335, 62.513333333333335, 60.17666666666667, 61.88333333333333, 59.553333333333335, 61.81333333333333, 62.08, 61.35, 59.86, 59.903333333333336, 59.373333333333335, 60.92, 56.25666666666667, 62.43, 60.61666666666667, 59.233333333333334, 64.45333333333333, 61.08, 60.72, 63.13, 59.086666666666666, 59.17666666666667, 57.766666666666666, 59.31333333333333, 62.00666666666667, 58.693333333333335, 59.45333333333333]
L_unique_50_cir = [50.0, 46.61333333333334, 42.95, 40.61, 38.803333333333335, 36.12, 35.33, 34.04333333333334, 32.516666666666666, 31.536666666666665, 30.966666666666665, 29.173333333333332, 27.963333333333335, 26.85333333333333, 25.913333333333334, 25.60333333333333, 25.15, 24.336666666666666, 23.616666666666667, 22.673333333333332, 22.68, 21.813333333333333, 21.723333333333333, 20.863333333333333, 21.073333333333334, 20.10333333333333, 20.18, 19.623333333333335, 19.17, 18.863333333333333, 18.25, 18.02, 17.513333333333332, 17.243333333333332, 17.2, 17.28, 16.64, 16.8, 16.333333333333332, 16.196666666666665, 15.873333333333333, 15.466666666666667, 14.953333333333333, 15.09, 15.526666666666667, 15.176666666666666, 14.843333333333334, 14.663333333333334, 14.716666666666667, 14.403333333333334, 14.393333333333333, 14.26, 14.06, 13.993333333333334, 13.916666666666666, 13.59, 13.436666666666667, 13.54, 13.483333333333333, 13.273333333333333, 13.22, 13.103333333333333, 13.023333333333333, 13.03, 12.803333333333333, 12.7, 12.573333333333334, 12.513333333333334, 12.586666666666666, 12.393333333333333, 12.306666666666667, 12.256666666666666, 12.35, 12.27, 12.19, 11.923333333333334, 12.07, 11.99, 11.886666666666667, 11.94, 12.0, 11.753333333333334, 11.75, 11.486666666666666, 11.64, 11.553333333333333, 11.45, 11.49, 11.533333333333333, 11.446666666666667, 11.543333333333333, 11.33, 11.316666666666666, 11.403333333333334, 11.323333333333334, 11.186666666666667, 11.286666666666667, 11.16, 11.3, 11.233333333333333, 11.133333333333333]
LG50_50_cir = [24.0, 16.54, 13.506666666666666, 11.856666666666667, 10.666666666666666, 9.516666666666667, 9.003333333333334, 8.433333333333334, 7.693333333333333, 7.3966666666666665, 7.096666666666667, 6.536666666666667, 6.373333333333333, 5.87, 5.636666666666667, 5.473333333333334, 5.273333333333333, 5.096666666666667, 4.863333333333333, 4.68, 4.55, 4.336666666666667, 4.383333333333334, 4.133333333333334, 4.193333333333333, 3.8866666666666667, 3.8233333333333333, 3.8266666666666667, 3.6366666666666667, 3.49, 3.4966666666666666, 3.3733333333333335, 3.256666666666667, 3.2, 3.1166666666666667, 3.1333333333333333, 3.05, 2.9566666666666666, 2.8766666666666665, 2.776666666666667, 2.85, 2.66, 2.56, 2.6333333333333333, 2.683333333333333, 2.6466666666666665, 2.46, 2.4133333333333336, 2.533333333333333, 2.41, 2.4266666666666667, 2.37, 2.276666666666667, 2.2666666666666666, 2.31, 2.2733333333333334, 2.2133333333333334, 2.24, 2.21, 2.0, 2.1466666666666665, 2.0766666666666667, 2.04, 2.13, 2.0166666666666666, 1.9933333333333334, 2.026666666666667, 1.98, 2.0, 1.96, 1.9933333333333334, 1.87, 1.9066666666666667, 1.7833333333333334, 1.8733333333333333, 1.8033333333333332, 1.84, 1.84, 1.83, 1.8266666666666667, 1.8066666666666666, 1.7866666666666666, 1.84, 1.7166666666666666, 1.7966666666666666, 1.7033333333333334, 1.8, 1.68, 1.7933333333333332, 1.7633333333333334, 1.68, 1.6633333333333333, 1.6833333333333333, 1.72, 1.6966666666666668, 1.66, 1.6833333333333333, 1.6233333333333333, 1.6766666666666667, 1.6866666666666668, 1.62]
"""
# this is from the function 1/x with some parameters. I am tring to find an equation and curve that fits our results.
equ = [49.16076552740873, 45.77633276733906, 42.852779944626135, 40.30678975046793, 38.0734573476059, 36.101550362901015, 34.35014638900679, 32.786205886052606, 31.382792577620943, 30.117749899531574, 28.972703772878862, 27.932302265115485, 26.983629502402664, 26.115749326750493, 25.319346649946446, 24.586443141446757, 23.910170023325797, 23.28458513424321, 22.70452459997378, 22.165481770566924, 21.66350779997084, 21.195129523475256, 20.757281250993387, 20.347247824535522, 19.962616846661792, 19.601238416875717, 19.261191046623836, 18.940752684159406, 18.63837598531476, 18.352667128124367, 18.082367597963078, 17.826338472765883, 17.583546820583006, 17.35305388849734, 17.13400481610811, 16.925619650940256, 16.72718547928328, 16.53804951567226, 16.357613018740818, 16.185325921485372, 16.020682080866298, 15.863215065760942, 15.712494414079327, 15.568122299761267, 15.429730558722158, 15.296978029870605, 15.169548173301951, 15.047146932855993, 14.929500814560775, 14.816355156188145, 14.707472566320206, 14.602631514051762, 14.501625052800865, 14.404259663725231, 14.310354205994283, 14.219738962685508, 14.132254772393114, 14.047752237785549, 13.96609100335031, 13.887139095439823, 13.81077231849889, 13.73687370202656, 13.6653329934162, 13.596046192337688, 13.528915122784387, 13.46384703931257, 13.400754264359446, 13.33955385384337, 13.280167288531715, 13.222520188912155, 13.166542051526118, 13.112166004921686, 13.059328583560541, 13.007969518171977, 12.958031541188767, 12.90946020602666, 12.862203719083329, 12.816212783434853, 12.77144045329993, 12.727841998424907, 12.685374777617401, 12.643998120723708, 12.60367321840612, 12.564363019131367, 12.526032132831224, 12.488646740741599, 12.45217451096731, 12.416584519357128, 12.381847175307373, 12.347934152143237, 12.314818321755011, 12.282473693191935, 12.250875354939772, 12.219999420629414, 12.189822977943368, 12.160324040504726, 12.131481502549505, 12.10327509619824, 12.075685351156308, 12.048693556685102, 12.022281725697672]
equ2 = [96.57084722365406, 86.39258393449381, 78.08424224797507, 71.19589258291106, 65.4081198262634, 60.48849984107625, 56.26426073868202, 52.6045569546406, 49.408654241686406, 46.59786103271212, 44.109898478052166, 41.89489598296315, 39.91249342418409, 38.129711319966844, 36.51936317220584, 35.05885662775319, 33.72927750209391, 32.514682301374435, 31.4015462963749, 30.37832894877451, 29.43512879018464, 28.56340714470959, 27.75576530962328, 27.005763594967387, 26.307773396589912, 25.65685552951865, 25.048659581484614, 24.479340201466034, 23.9454871156937, 23.444066335530096, 22.972370539982997, 22.52797701825847, 22.108711872598676, 21.712619429382116, 21.337936002556432, 20.98306730957304, 20.64656896492756, 20.32712957691838, 20.02355605449129, 19.734760797038266, 19.459750493868704, 19.197616304197517, 18.94752522480218, 18.708712482493453, 18.480474813414894, 18.262164511884606, 18.05318414877921, 17.852981873946284, 17.66104722931036, 17.476907409608785, 17.3001239163826, 17.13028955821881, 16.967025756512086, 16.80998012136407, 16.658824266814765, 16.51325183852505, 16.372976730402687, 16.237731469571397, 16.107265751593296, 15.981345110028409, 15.859749706300509, 15.742273227477604, 15.628721881003408, 15.518913476662412, 15.412676587151296, 15.309849779584397, 15.210280911099364, 15.1138264824664, 15.02035104425374, 14.929726650675194, 14.841832356751915, 14.756553754868817, 14.67378254720364, 14.593416150859472, 14.515357332845422, 14.43951387232961, 14.365798247837883, 14.29412734729425, 14.224422198997981, 14.15660772181067, 14.090612492986164, 14.026368532219802, 13.963811100622229, 13.902878513439028, 13.843511965441987, 13.785655368011927, 13.729255197018158, 13.674260350676596, 13.620622016638036, 13.56829354762123, 13.517230344962513, 13.467389749505593, 13.418730939302325, 13.371214833638046, 13.324804002934165, 13.2794625841162, 13.23515620106787, 13.191851889821496, 13.14951802816193, 13.108124269346, 13.067641479662054]
def func(x, a, b, c, d=0):
y = (c/((x+d)**a))+b
return y
a = 1.5
b = 10
c = 80000
d = 160
equ=[]
for i in range(1, 1011, 10):
Y = func(i, a, b, c, d)
equ.append(Y)
#print(Y)
print(equ)
"""
chr_len = chr_len_L[:]
L_unique = L_unique_L[:]
LG50 = LG50_L[:]
# plot the results
plt.figure(figsize=(18,9))
#plt.xticks(SCRaMbLEd_events, SCRaMbLEd_events)
plt.ylim([0,max(chr_len_100)+5])
plt.ylabel("Chr length mean over "+str(simulations)+" simulations")
plt.xlabel("SCRaMbLEd events")
plt.title("Chr length over SCRaMbLE events")
#plt.bar(SCRaMbLEd_events, chr_len, align='center')
plt.plot(SCRaMbLEd_events, chr_len, label="Chr len", color="tab:blue")
#plt.errorbar(SCRaMbLEd_events, chr_len, xerr=1, yerr=5)
plt.plot(SCRaMbLEd_events, L_unique, label="Len unique", color="tab:orange")
#plt.plot(SCRaMbLEd_events, LG50, label="LG50", color="tab:green")
#plt.plot(SCRaMbLEd_events, equ, label="y=(c/((x+d)**a))+b", color="tab:green")
plt.plot(SCRaMbLEd_events, chr_len_100, color="tab:blue")
plt.plot(SCRaMbLEd_events, L_unique_100, color="tab:orange")
#plt.plot(SCRaMbLEd_events, LG50_100, color="tab:green")
plt.plot(SCRaMbLEd_events, chr_len_20, color="tab:blue")
plt.plot(SCRaMbLEd_events, L_unique_20, color="tab:orange")
#plt.plot(SCRaMbLEd_events, LG50_20, color="tab:green")
#plt.plot(SCRaMbLEd_events, chr_len_50_cir, color="blue")
#plt.plot(SCRaMbLEd_events, L_unique_50_cir, color="orange")
plt.hlines(num_essential, 0, SCRaMbLEd_events[-1], colors="red", linestyle=":", label="Essential LU")
#plt.hlines([55, 32.5, 30, 20, 15, 12.5], 0, [87, 220, 97, 245, 103, 275], colors="black", linestyle=":", label="half life")
#plt.vlines([87, 220, 97, 245, 103, 275], [55, 32.5, 30, 20, 15, 12.5], 0, colors="black", linestyle=":")
plt.text(SCRaMbLEd_events[-1] * -0.16, len(syn_chr) * -0.16, "Simulations = " + str(simulations) + "\n" + "Initial chr length = " + str(len(syn_chr))+ "\n" + "Essential LU = " + str(num_essential))
# plt.savefig('chr_length_events.png')
plt.legend()
plt.show()
plt.close()