def test_genotype_gnomic_format(gnomic_formatter): assert gnomic_formatter.format_genotype(Genotype.parse('+geneA -geneB site>feature')) \ == '+geneA -geneB site>feature' assert gnomic_formatter.format_genotype(Genotype.parse('+geneA -geneB site>>feature')) \ == '+geneA -geneB site>feature' assert gnomic_formatter.format_genotype(Genotype.parse('+geneA -geneB -geneA')) == '-geneB' assert gnomic_formatter.format_genotype(Genotype.parse('+{geneA, geneB} -{geneC, geneD}')) \ == '+{geneA, geneB} -{geneC, geneD}'
def test_added_features(): genotype = Genotype.parse('+geneA -geneB +geneB -geneC') assert genotype.added_features == {Feature('geneA')} genotype = Genotype.parse('+{geneA, geneB:geneC}') assert genotype.added_features == { Feature('geneA'), Feature('geneB'), Feature('geneC') }
def test_genotype_gnomic_format(gnomic_formatter): assert gnomic_formatter.format_genotype(Genotype.parse('+geneA -geneB site>feature')) \ == '+geneA -geneB site>feature' assert gnomic_formatter.format_genotype(Genotype.parse('+geneA -geneB site>>feature')) \ == '+geneA -geneB site>feature' assert gnomic_formatter.format_genotype( Genotype.parse('+geneA -geneB -geneA')) == '-geneB' assert gnomic_formatter.format_genotype(Genotype.parse('+{geneA, geneB} -{geneC, geneD}')) \ == '+{geneA, geneB} -{geneC, geneD}'
def test_genotype_text_format(text_formatter): assert text_formatter.format_genotype(Genotype.parse('+geneA')) == 'geneA' assert text_formatter.format_genotype(Genotype.parse('-geneA')) == '\u0394geneA' assert text_formatter.format_genotype(Genotype.parse('siteA>(pA)')) == '\u0394siteA\u2192(pA)' assert text_formatter.format_genotype(Genotype.parse('foo>bar')) == '\u0394foo\u2192bar' assert text_formatter.format_genotype(Genotype.parse('foo>>bar')) == '\u0394foo\u2192bar' assert text_formatter.format_genotype(Genotype.parse('-(pA)')) == '\u0394(pA)' assert text_formatter.format_genotype(Genotype.parse('+geneA(x)')) == 'geneA(x)' assert text_formatter.format_genotype(Genotype.parse('+geneA(var1, var2)')) == 'geneA(var1; var2)' assert text_formatter.format_genotype(Genotype.parse('+{geneA, geneB}')) == '{geneA, geneB}'
def test_added_fusion_features(): genotype = Genotype.parse( '+geneA -geneB:geneC +geneB:geneC +{geneA, geneB}') assert genotype.added_fusion_features == { Feature('geneA'), CompositeAnnotation(Feature('geneA'), Feature('geneB')) }
def test_genotype_text_format(text_formatter): assert text_formatter.format_genotype(Genotype.parse('+geneA')) == 'geneA' assert text_formatter.format_genotype( Genotype.parse('-geneA')) == '\u0394geneA' assert text_formatter.format_genotype( Genotype.parse('siteA>(pA)')) == '\u0394siteA\u2192(pA)' assert text_formatter.format_genotype( Genotype.parse('foo>bar')) == '\u0394foo\u2192bar' assert text_formatter.format_genotype( Genotype.parse('foo>>bar')) == '\u0394foo\u2192bar' assert text_formatter.format_genotype( Genotype.parse('-(pA)')) == '\u0394(pA)' assert text_formatter.format_genotype( Genotype.parse('+geneA(x)')) == 'geneA(x)' assert text_formatter.format_genotype( Genotype.parse('+geneA(var1, var2)')) == 'geneA(var1; var2)' assert text_formatter.format_genotype( Genotype.parse('+{geneA, geneB}')) == '{geneA, geneB}'
def test_genotype_html_format(html_formatter): assert html_formatter.format_genotype(Genotype.parse('+geneA')) == '<span class="gnomic-feature">geneA</span>' assert html_formatter.format_genotype(Genotype.parse('-geneB')) \ == '\u0394<span class="gnomic-feature">geneB</span>' assert html_formatter.format_genotype(Genotype.parse('foo>>bar')) \ == '\u0394<span class="gnomic-feature">foo</span>\u2192<span class="gnomic-feature">bar</span>' assert html_formatter.format_genotype(Genotype.parse('(pA)')) \ == '<span class="gnomic-plasmid">(<span class="gnomic-plasmid-name">pA</span>)</span>' assert html_formatter.format_genotype(Genotype.parse('+geneA(x)')) \ == '<span class="gnomic-feature">geneA<sup>x</sup></span>' assert html_formatter.format_genotype(Genotype.parse('+geneA(x; wild-type; mutant; y)')) \ == '<span class="gnomic-feature">geneA<sup>x; wild-type; mutant; y</sup></span>' assert html_formatter.format_genotype(Genotype.parse('+foo:bar')) \ == '<span class="gnomic-fusion"><span class="gnomic-feature">foo</span>:' \ '<span class="gnomic-feature">bar</span></span>'
def test_genotype_html_format(html_formatter): assert html_formatter.format_genotype(Genotype.parse( '+geneA')) == '<span class="gnomic-feature">geneA</span>' assert html_formatter.format_genotype(Genotype.parse('-geneB')) \ == '\u0394<span class="gnomic-feature">geneB</span>' assert html_formatter.format_genotype(Genotype.parse('foo>>bar')) \ == '\u0394<span class="gnomic-feature">foo</span>\u2192<span class="gnomic-feature">bar</span>' assert html_formatter.format_genotype(Genotype.parse('(pA)')) \ == '<span class="gnomic-plasmid">(<span class="gnomic-plasmid-name">pA</span>)</span>' assert html_formatter.format_genotype(Genotype.parse('+geneA(x)')) \ == '<span class="gnomic-feature">geneA<sup>x</sup></span>' assert html_formatter.format_genotype(Genotype.parse('+geneA(x; wild-type; mutant; y)')) \ == '<span class="gnomic-feature">geneA<sup>x; wild-type; mutant; y</sup></span>' assert html_formatter.format_genotype(Genotype.parse('+foo:bar')) \ == '<span class="gnomic-fusion"><span class="gnomic-feature">foo</span>:' \ '<span class="gnomic-feature">bar</span></span>'
def test_at_locus_gnomic_format(gnomic_formatter): assert gnomic_formatter.format_at_locus(AtLocus(Feature('foo'), Feature('bar'))) == 'foo@bar' assert gnomic_formatter.format_genotype(Genotype.parse('foo@bar>new')) == 'foo@bar>new'
def test_at_locus_gnomic_format(gnomic_formatter): assert gnomic_formatter.format_at_locus( AtLocus(Feature('foo'), Feature('bar'))) == 'foo@bar' assert gnomic_formatter.format_genotype( Genotype.parse('foo@bar>new')) == 'foo@bar>new'
def test_added_fusions(): genotype = Genotype.parse('+A:B +B:C -B:C -C:D') assert genotype.added_fusions == {Fusion(Feature('A'), Feature('B'))}
def test_removed_plasmids(): genotype = Genotype.parse('+gene.A (pA) (pB) -(pB) -(pC)') assert genotype.removed_plasmids == {Plasmid('pC')}
def test_removed_fusion_features(): genotype = Genotype.parse('+geneA -geneB:geneC -geneA +{geneA, geneB}') assert genotype.removed_fusion_features == { Fusion(Feature('geneB'), Feature('geneC')) }
def test_added_plasmids(): genotype = Genotype.parse('+gene.B (pA) (pB) -(pB) -(pC)') assert genotype.added_plasmids == {Plasmid('pA')}
def test_removed_features(): genotype = Genotype.parse('+geneA -geneB +geneB -geneC') assert genotype.removed_features == {Feature('geneC')}
def test_removed_fusions(): genotype = Genotype.parse('+A:B +B:C -B:C -C:D') assert genotype.removed_fusions == {Fusion(Feature('C'), Feature('D'))}
def chain(*gnomic_strings, **kwargs): parent = kwargs.pop('parent', None) genotype = Genotype.parse(gnomic_strings[0], parent=parent, **kwargs) for gnomic_string in gnomic_strings[1:]: genotype = Genotype.parse(gnomic_string, parent=genotype, **kwargs) return genotype
def chain(self, *definitions, **kwargs): genotype = Genotype.parse(definitions[0], **kwargs) for definition in definitions[1:]: genotype = Genotype.parse(definition, parent=genotype, **kwargs) return genotype