def to_summary(self, filename="sequana_summary_pacbio_ccs.json"): """Save statistics into a JSON file :param filename: :param data: dictionary to save. If not provided, use :meth:`stats` """ data = self.stats() s = Summary("pacbio_ccs", self.sample_name, data=data) s._data_description = { "N": "CCS reads", "total_bases": "Number of CCS bases", "mean_read_length": "CCS Read Length (mean)", "mean_nb_passes": "Number of Passes (mean)" } s.to_json(filename)
def get_stats(pattern, mode): data = [[], []] for filename in glob.glob(pattern + "/data/{}_sirv.sam".format(mode)): b = isoseq.PacbioIsoSeqMappedIsoforms(filename) N = Summary(filename.split("/")[0] + "/sequana_summary_isoseq.json").data["hq_isoform"]['N'] data[0].append(N) data[1].append(len(b.df.query("reference_name not in [-1, '-1']"))) print("scanned {}".format(filename)) return data
def to_summary(self, filename="sequana_summary_isoseq.json", data=None): """Save statistics into a JSON file :param filename: :param data: dictionary to save. If not provided, use :meth:`stats` """ from sequana.summary import Summary if data is None: data = self.stats() Summary("isoseq",self.sample_name, data=data).to_json(filename)
def test_summary(): s = Summary("test2", sample_name="chr1",data={"mean":1}) assert s.data == {"mean":1} assert s.version assert s.date d = s.as_dict() assert "name" in d assert "version" in d assert "data" in d assert "date" in d # test wrong constructor try: s = Summary("test") assert False except: assert True try: s = Summary("test", "test") assert False except: assert True # test data_description s = Summary("test2", data={"mean":1}) s.data_description = {"mean": "mean of the data set"} assert s.data_description == {"mean": "mean of the data set"} try: s.data_description = {"dummy": 1} assert False except: assert True from easydev import TempFile with TempFile(suffix=".json") as fh: s.to_json(fh.name)