annotate model.py @ 5:009cf225ef96 draft default tip

Uploaded
author jaredgk
date Wed, 24 Oct 2018 15:34:54 -0400
parents 1ad9c146ebb4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
1 import os
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
2 import sys
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
3 import json
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
4 import subprocess
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
5 import argparse
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
6 import logging
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
7 import itertools
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
8
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
9 from collections import defaultdict
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
10
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
11 # Insert Jared's directory path, required for calling Jared's functions. Change when directory structure changes.
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
12 sys.path.insert(0, os.path.abspath(os.path.join(os.pardir, 'jared')))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
13
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
14 from logging_module import initLogger
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
15
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
16 class ModelFile(dict):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
17 def __init__(self, *arg, **kw):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
18 super(ModelFile, self).__init__(*arg, **kw)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
19 self.inds = []
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
20 self.ind_file = ''
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
21 self.exclude_file = ''
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
22
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
23 def assign_inds (self, inds = []):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
24 # Return error if inds is empty
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
25 if not inds:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
26 raise IOError('No individuals found in the model file.')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
27 # Store the individuals
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
28 self.inds = [str(ind) for ind in inds]
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
29
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
30 def create_ind_file (self, file_ext = '', file_path = '', overwrite = False):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
31 # Assign the filename for the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
32 ind_filename = 'unique_individuals' + file_ext
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
33
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
34 # If a path is assigned, create the file at the specified location
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
35 if file_path:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
36 ind_filename = os.path.join(file_path, ind_filename)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
37
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
38 # Check if previous files should be overwriten
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
39 if not overwrite:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
40 # Check if the file already exists
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
41 if os.path.isfile(ind_filename):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
42 raise IOError('Individuals file exists.')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
43
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
44 # Create the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
45 ind_file = open(ind_filename, 'w')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
46 ind_file.write('%s\n' %'\n'.join(self.inds))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
47 ind_file.close()
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
48
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
49 # Save the individuals filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
50 self.ind_file = ind_filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
51
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
52 def delete_ind_file (self):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
53 # Check if an individuals file was created
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
54 if self.ind_file:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
55
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
56 # Delete the individuals file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
57 os.remove(self.ind_file)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
58
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
59 # Remove the filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
60 self.ind_file = ''
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
61
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
62 def create_exclude_ind_file (self, inds_to_include = [], file_ext = '', file_path = '', overwrite = False):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
63 # Assign the filename for the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
64 ind_filename = 'exclude_individuals' + file_ext
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
65
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
66 # If a path is assigned, create the file at the specified location
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
67 if file_path:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
68 ind_filename = os.path.join(file_path, ind_filename)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
69
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
70 # Check if previous files should be overwriten
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
71 if not overwrite:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
72 # Check if the file already exists
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
73 if os.path.isfile(ind_filename):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
74 raise IOError('Individuals file exists.')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
75
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
76 # Create exclude list by removing included individuals
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
77 exclude_inds = list(set(self.inds) - set(inds_to_include))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
78
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
79 # Create the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
80 ind_file = open(ind_filename, 'w')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
81 ind_file.write('%s\n' %'\n'.join(exclude_inds))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
82 ind_file.close()
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
83
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
84 # Save the individuals filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
85 self.exclude_file = ind_filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
86
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
87 def delete_ind_file (self):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
88 # Check if an individuals file was created
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
89 if self.exclude_file:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
90
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
91 # Delete the individuals file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
92 os.remove(self.exclude_file)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
93
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
94 # Remove the filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
95 self.exclude_file = ''
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
96
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
97 class Model:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
98 def __init__ (self, name):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
99 self.name = name
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
100 self.tree = ''
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
101 self.npop = 0
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
102 self.pop_list = []
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
103 self.nind = defaultdict(int)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
104 self.ind_dict = defaultdict(list)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
105 self.pop_files = []
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
106 self.ind_file = ''
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
107
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
108 @property
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
109 def inds(self):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
110 return list(itertools.chain.from_iterable(self.ind_dict.values()))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
111
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
112 def assign_tree (self, tree):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
113 self.tree = str(tree)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
114
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
115 def assign_pop (self, pop, inds = []):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
116 self.npop += 1
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
117 self.pop_list.append(str(pop))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
118 if inds:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
119 self.nind[pop] = len(inds)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
120 self.ind_dict[pop] = [str(ind) for ind in inds]
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
121
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
122 def create_pop_files (self, file_ext = '', file_path = '', overwrite = False):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
123 for pop in self.pop_list:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
124 # Assign the filename for the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
125 pop_filename = pop + file_ext
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
126
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
127 # If a path is assigned, create the file at the specified location
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
128 if file_path:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
129 pop_filename = os.path.join(file_path, pop_filename)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
130
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
131 # Check if previous files should be overwriten
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
132 if not overwrite:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
133 # Check if the file already exists
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
134 if os.path.isfile(pop_filename):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
135 raise IOError('Population file exists.')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
136
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
137 # Create the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
138 pop_file = open(pop_filename, 'w')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
139 pop_file.write('%s\n' %'\n'.join(self.ind_dict[pop]))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
140 pop_file.close()
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
141
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
142 # Save the population filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
143 self.pop_files.append(pop_filename)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
144
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
145 def delete_pop_files (self):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
146 # Check if pop files were created
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
147 if len(self.pop_files) != 0:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
148
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
149 # Loop the created pop files
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
150 for pop_file in self.pop_files:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
151 # Delete the pop file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
152 os.remove(pop_file)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
153
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
154 # Remove the filenames
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
155 self.pop_files = []
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
156
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
157 def create_ind_file (self, file_ext = '', file_path = '', overwrite = False):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
158 # Assign the filename for the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
159 ind_filename = 'individual.keep' + file_ext
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
160
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
161 # If a path is assigned, create the file at the specified location
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
162 if file_path:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
163 ind_filename = os.path.join(file_path, ind_filename)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
164
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
165 # Check if previous files should be overwriten
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
166 if not overwrite:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
167 # Check if the file already exists
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
168 if os.path.isfile(ind_filename):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
169 raise IOError('Individuals file exists.')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
170
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
171 # Create the population file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
172 ind_file = open(ind_filename, 'w')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
173 ind_file.write('%s\n' %'\n'.join(self.inds))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
174 ind_file.close()
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
175
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
176 # Save the individuals filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
177 self.ind_file = ind_filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
178
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
179 def delete_ind_file (self):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
180 # Check if an individuals file was created
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
181 if self.ind_file:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
182
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
183 # Delete the individuals file
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
184 os.remove(self.ind_file)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
185
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
186 # Remove the filename
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
187 self.ind_file = ''
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
188
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
189 def read_model_file (model_filename):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
190
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
191 # Check that the file exists
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
192 if not os.path.isfile(model_filename):
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
193 raise IOError(model_filename)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
194
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
195 # Create ModelFile object
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
196 models_to_return = ModelFile()
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
197
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
198 # Check if using python 2 or 3
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
199 if sys.version_info[0] == 2:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
200 # Open the model file in python 2
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
201 model_file = open(model_filename, 'rU')
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
202 else:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
203 # Open the model file in python 3
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
204 model_file = open(model_filename, 'r', newline=None)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
205
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
206 # Parse the model file using the json reader
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
207 models_dict = json.load(model_file)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
208
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
209 # List to store all unique individuals (i.e. individuals in all models)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
210 individual_list = []
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
211
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
212 # Loop the parsed models
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
213 for model_dict in models_dict:
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
214
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
215 # Create the model
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
216 model = Model(model_dict['name'])
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
217
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
218 # Loop the populations in the model
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
219 for pop, pop_dict in model_dict['pops'].items():
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
220
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
221 # Assign the population ans it's individuals to the model
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
222 model.assign_pop(pop, pop_dict['inds'])
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
223 # Assign the individuals to the unique individual list
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
224 individual_list.extend(pop_dict['inds'])
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
225
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
226 # Remove duplicates from the unique individual list
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
227 individual_list = list(set(individual_list))
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
228
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
229 # Save the model
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
230 models_to_return[str(model.name)] = model
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
231
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
232 # Store the unique individuals within the ModelFile object
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
233 models_to_return.assign_inds(individual_list)
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
234
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
235 # Return the models
1ad9c146ebb4 Uploaded
jaredgk
parents:
diff changeset
236 return models_to_return