예제 #1
0
파일: writers.py 프로젝트: yynst2/kipoi
    def batch_write(self, batch):
        """Write a batch of data to bed file

        # Arguments
            batch: batch of data. Either a single `np.array` or a list/dict thereof.
        """
        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")
예제 #2
0
파일: writers.py 프로젝트: kipoi/kipoi
    def batch_write(self, batch):
        df = pd.DataFrame(flatten_batch(batch, nested_sep=self.nested_sep))
        df.sort_index(axis=1, inplace=True)

        self.write_buffer.append(df)
        self.num_rows += df.shape[0]

        if self.num_rows >= self.chunk_size:
            self._flush()
예제 #3
0
파일: writers.py 프로젝트: yynst2/kipoi
    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")
예제 #4
0
파일: writers.py 프로젝트: yynst2/kipoi
    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)