def __init__(self, <EOL>data=None, <EOL>pops=None,<EOL>ncomps=<NUM_LIT:10>,<EOL>quiet=True):
self.quiet = quiet<EOL>self.ncomponents = ncomps<EOL>if isinstance(data, Assembly):<EOL><INDENT>self.assembly = data<EOL>self.pops = data.populations<EOL>try:<EOL><INDENT>self.data = data.outfiles.vcf<EOL><DEDENT>except AttributeError as inst:<EOL><INDENT>raise IPyradError(MISSING_VCF_ERROR)  <EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.assembly = Assembly("<STR_LIT>", quiet=True)<EOL>self.data = os.path.realpath(data)<EOL>self.pops = {}<EOL><DEDENT>if pops:<EOL><INDENT>if isinstance(pops, dict):<EOL><INDENT>self.pops = {x:(<NUM_LIT:0>, y) for x, y in pops.items()}<EOL><DEDENT>else:<EOL><INDENT>if not os.path.isfile(pops):<EOL><INDENT>raise IPyradError("<STR_LIT>".format(pops))<EOL><DEDENT>mindat = [i.lstrip("<STR_LIT:#>").lstrip().rstrip() for i inopen(pops, '<STR_LIT:r>').readlines() if i.startswith("<STR_LIT:#>")]<EOL>if not mindat:<EOL><INDENT>lines = open(pops, '<STR_LIT:r>').readlines()<EOL>p = set([x.split()[<NUM_LIT:1>].strip() for x in lines])<EOL>with open(pops, '<STR_LIT:a>') as outfile:<EOL><INDENT>outfile.write("<STR_LIT>" + "<STR_LIT:U+0020>".join(["<STR_LIT>".format(x) for x in p]))<EOL><DEDENT><DEDENT>self.assembly.paramsdict["<STR_LIT>"] = os.path.realpath(pops)<EOL>self.assembly._link_populations()<EOL>self.pops = self.assembly.populations<EOL><DEDENT><DEDENT>tmpdict = {}<EOL>for samp in self.pops:<EOL><INDENT>tmpdict[samp] = self.pops[samp][<NUM_LIT:1>]<EOL><DEDENT>self.pops = tmpdict<EOL>self._load_calldata()<EOL>if not self.pops:<EOL><INDENT>self.pops = {"<STR_LIT>":self.samples_vcforder}<EOL><DEDENT>if not self.quiet:<EOL><INDENT>print("<STR_LIT>".format(self.pops))<EOL><DEDENT>if not self.pops:<EOL><INDENT>print("<STR_LIT>")<EOL><DEDENT>
ipyrad.analysis Baba Class object.

Parameters
----------
data : Assembly object or path to file
    Either an ipyrad assembly or a  string path to a .vcf file. If
    it's a string path then you'll probably want to specify pops as
    well or else all your dots will be the same color.

pops : dict or path to file
    A dictionary specifying the population assignment of each
    sample. This is optional, since by default if you used a pops
    file during your assembly the assembly object will include
    the pops info internally.
ncomps : int
    The number of PCs to calculate. Probably most people won't care
    to mess with this, but it's simple enough to make it flexible. 

Functions
---------
run()
    ...
plot()
    ...