def batch_write(self, batch): fbatch = flatten_batch(batch, nested_sep="/") # since 'score' is not defined in GenomicRanges, use "." if os.path.join(self.ranges_key, "score") not in fbatch: fbatch[os.path.join(self.ranges_key, "score")] = "." bed_cols = ["chr", "start", "end", "id", "score", "strand"] cols = [os.path.join(self.ranges_key, x) for x in bed_cols] + \ sorted([x for x in fbatch if x.startswith("preds/")]) df = pd.DataFrame(fbatch)[cols] df.rename( columns={os.path.join(self.ranges_key, bc): bc for bc in bed_cols}, inplace=True) df.rename(columns={"id": "name"}, inplace=True) if self.first_pass and self.header: df.to_csv(self.file_path, sep="\t", index=False) self.first_pass = False else: df.to_csv(self.file_path, sep="\t", index=False, header=None, mode="a")
def batch_write(self, batch): df = pd.DataFrame(flatten_batch(batch, nested_sep=self.nested_sep)) df.sort_index(axis=1, inplace=True) if self.first_pass: df.to_csv(self.file_path, sep="\t", index=False) self.first_pass = False else: df.to_csv(self.file_path, sep="\t", index=False, header=None, mode="a")
def batch_write(self, batch): """Write a batch of data # Arguments batch: batch of data. Either a single `np.array` or a list/dict thereof. """ df = pd.DataFrame(flatten_batch(batch, nested_sep=self.nested_sep)) df.sort_index(axis=1, inplace=True) if self.first_pass: df.to_csv(self.file_path, sep="\t", index=False) self.first_pass = False else: df.to_csv(self.file_path, sep="\t", index=False, header=None, mode="a")
def batch_write(self, batch): """Write a batch of data # Arguments batch: batch of data. Either a single `np.array` or a list/dict thereof. """ df = pd.DataFrame(flatten_batch(batch, nested_sep=self.nested_sep)) df.sort_index(axis=1, inplace=True) if self.first_pass: self.fp.write(self.file_path, df, append=not self.first_pass, write_index=False, **self.kwargs) self.first_pass = False else: self.fp.write(self.file_path, df, append=not self.first_pass, write_index=False, **self.kwargs)