-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwork_parallel_functions.py
More file actions
executable file
·82 lines (70 loc) · 19.4 KB
/
work_parallel_functions.py
File metadata and controls
executable file
·82 lines (70 loc) · 19.4 KB
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
import statistics
# This script contains functions that help with the analysis of simulations performed in parallel on multiple cores with the ProcessPoolExecutor module
# This is a Python function that takes in a single argument: list_to_sum.
# The function adds the corresponding elements of the lists contained in list_to_sum element-wise and returns a new list containing the sums.
# Note: This function is from Roulette_Simulations, Useful_functions.py
def sum_within_list(list_to_sum):
# Initialize an empty list with the same number of elements as the first list in `list_to_sum`.
SUM = [0 for _ in list_to_sum[0]]
# Iterate over the elements in `list_to_sum`.
for sim in list_to_sum:
# Iterate over the elements in each list in `list_to_sum`.
for num in range(len(sim)):
# Add the corresponding element in `SUM` to the current element and store the sum in the corresponding position of `SUM`.
SUM[num] = SUM[num] + sim[num]
return SUM
# Example: sum_within_list([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) == [12, 15, 18]
# This is a Python function that takes in two arguments: list_to_divide and divisor.
# The function divides each element in list_to_divide by the value of divisor and returns a new list containing the results.
def divide_by_sim(list_to_divide, divisor):
#new_list = [x / divisor for x in list_to_divide]
new_list = []
for dividend in list_to_divide:
new_list.append(dividend/divisor)
return new_list
# This is a Python function that takes in two arguments: L1 and L2.
# The function adds the corresponding elements of L1 and L2 element-wise and returns a new list containing the sums.
def sum_two_lists(L1, L2):
if len(L1) != len(L2):
print("The input lists have different lengths!")
return L1
summed_L = [0 for _ in L1]
for i in range(len(L1)):
summed_L[i] = L1[i] + L2[i]
return summed_L
# This is a Python function that takes in a single argument: list_to_sim.
# The function transposes the elements in list_to_sim, meaning that it rearranges the elements so that the rows become columns and the columns become rows.
def list_of_points(list_to_sim):
points = [[] for _ in list_to_sim[0]]
for sim in range(len(list_to_sim)):
for num in range(len(list_to_sim[0])):
points[num].append(list_to_sim[sim][num])
return points
# This is a Python function that takes in a single argument: list_to_sim.
# The function calculates the standard deviation of each list contained in list_to_sim and returns a new list containing the standard deviations.
def standard_deviation_from_points_parallel(list_to_sim):
List_of_points = list_of_points(list_to_sim)
list_dev = []
for SCRaMbLE_event in List_of_points:
list_dev.append(round(statistics.stdev(SCRaMbLE_event),2))
return list_dev
# test the code
if __name__ == "__main__":
chr_len_L = [[50, 50, 57, 37, 58, 43, 57, 61, 27, 53, 34, 56, 43, 49, 50, 52, 31, 70, 50, 62, 71, 52, 36, 51, 86, 31, 69, 40, 32, 23, 36, 81, 58, 28, 40, 23, 29, 79, 37, 75, 75, 66, 35, 32, 24, 37, 39, 49, 37, 29, 27, 29, 42, 87, 102, 60, 97, 18, 34, 51, 34, 28, 68, 163, 69, 39, 32, 37, 59, 43, 113, 80, 91, 21, 94, 106, 76, 37, 16, 33, 67, 43, 72, 59, 69, 69, 42, 24, 28, 80, 11, 37, 96, 54, 45, 57, 24, 21, 58, 50, 21, 25, 35, 11, 37, 28, 31, 39, 67, 67, 10, 56, 18, 26, 74, 59, 68, 33, 14, 89, 34, 83, 17, 15, 52, 31, 20, 32, 66, 33, 58, 34, 8, 16, 22, 27, 12, 64, 65, 28, 66, 22, 34, 55, 33, 41, 60, 50, 70, 30, 36, 28, 22, 45, 41, 80, 55, 24, 50, 58, 22, 83, 30, 64, 33, 28, 34, 33, 83, 22, 17, 25, 86, 94, 17, 43, 25, 114, 23, 60, 22, 95, 16, 57, 81, 36, 53, 41, 64, 24, 53, 99, 38, 37, 33, 29, 16, 57, 28, 14, 100, 19, 98, 8, 86, 22, 62, 89, 18, 52, 81, 106, 23, 31, 113, 91, 58, 44, 15, 42, 24, 13, 24, 108, 42, 17, 40, 15, 43, 19, 69, 42, 18, 38, 33, 39, 19, 48, 49, 15, 57, 31, 28, 26, 53, 41, 20, 61, 103, 22, 24, 25, 80, 62, 33, 58, 31, 23, 40, 48, 37, 29, 19, 27, 21, 29, 27, 23, 47, 38, 29, 33, 37, 32, 13, 62, 49, 30, 32, 20, 20, 79, 23, 10, 11, 73, 91, 28, 21, 31, 30, 52, 22, 22, 24, 17, 37, 33, 45, 31], [50, 50, 49, 62, 58, 26, 48, 52, 57, 49, 55, 30, 58, 29, 54, 42, 63, 59, 39, 44, 73, 47, 60, 54, 23, 63, 34, 74, 59, 50, 26, 57, 87, 77, 30, 33, 51, 62, 44, 41, 62, 13, 14, 52, 58, 58, 58, 81, 74, 33, 35, 69, 37, 58, 56, 108, 23, 28, 25, 37, 37, 62, 47, 43, 37, 58, 72, 54, 61, 24, 26, 65, 35, 22, 53, 22, 36, 26, 39, 51, 21, 23, 34, 29, 46, 130, 38, 46, 28, 53, 74, 93, 50, 35, 62, 41, 77, 15, 63, 75, 82, 27, 124, 72, 32, 73, 16, 15, 43, 35, 43, 43, 29, 19, 55, 65, 59, 107, 37, 47, 24, 21, 80, 43, 23, 26, 11, 51, 33, 30, 11, 28, 30, 25, 9, 22, 48, 36, 47, 39, 64, 13, 27, 21, 13, 24, 62, 34, 26, 57, 80, 54, 18, 57, 54, 119, 23, 21, 46, 25, 40, 46, 11, 54, 72, 42, 38, 50, 57, 47, 17, 66, 24, 44, 41, 40, 49, 35, 61, 13, 20, 37, 42, 22, 47, 37, 93, 10, 63, 64, 10, 8, 51, 60, 64, 34, 39, 32, 21, 24, 27, 25, 25, 22, 35, 10, 49, 106, 20, 77, 30, 22, 46, 11, 27, 19, 79, 24, 50, 84, 85, 29, 39, 22, 29, 40, 30, 42, 56, 32, 20, 34, 72, 46, 74, 22, 68, 23, 64, 36, 36, 29, 43, 23, 50, 15, 19, 32, 22, 11, 40, 23, 19, 37, 26, 21, 39, 22, 23, 34, 22, 22, 29, 57, 11, 28, 58, 23, 8, 9, 36, 10, 12, 31, 31, 62, 21, 38, 42, 18, 11, 101, 50, 43, 16, 32, 26, 22, 26, 35, 22, 26, 20, 61, 62, 43, 23, 14, 73, 8], [50, 60, 50, 43, 38, 40, 43, 46, 43, 46, 45, 40, 26, 53, 74, 54, 26, 35, 60, 102, 43, 45, 27, 62, 67, 54, 41, 41, 40, 57, 64, 44, 89, 44, 37, 65, 46, 54, 33, 38, 63, 45, 21, 46, 73, 55, 33, 75, 72, 33, 74, 37, 21, 12, 70, 25, 40, 23, 37, 79, 57, 86, 58, 33, 83, 57, 33, 36, 23, 21, 57, 66, 23, 74, 40, 58, 40, 64, 41, 20, 47, 85, 21, 81, 44, 54, 29, 43, 48, 23, 80, 42, 91, 32, 59, 70, 131, 41, 67, 17, 111, 68, 57, 15, 36, 28, 35, 89, 59, 21, 48, 44, 38, 54, 38, 35, 26, 37, 35, 44, 18, 23, 87, 85, 12, 72, 31, 24, 43, 28, 20, 26, 121, 21, 33, 109, 43, 75, 68, 71, 81, 26, 30, 17, 21, 16, 22, 25, 36, 91, 40, 50, 44, 29, 36, 24, 10, 47, 60, 49, 37, 39, 14, 31, 63, 45, 48, 10, 46, 35, 40, 83, 14, 15, 47, 43, 26, 28, 24, 20, 32, 16, 42, 22, 12, 38, 57, 40, 90, 41, 23, 52, 69, 44, 44, 36, 59, 18, 35, 35, 34, 13, 56, 59, 39, 14, 31, 29, 7, 36, 49, 16, 30, 102, 74, 42, 73, 45, 73, 24, 88, 71, 48, 9, 41, 44, 20, 35, 38, 41, 32, 63, 20, 52, 32, 13, 21, 26, 20, 27, 40, 17, 33, 28, 33, 59, 17, 37, 47, 10, 107, 76, 12, 35, 30, 84, 38, 25, 26, 36, 74, 70, 32, 18, 38, 21, 22, 37, 41, 49, 33, 63, 52, 18, 14, 14, 15, 46, 43, 42, 30, 56, 37, 23, 76, 21, 28, 8, 61, 68, 62, 29, 11, 43, 32, 55, 31, 23, 7, 75], [50, 62, 43, 46, 61, 80, 52, 34, 71, 51, 69, 45, 80, 78, 35, 75, 52, 77, 92, 36, 91, 33, 43, 20, 26, 79, 84, 38, 43, 54, 85, 73, 43, 24, 64, 59, 63, 26, 41, 49, 51, 66, 51, 20, 49, 71, 67, 28, 89, 45, 99, 50, 46, 76, 72, 65, 47, 58, 24, 64, 30, 51, 14, 37, 65, 46, 25, 34, 54, 60, 74, 42, 52, 39, 16, 24, 16, 89, 68, 27, 84, 37, 78, 13, 98, 29, 47, 36, 29, 40, 44, 64, 51, 47, 27, 70, 30, 48, 62, 80, 62, 44, 60, 45, 46, 21, 79, 28, 68, 31, 60, 52, 36, 16, 34, 64, 35, 23, 21, 55, 30, 50, 17, 24, 51, 19, 19, 18, 17, 46, 43, 125, 33, 68, 77, 65, 33, 16, 56, 106, 56, 37, 21, 59, 18, 55, 88, 99, 52, 21, 51, 38, 70, 84, 27, 26, 61, 47, 54, 98, 45, 77, 21, 31, 36, 95, 63, 57, 27, 24, 51, 40, 31, 15, 81, 20, 25, 47, 43, 53, 21, 19, 19, 68, 43, 61, 81, 58, 25, 62, 91, 103, 37, 19, 44, 33, 28, 36, 28, 23, 39, 53, 85, 28, 23, 26, 30, 20, 56, 125, 10, 57, 47, 64, 65, 18, 55, 31, 74, 54, 43, 20, 25, 47, 53, 41, 34, 16, 33, 26, 48, 58, 30, 27, 30, 10, 40, 22, 58, 32, 52, 80, 56, 18, 22, 35, 26, 22, 19, 47, 67, 21, 31, 27, 43, 46, 55, 21, 7, 15, 81, 11, 42, 87, 45, 16, 24, 39, 11, 60, 14, 48, 36, 57, 36, 55, 29, 28, 91, 26, 17, 12, 15, 89, 33, 30, 93, 138, 93, 11, 17, 60, 53, 48, 57, 20, 32, 43, 30, 100], [50, 50, 40, 46, 46, 51, 29, 41, 52, 42, 92, 44, 32, 44, 36, 81, 68, 90, 61, 41, 61, 50, 48, 18, 37, 72, 52, 36, 23, 57, 67, 46, 67, 36, 39, 41, 57, 48, 51, 28, 52, 29, 43, 23, 60, 27, 95, 58, 48, 89, 62, 64, 61, 63, 39, 31, 29, 77, 20, 41, 32, 51, 50, 35, 40, 16, 47, 56, 78, 68, 22, 38, 18, 39, 31, 51, 39, 42, 53, 28, 49, 21, 30, 103, 28, 72, 17, 23, 39, 30, 31, 71, 61, 25, 14, 37, 49, 32, 21, 18, 39, 52, 38, 33, 68, 15, 66, 68, 23, 94, 30, 24, 42, 38, 28, 48, 26, 58, 47, 44, 70, 70, 114, 44, 26, 47, 35, 78, 23, 33, 40, 33, 27, 39, 39, 72, 24, 23, 35, 80, 93, 36, 101, 35, 49, 28, 73, 26, 19, 34, 65, 23, 48, 23, 57, 64, 39, 25, 57, 67, 58, 103, 44, 25, 53, 73, 15, 43, 49, 40, 40, 16, 59, 59, 120, 36, 63, 51, 47, 52, 24, 79, 44, 14, 38, 39, 35, 28, 20, 40, 39, 34, 88, 53, 59, 46, 48, 30, 34, 21, 60, 10, 26, 29, 27, 26, 40, 62, 112, 34, 20, 40, 25, 31, 50, 45, 77, 18, 12, 37, 23, 35, 61, 58, 63, 25, 31, 15, 34, 100, 55, 19, 27, 55, 39, 62, 58, 9, 59, 154, 36, 49, 39, 60, 16, 66, 11, 83, 24, 28, 42, 16, 98, 60, 56, 15, 13, 26, 29, 67, 32, 9, 14, 102, 92, 10, 48, 36, 47, 78, 30, 45, 88, 72, 17, 35, 20, 51, 12, 34, 30, 52, 15, 15, 108, 23, 50, 41, 72, 10, 18, 30, 16, 39, 30, 52, 118, 44, 48, 99], [50, 50, 51, 36, 31, 52, 33, 47, 34, 46, 54, 32, 38, 50, 58, 62, 26, 57, 39, 28, 40, 34, 45, 44, 52, 65, 47, 18, 48, 23, 50, 59, 27, 40, 38, 31, 45, 41, 29, 74, 44, 27, 82, 45, 49, 52, 40, 25, 29, 55, 21, 41, 20, 55, 43, 51, 11, 54, 57, 70, 81, 91, 44, 50, 20, 36, 21, 62, 27, 103, 30, 91, 26, 97, 38, 85, 28, 35, 37, 120, 17, 47, 41, 37, 68, 44, 26, 45, 53, 69, 15, 70, 51, 49, 35, 52, 42, 26, 16, 115, 94, 45, 29, 22, 18, 36, 22, 27, 70, 26, 32, 13, 50, 60, 102, 42, 20, 46, 72, 47, 70, 42, 31, 114, 35, 44, 36, 33, 96, 39, 39, 44, 26, 17, 41, 18, 67, 67, 23, 41, 57, 25, 106, 37, 25, 13, 47, 61, 54, 19, 21, 18, 98, 45, 27, 18, 40, 47, 27, 38, 124, 42, 31, 43, 24, 80, 69, 23, 56, 34, 48, 23, 60, 37, 53, 18, 30, 31, 21, 25, 23, 53, 21, 30, 17, 14, 14, 27, 24, 23, 44, 29, 68, 122, 116, 27, 36, 32, 30, 28, 11, 44, 66, 72, 13, 43, 47, 19, 21, 26, 63, 16, 51, 37, 27, 19, 19, 33, 20, 124, 27, 40, 27, 46, 42, 19, 58, 49, 57, 25, 54, 25, 30, 65, 37, 16, 90, 57, 15, 73, 13, 42, 35, 31, 31, 9, 51, 88, 33, 14, 22, 41, 11, 16, 24, 29, 26, 25, 60, 17, 90, 33, 63, 46, 22, 45, 19, 28, 27, 28, 32, 16, 95, 25, 23, 45, 16, 79, 67, 22, 53, 34, 24, 56, 86, 26, 39, 12, 48, 35, 61, 39, 22, 123, 32, 53, 71, 57, 26, 23], [50, 35, 46, 49, 28, 36, 75, 20, 78, 29, 55, 71, 45, 32, 67, 57, 24, 33, 52, 43, 71, 37, 39, 93, 29, 20, 57, 39, 22, 65, 29, 76, 57, 80, 47, 58, 23, 29, 44, 36, 25, 33, 47, 33, 68, 55, 58, 32, 34, 84, 69, 46, 47, 28, 108, 99, 25, 29, 37, 23, 49, 21, 71, 29, 97, 36, 54, 37, 18, 61, 53, 23, 87, 43, 21, 35, 46, 26, 33, 17, 22, 44, 40, 41, 27, 34, 67, 62, 33, 22, 32, 12, 98, 82, 19, 69, 40, 62, 62, 81, 17, 56, 129, 47, 35, 46, 22, 42, 25, 52, 52, 25, 41, 47, 49, 56, 31, 10, 24, 35, 59, 81, 57, 56, 33, 52, 36, 17, 54, 42, 13, 21, 55, 17, 87, 63, 57, 15, 46, 18, 27, 87, 24, 69, 13, 37, 99, 16, 18, 40, 32, 30, 61, 28, 64, 32, 30, 37, 72, 20, 21, 69, 68, 27, 52, 20, 31, 71, 17, 74, 24, 47, 47, 41, 66, 79, 41, 18, 27, 56, 48, 32, 49, 33, 30, 78, 27, 77, 55, 25, 106, 31, 25, 37, 90, 89, 30, 39, 46, 21, 57, 28, 71, 68, 41, 41, 40, 58, 35, 22, 16, 10, 83, 30, 26, 113, 43, 98, 64, 33, 49, 40, 21, 36, 41, 36, 55, 24, 61, 18, 17, 17, 32, 28, 54, 47, 18, 56, 28, 49, 11, 83, 23, 59, 49, 35, 38, 59, 16, 26, 14, 37, 59, 21, 35, 8, 25, 102, 70, 22, 28, 49, 27, 31, 40, 72, 25, 26, 29, 53, 23, 43, 15, 32, 47, 28, 25, 28, 56, 10, 37, 17, 45, 50, 49, 58, 39, 23, 30, 25, 43, 51, 27, 25, 45, 17, 22, 39, 15, 29], [50, 47, 56, 37, 38, 70, 47, 63, 72, 36, 25, 39, 56, 64, 68, 36, 57, 24, 69, 47, 67, 35, 35, 91, 95, 64, 43, 64, 76, 55, 33, 34, 33, 70, 41, 31, 61, 23, 54, 50, 22, 60, 78, 27, 27, 45, 73, 86, 32, 59, 26, 50, 67, 19, 37, 75, 18, 81, 38, 73, 42, 41, 20, 32, 24, 43, 20, 94, 61, 80, 47, 61, 94, 25, 45, 61, 38, 24, 51, 24, 75, 37, 56, 63, 27, 56, 56, 44, 13, 90, 57, 29, 57, 24, 40, 43, 30, 33, 119, 32, 49, 29, 53, 57, 70, 30, 82, 52, 66, 51, 29, 75, 27, 63, 65, 56, 48, 53, 27, 66, 18, 129, 29, 27, 24, 15, 19, 66, 49, 29, 26, 21, 48, 31, 70, 20, 36, 27, 36, 133, 91, 41, 122, 87, 60, 20, 23, 29, 54, 50, 71, 19, 28, 33, 15, 18, 31, 69, 55, 26, 32, 42, 56, 56, 86, 23, 11, 43, 29, 79, 18, 78, 26, 85, 40, 24, 80, 68, 24, 39, 19, 43, 26, 16, 44, 27, 42, 47, 51, 43, 32, 48, 75, 18, 23, 15, 65, 43, 8, 66, 68, 83, 28, 12, 37, 57, 62, 48, 49, 59, 16, 50, 28, 28, 16, 9, 7, 19, 67, 48, 39, 45, 64, 19, 24, 37, 35, 22, 19, 40, 45, 23, 21, 14, 25, 36, 34, 8, 42, 34, 62, 33, 33, 25, 116, 52, 69, 10, 15, 53, 78, 22, 17, 72, 29, 47, 57, 18, 50, 27, 58, 39, 23, 16, 34, 11, 34, 40, 28, 8, 15, 25, 35, 83, 75, 22, 42, 51, 14, 17, 50, 20, 39, 57, 49, 24, 90, 34, 43, 36, 28, 8, 43, 25, 12, 123, 30, 92, 32, 33], [50, 50, 44, 37, 65, 39, 44, 44, 49, 35, 22, 36, 55, 73, 48, 44, 59, 32, 68, 29, 83, 67, 23, 26, 51, 77, 40, 42, 30, 30, 88, 48, 36, 31, 39, 61, 21, 52, 27, 50, 47, 32, 151, 39, 21, 54, 42, 84, 53, 79, 38, 71, 60, 100, 57, 52, 41, 26, 67, 95, 60, 61, 24, 69, 47, 98, 22, 68, 21, 103, 38, 22, 38, 48, 62, 24, 30, 28, 39, 31, 91, 66, 27, 60, 43, 31, 34, 54, 44, 38, 47, 40, 19, 44, 70, 58, 19, 24, 38, 38, 26, 62, 35, 15, 62, 42, 34, 35, 36, 78, 27, 99, 27, 36, 25, 37, 46, 97, 80, 45, 63, 51, 86, 63, 34, 49, 20, 32, 122, 37, 11, 67, 93, 49, 55, 32, 23, 66, 15, 12, 29, 60, 9, 76, 34, 33, 101, 10, 62, 30, 17, 29, 45, 36, 38, 56, 50, 30, 34, 33, 29, 43, 47, 76, 56, 21, 53, 40, 49, 25, 23, 32, 78, 66, 30, 93, 21, 17, 15, 51, 57, 39, 11, 27, 32, 101, 36, 38, 14, 108, 34, 57, 40, 31, 69, 26, 15, 37, 54, 115, 21, 24, 21, 83, 40, 24, 23, 38, 42, 21, 36, 28, 34, 36, 23, 35, 22, 28, 18, 23, 65, 40, 34, 48, 34, 76, 46, 40, 20, 24, 154, 20, 47, 75, 70, 25, 18, 23, 37, 39, 20, 24, 11, 64, 47, 30, 40, 64, 57, 33, 89, 15, 15, 81, 16, 49, 25, 30, 54, 17, 34, 14, 23, 37, 44, 26, 135, 68, 24, 50, 50, 22, 83, 27, 26, 22, 20, 39, 25, 14, 26, 27, 62, 37, 20, 51, 99, 26, 24, 66, 62, 48, 44, 52, 70, 23, 78, 39, 25, 55], [50, 61, 49, 46, 42, 62, 36, 43, 56, 50, 77, 47, 43, 37, 41, 63, 56, 72, 59, 21, 79, 90, 40, 38, 58, 73, 26, 66, 34, 60, 88, 47, 37, 27, 45, 41, 28, 38, 38, 39, 37, 33, 53, 39, 43, 33, 32, 57, 50, 24, 81, 24, 20, 56, 47, 33, 72, 95, 56, 26, 37, 33, 85, 28, 37, 36, 39, 45, 26, 21, 32, 86, 48, 46, 46, 65, 107, 33, 36, 51, 56, 55, 23, 21, 57, 27, 25, 65, 29, 30, 15, 25, 74, 21, 86, 65, 46, 98, 37, 50, 56, 81, 99, 77, 44, 59, 49, 42, 62, 20, 51, 25, 71, 93, 34, 25, 13, 35, 42, 61, 50, 30, 40, 48, 70, 18, 34, 44, 78, 39, 41, 44, 43, 27, 34, 47, 43, 79, 40, 45, 30, 42, 54, 54, 31, 32, 57, 73, 26, 25, 13, 49, 16, 26, 39, 92, 53, 58, 56, 34, 23, 28, 42, 23, 138, 55, 37, 31, 56, 25, 58, 45, 17, 43, 30, 27, 28, 19, 13, 27, 150, 34, 33, 85, 25, 89, 67, 13, 24, 25, 52, 16, 26, 63, 10, 80, 14, 14, 19, 58, 31, 31, 20, 12, 34, 52, 27, 55, 12, 28, 45, 42, 32, 62, 41, 33, 15, 105, 20, 36, 42, 41, 63, 14, 97, 29, 28, 15, 32, 26, 11, 44, 93, 24, 31, 140, 122, 13, 12, 26, 101, 23, 28, 30, 34, 48, 38, 45, 13, 13, 32, 22, 22, 42, 36, 33, 59, 18, 14, 8, 44, 15, 7, 51, 9, 32, 89, 35, 111, 14, 49, 27, 48, 33, 50, 10, 65, 43, 16, 13, 33, 16, 21, 10, 97, 37, 12, 12, 56, 17, 31, 16, 33, 23, 44, 16, 23, 22, 45, 38]]
# print("chr_len_L =", chr_len_L)
# chr_len_L = sum_within_list(chr_len_L)
# print("chr_len_L =", chr_len_L)
# chr_len_L = divide_by_sim(chr_len_L, 10)
# print("chr_len_L =", chr_len_L)
list_to_sim = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = list_of_points(list_to_sim)
print(result) # [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
#A = [[50, 51, 66, 61, 45, 85, 46, 85, 55, 71, 69, 103, 42, 84, 86, 77, 51, 153, 66, 52, 63, 52, 71, 50, 106, 64, 66, 92, 40, 61, 69, 63, 71, 72, 38, 60, 92, 34, 25, 92, 85, 34, 55, 45, 44, 37, 67, 54, 107, 78, 86, 30, 32, 38, 52, 23, 29, 52, 32, 32, 96, 19, 52, 37, 84, 67, 61, 135, 23, 105, 73, 34, 47, 41, 50, 44, 61, 71, 50, 25, 34, 36, 72, 49, 82, 38, 42, 51, 27, 38, 33, 80, 92, 52, 46, 36, 98, 65, 19, 109, 58], [50, 63, 55, 82, 80, 58, 99, 65, 59, 54, 75, 63, 59, 90, 78, 116, 40, 107, 103, 90, 108, 50, 40, 48, 55, 113, 66, 51, 84, 150, 27, 51, 55, 76, 66, 36, 33, 27, 130, 44, 52, 34, 69, 49, 50, 145, 46, 39, 63, 45, 64, 25, 30, 30, 44, 103, 52, 78, 52, 48, 31, 48, 39, 48, 28, 134, 48, 105, 73, 62, 45, 69, 47, 57, 41, 103, 26, 48, 64, 98, 24, 45, 31, 63, 47, 56, 28, 29, 56, 36, 53, 43, 23, 73, 35, 48, 59, 78, 51, 78, 72], [50, 60, 70, 47, 57, 57, 84, 97, 108, 82, 34, 59, 102, 162, 59, 132, 50, 75, 96, 108, 82, 112, 68, 75, 60, 42, 136, 68, 79, 33, 67, 51, 69, 31, 73, 79, 75, 152, 61, 56, 115, 35, 138, 105, 53, 57, 30, 28, 88, 26, 92, 132, 35, 23, 144, 49, 101, 37, 44, 70, 55, 24, 43, 31, 94, 37, 20, 140, 72, 52, 57, 44, 28, 73, 86, 64, 54, 65, 42, 64, 53, 100, 66, 38, 27, 30, 51, 36, 46, 41, 107, 60, 30, 72, 33, 34, 34, 29, 64, 32, 90], [50, 68, 46, 79, 44, 78, 20, 26, 107, 40, 99, 49, 111, 66, 74, 81, 101, 73, 60, 95, 44, 56, 80, 36, 38, 28, 55, 16, 73, 68, 89, 87, 57, 59, 113, 57, 41, 68, 113, 45, 49, 30, 31, 64, 62, 31, 81, 126, 54, 41, 44, 46, 53, 48, 30, 98, 54, 48, 53, 34, 48, 48, 73, 31, 86, 40, 65, 33, 31, 91, 124, 38, 47, 154, 51, 79, 45, 31, 71, 91, 101, 51, 23, 91, 57, 56, 50, 33, 57, 35, 41, 75, 38, 31, 41, 19, 46, 24, 41, 40, 30], [50, 70, 69, 72, 54, 43, 117, 41, 76, 70, 74, 77, 77, 71, 67, 55, 99, 53, 40, 94, 26, 66, 110, 73, 76, 82, 44, 116, 24, 77, 53, 68, 33, 102, 29, 73, 39, 68, 49, 70, 57, 79, 98, 46, 60, 80, 69, 64, 38, 47, 72, 38, 68, 39, 60, 27, 50, 87, 39, 29, 38, 33, 106, 42, 49, 53, 48, 135, 72, 50, 62, 71, 43, 71, 46, 104, 86, 64, 80, 93, 58, 52, 71, 34, 51, 26, 54, 34, 39, 55, 47, 40, 68, 31, 51, 57, 25, 22, 80, 53, 99], [50, 50, 63, 64, 61, 63, 61, 66, 75, 29, 61, 83, 105, 56, 53, 129, 49, 55, 70, 85, 45, 61, 60, 33, 57, 94, 50, 118, 59, 50, 139, 56, 63, 53, 84, 46, 38, 45, 43, 39, 69, 42, 71, 35, 93, 79, 53, 69, 40, 127, 86, 49, 47, 51, 79, 54, 82, 75, 163, 32, 61, 44, 56, 208, 20, 90, 44, 35, 61, 26, 77, 142, 77, 61, 57, 44, 60, 59, 82, 24, 78, 49, 51, 53, 54, 57, 139, 21, 92, 47, 17, 29, 25, 106, 25, 78, 49, 58, 57, 46, 38], [50, 48, 66, 58, 67, 52, 51, 98, 50, 79, 79, 108, 101, 64, 40, 82, 88, 58, 63, 51, 86, 51, 31, 40, 55, 76, 80, 72, 123, 36, 45, 75, 73, 85, 40, 48, 37, 86, 95, 67, 62, 30, 55, 64, 71, 40, 33, 67, 39, 26, 59, 108, 23, 68, 44, 52, 37, 124, 55, 50, 141, 79, 66, 66, 68, 33, 37, 23, 69, 66, 72, 46, 61, 33, 56, 67, 32, 31, 87, 68, 39, 63, 39, 57, 25, 83, 85, 29, 70, 42, 85, 69, 59, 55, 100, 55, 77, 24, 80, 75, 76], [50, 60, 77, 47, 105, 63, 46, 38, 135, 80, 54, 90, 168, 70, 66, 43, 102, 62, 112, 66, 86, 89, 62, 83, 101, 93, 70, 42, 61, 94, 79, 59, 82, 86, 73, 34, 37, 59, 57, 40, 61, 77, 84, 73, 34, 82, 54, 43, 47, 60, 87, 52, 38, 94, 53, 27, 39, 88, 96, 30, 44, 21, 50, 33, 29, 65, 49, 98, 46, 20, 30, 89, 82, 52, 40, 62, 30, 44, 59, 43, 39, 48, 45, 78, 56, 55, 38, 46, 56, 36, 47, 42, 56, 49, 76, 53, 90, 54, 87, 52, 63], [50, 57, 78, 55, 74, 61, 136, 72, 59, 26, 32, 39, 113, 101, 93, 42, 81, 143, 35, 64, 21, 112, 106, 66, 69, 57, 106, 28, 97, 61, 99, 43, 57, 56, 73, 35, 39, 31, 54, 114, 37, 71, 86, 112, 64, 52, 103, 35, 40, 70, 35, 44, 38, 65, 41, 45, 52, 131, 29, 62, 92, 48, 21, 54, 44, 94, 46, 43, 28, 42, 108, 24, 39, 87, 66, 44, 38, 88, 16, 58, 50, 108, 85, 49, 80, 102, 42, 29, 30, 82, 60, 34, 59, 106, 71, 49, 18, 51, 80, 34, 34], [50, 69, 42, 75, 74, 87, 110, 91, 129, 111, 63, 59, 48, 72, 129, 105, 126, 63, 137, 41, 71, 46, 70, 161, 54, 130, 47, 92, 79, 56, 69, 42, 78, 70, 99, 51, 164, 175, 54, 30, 49, 86, 35, 74, 97, 189, 104, 126, 37, 48, 62, 86, 65, 110, 38, 31, 37, 65, 83, 69, 38, 26, 178, 71, 96, 59, 112, 63, 41, 57, 58, 101, 90, 56, 30, 58, 49, 43, 72, 81, 57, 72, 94, 35, 68, 36, 81, 23, 56, 62, 51, 22, 70, 46, 46, 74, 60, 29, 30, 73, 29]]
#points = list_of_points(A)
#st_dev = standard_deviation_from_points_parallel(A)
#print(st_dev)
#print(points)
#B = [58, 72, 90, 30, 99, 38, 76, 63, 34, 29]
#print(statistics.stdev(B))
#A_rank = [0.8, 0.4, 1.2, 3.7, 2.6, 5.8]
#print(statistics.stdev(A_rank))