def otu_name(tax):
extract_name = lambda lvl: "<STR_LIT:_>".join(lvl.split("<STR_LIT:_>")[<NUM_LIT:2>:])<EOL>spname = "<STR_LIT>"<EOL>for lvl in tax[::-<NUM_LIT:1>]:<EOL><INDENT>if len(lvl) <= <NUM_LIT:3>:<EOL><INDENT>continue<EOL><DEDENT>if lvl.startswith("<STR_LIT:s>"):<EOL><INDENT>spname = extract_name(lvl)<EOL><DEDENT>elif lvl.startswith("<STR_LIT:g>"):<EOL><INDENT>return "<STR_LIT>".format(extract_name(lvl), spname)<EOL><DEDENT>else:<EOL><INDENT>if spname != "<STR_LIT>":<EOL><INDENT>return spname<EOL><DEDENT>else:<EOL><INDENT>return "<STR_LIT>".format(extract_name(lvl))<EOL><DEDENT><DEDENT><DEDENT>
Determine a simple Genus-species identifier for an OTU, if possible.
If OTU is not identified to the species level, name it as
Unclassified (familly/genus/etc...).

:type tax: list
:param tax: QIIME-style taxonomy identifiers, e.g.
             ["k__Bacteria", u"p__Firmicutes", u"c__Bacilli", ...

:rtype: str
:return: Returns genus-species identifier based on identified taxonomical
         level.