Exemple #1
0
 def write(self, source, **kw):
     if self.chrfile is None:
         self.chrfile = tempfile.NamedTemporaryFile(dir='./',delete=False)
         for c,v in self.chrmeta.iteritems():
             self.chrfile.write("%s %i\n"%(c,v['length']))
         self.chrfile.close()
         self.chrfile = os.path.abspath(self.chrfile.name)
     self.open()
     kw['mode'] = 'append'
     try:
         with track(self.bedgraph,format='bedgraph',chrmeta=self.chrmeta) as f:
             f.write(source,**kw)
     except:
         os.remove(self.chrfile)
         os.remove(self.bedgraph)
         raise
Exemple #2
0
 def write(self, source, **kw):
     if self.chrfile is None:
         self.chrfile = tempfile.NamedTemporaryFile(dir='./', delete=False)
         for c, v in self.chrmeta.iteritems():
             self.chrfile.write("%s %i\n" % (c, v['length']))
         self.chrfile.close()
         self.chrfile = os.path.abspath(self.chrfile.name)
     self.open()
     kw['mode'] = 'append'
     try:
         with track(self.bedgraph, format='bedgraph',
                    chrmeta=self.chrmeta) as f:
             f.write(source, **kw)
     except:
         os.remove(self.chrfile)
         os.remove(self.bedgraph)
         raise
Exemple #3
0
 def read(self, selection=None, fields=None, **kw):
     """
     :param selection: list of dict of the type
         `[{'chr':'chr1','start':(12,24)},{'chr':'chr3','end':(25,45)},...]`,
         where tuples represent ranges.
     :param fields: (list of str) list of field names.
     """
     self.open()
     if not(fields): fields = self.fields
     fields = [f for f in self.fields if f in fields]
     reg = self._make_selection(selection)
     options = []
     if reg[0]: options += ["-chrom="+reg[0]]
     if reg[1]: options += ["-start="+reg[1]]
     if reg[2]: options += ["-end="+reg[2]]
     self._run_tool('bigWigToBedGraph', options+[self.path, self.bedgraph])
     t = track(self.bedgraph,format='bedGraph',chrmeta=self.chrmeta,info=self.info)
     return t.read(selection=selection,fields=fields,**kw)
Exemple #4
0
 def read(self, selection=None, fields=None, **kw):
     """
     :param selection: list of dict of the type
         `[{'chr':'chr1','start':(12,24)},{'chr':'chr3','end':(25,45)},...]`,
         where tuples represent ranges.
     :param fields: (list of str) list of field names.
     """
     self.open()
     if not (fields): fields = self.fields
     fields = [f for f in self.fields if f in fields]
     reg = self._make_selection(selection)
     options = []
     if reg[0]: options += ["-chrom=" + reg[0]]
     if reg[1]: options += ["-start=" + reg[1]]
     if reg[2]: options += ["-end=" + reg[2]]
     self._run_tool('bigWigToBedGraph',
                    options + [self.path, self.bedgraph])
     t = track(self.bedgraph,
               format='bedGraph',
               chrmeta=self.chrmeta,
               info=self.info)
     return t.read(selection=selection, fields=fields, **kw)