public final void drawSpeciesRow(String text0, IIndividual individual, IChromosomeType chromosome, @Nullable String customPrimaryName, @Nullable String customSecondaryName) {
IAlleleSpecies primary = individual.getGenome().getPrimary();
IAlleleSpecies secondary = individual.getGenome().getSecondary();
textLayout.drawLine(text0, textLayout.column0);
int columnwidth = textLayout.column2 - textLayout.column1 - 2;
Map<String, ItemStack> iconStacks = chromosome.getSpeciesRoot().getAlyzerPlugin().getIconStacks();
GuiUtil.drawItemStack(this, iconStacks.get(primary.getUID()), guiLeft + textLayout.column1 + columnwidth - 20, guiTop + 10);
GuiUtil.drawItemStack(this, iconStacks.get(secondary.getUID()), guiLeft + textLayout.column2 + columnwidth - 20, guiTop + 10);
String primaryName = customPrimaryName == null ? primary.getAlleleName() : customPrimaryName;
String secondaryName = customSecondaryName == null ? secondary.getAlleleName() : customSecondaryName;
drawSplitLine(primaryName, textLayout.column1, columnwidth, individual, chromosome, false);
drawSplitLine(secondaryName, textLayout.column2, columnwidth, individual, chromosome, true);
textLayout.newLine();
}