Exemplo n.º 1
0
 def test_reads(self):
     start = 120000
     stop = 121000
     x = pileup.Reads(json="{}",
                      build='hg19',
                      contig='chr17',
                      start=start,
                      stop=stop)
     assert (x.start == start)
     assert (x.stop == stop)
Exemplo n.º 2
0
 def test_minimal_reads_html(self):
     w = pileup.Reads(json="{}",
                      build='hg19',
                      contig='chr1',
                      start=1,
                      stop=20)
     output = StringIO()
     state = dependency_state(w, drop_defaults=True)
     embed_minimal_html(output, views=w, drop_defaults=True, state=state)
     content = output.getvalue()
     assert content.splitlines()[0] == '<!DOCTYPE html>'
Exemplo n.º 3
0
    def test_embed_alignments(self):
        w = pileup.Reads(json="{}",
                         build='hg19',
                         contig='chr1',
                         start=1,
                         stop=20)
        state = dependency_state(w, drop_defaults=True)
        data = embed_data(views=w, drop_defaults=True, state=state)

        state = data['manager_state']['state']
        views = data['view_specs']

        assert len(views) == 1

        model_names = [s['model_name'] for s in state.values()]
        assert 'ReadsModel' in model_names
Exemplo n.º 4
0
    def test_snippet(self):
        class Parser(HTMLParser):
            state = 'initial'
            states = []

            def handle_starttag(self, tag, attrs):
                attrs = dict(attrs)
                if tag == 'script' and attrs.get(
                        'type',
                        '') == "application/vnd.jupyter.widget-state+json":
                    self.state = 'widget-state'
                    self.states.append(self.state)
                elif tag == 'script' and attrs.get(
                        'type',
                        '') == "application/vnd.jupyter.widget-view+json":
                    self.state = 'widget-view'
                    self.states.append(self.state)

            def handle_endtag(self, tag):
                self.state = 'initial'

            def handle_data(self, data):
                if self.state == 'widget-state':
                    manager_state = json.loads(data)['state']
                    assert len(manager_state) == 2
                    self.states.append('check-widget-state')
                elif self.state == 'widget-view':
                    view = json.loads(data)
                    assert isinstance(view, dict)
                    self.states.append('check-widget-view')

        w = pileup.Reads(json="{}",
                         build='hg19',
                         contig='chr1',
                         start=1,
                         stop=20)
        state = dependency_state(w, drop_defaults=True)
        snippet = embed_snippet(views=w, drop_defaults=True, state=state)
        parser = Parser()
        parser.feed(snippet)
        assert parser.states == [
            'widget-state', 'check-widget-state', 'widget-view',
            'check-widget-view'
        ]
Exemplo n.º 5
0
    def ViewAlignments(self,
                       alignmentRecordRDD,
                       contig,
                       start,
                       end,
                       showPlot=True):
        contig_trimmed = contig.lstrip(self.chrPrefix)

        # Filter RDD
        filtered = alignmentRecordRDD.transform(lambda r: r.filter(
            ((r.contigName == contig) | (r.contigName == contig_trimmed))
            & (r.start < end) & (r.end > start) & (r.readMapped)))

        # convert to GA4GH JSON to be consumed by mango-viz module
        json = self.ac._jvm.org.bdgenomics.mango.converters.GA4GHutil.alignmentRecordRDDtoJSON(
            filtered._jvmRdd)

        # visualize
        if (showPlot):
            return pileup.Reads(json=json,
                                build=self.build,
                                contig=contig,
                                start=start,
                                stop=end)