Redefine classes definitions
There are two problems with current classes in Metapop. By one hand, some of them are redundant. This is the case of the class input
and the class metapop
, since the input file represents (ie. defines) a metapopulation. In fact, the later class has to read several attributes defined in the former, and many times are passed together to functions.
In the orher hand, the current structure of classes makes the program very inefficient for large files. This is because the metapopulation is now represented as a metapopulation
class, which contains recursively the following classes: Population
, Individual
, and Locus
. Because of that, some functions read allelic information in quite an indirect way. For example for allele a:
a = deme[pop1].getIndividual(i).getLocus(l).getAlelo(1);
Instead of direct access to a 2D matrix via index, which is more efficient (see commits related to #47 (closed))