Пример #1
0
 def _compute_stat(self, args_term):
     new_prefixs = []
     for gff in os.listdir(self.terms["all"]):
         if gff.endswith("_term_all.gff"):
             out_tmp = open(self.tmps["gff"], "w")
             out_tmp.write("##gff-version 3\n")
             new_prefix = gff.replace("_term_all.gff", "")
             new_prefixs.append(gff.replace("_term_all.gff", ""))
             num = 0
             fh = open(os.path.join(self.terms["all"], gff))
             for entry in self.gff_parser.entries(fh):
                 name = '%0*d' % (5, num)
                 entry.attributes["ID"] = (entry.seq_id + "_terminator" +
                                           str(num))
                 entry.attributes["Name"] = "_".join(["terminator_" + name])
                 entry.attribute_string = ";".join([
                     "=".join(items) for items in entry.attributes.items()
                 ])
                 out_tmp.write("\t".join([
                     entry.info_without_attributes, entry.attribute_string
                 ]) + "\n")
                 num += 1
             out_tmp.close()
             fh.close()
             shutil.move(
                 self.tmps["gff"],
                 os.path.join(self.terms["all"],
                              "_".join([new_prefix, self.suffixs["gff"]])))
     stat_path = os.path.join(args_term.out_folder, "statistics")
     for prefix in new_prefixs:
         stat_term(
             os.path.join(self.terms["all"],
                          "_".join([prefix, self.suffixs["gff"]])),
             os.path.join(self.csvs["all"],
                          "_".join([prefix, self.suffixs["csv"]])),
             os.path.join(stat_path, "_".join(["stat", prefix + ".csv"])),
             os.path.join(self.terms["best"], "_".join([prefix, "term"])),
             os.path.join(self.terms["express"], "_".join([prefix,
                                                           "term"])),
             os.path.join(self.terms["non"], "_".join([prefix, "term"])))
         shutil.move(
             os.path.join(self.terms["best"],
                          "_".join([prefix, self.suffixs["csv"]])),
             os.path.join(self.csvs["best"],
                          "_".join([prefix, self.suffixs["csv"]])))
         shutil.move(
             os.path.join(self.terms["express"],
                          "_".join([prefix, self.suffixs["csv"]])),
             os.path.join(self.csvs["express"],
                          "_".join([prefix, self.suffixs["csv"]])))
         shutil.move(
             os.path.join(self.terms["non"],
                          "_".join([prefix, self.suffixs["csv"]])),
             os.path.join(self.csvs["non"],
                          "_".join([prefix, self.suffixs["csv"]])))
         os.remove(
             os.path.join(self.terms["all"],
                          "_".join([prefix, self.suffixs["allgff"]])))
Пример #2
0
 def _compute_stat(self, args_term):
     new_prefixs = []
     for gff in os.listdir(self.terms["all"]):
         if gff.endswith("_term_all.gff"):
             out_tmp = open(self.tmps["gff"], "w")
             out_tmp.write("##gff-version 3\n")
             new_prefix = gff.replace("_term_all.gff", "")
             new_prefixs.append(gff.replace("_term_all.gff", ""))
             num = 0
             fh = open(os.path.join(self.terms["all"], gff))
             for entry in self.gff_parser.entries(fh):
                 name = '%0*d' % (5, num)
                 entry.attributes["ID"] = "term" + str(num)
                 entry.attributes["Name"] = "_".join(["Terminator_" + name])
                 entry.attribute_string = ";".join([
                     "=".join(items) for items in entry.attributes.items()])
                 out_tmp.write("\t".join([entry.info_without_attributes,
                               entry.attribute_string]) + "\n")
                 num += 1
             out_tmp.close()
             fh.close()
             shutil.move(self.tmps["gff"], os.path.join(self.terms["all"],
                         "_".join([new_prefix, self.suffixs["gff"]])))
     if args_term.stat:
         stat_path = os.path.join(args_term.out_folder, "statistics")
         for prefix in new_prefixs:
             stat_term(os.path.join(self.terms["all"],
                       "_".join([prefix, self.suffixs["gff"]])),
                       os.path.join(self.csvs["all"],
                       "_".join([prefix, self.suffixs["csv"]])),
                       os.path.join(stat_path,
                       "_".join(["stat", prefix + ".csv"])),
                       os.path.join(self.terms["best"],
                       "_".join([prefix, "term"])),
                       os.path.join(self.terms["express"],
                       "_".join([prefix, "term"])),
                       os.path.join(self.terms["non"],
                       "_".join([prefix, "term"])))
             shutil.move(os.path.join(self.terms["best"],
                         "_".join([prefix, self.suffixs["csv"]])),
                         os.path.join(self.csvs["best"],
                         "_".join([prefix, self.suffixs["csv"]])))
             shutil.move(os.path.join(self.terms["express"],
                         "_".join([prefix, self.suffixs["csv"]])),
                         os.path.join(self.csvs["express"],
                         "_".join([prefix, self.suffixs["csv"]])))
             shutil.move(os.path.join(self.terms["non"],
                         "_".join([prefix, self.suffixs["csv"]])),
                         os.path.join(self.csvs["non"],
                         "_".join([prefix, self.suffixs["csv"]])))
             os.remove(os.path.join(self.terms["all"],
                       "_".join([prefix, self.suffixs["allgff"]])))
Пример #3
0
 def test_stat_term(self):
     term_gff = os.path.join(self.test_folder, "aaa_term.gff")
     term_table = os.path.join(self.test_folder, "aaa_term.csv")
     stat = os.path.join(self.test_folder, "stat")
     output_decrease = os.path.join(self.test_folder, "decrease")
     output_expression = os.path.join(self.test_folder, "expression")
     output_non = os.path.join(self.test_folder, "non_expressed")
     gen_file(term_gff, self.example.gff)
     gen_file(term_table, self.example.table)
     st.stat_term(term_gff, term_table, stat, output_decrease, output_expression, output_non)
     self.assertTrue(stat)
     datas = import_data(output_decrease + ".csv")
     self.assertEqual("\n".join(datas), self.example.table)
     datas = import_data(output_expression + ".csv")
     self.assertEqual("\n".join(datas), self.example.table)
Пример #4
0
 def test_stat_term(self):
     term_gff = os.path.join(self.test_folder, "aaa_term.gff")
     term_table = os.path.join(self.test_folder, "aaa_term.csv")
     stat = os.path.join(self.test_folder, "stat")
     output_decrease = os.path.join(self.test_folder, "decrease")
     output_expression = os.path.join(self.test_folder, "expression")
     output_non = os.path.join(self.test_folder, "non_expressed")
     gen_file(term_gff, self.example.gff)
     gen_file(term_table, self.example.table)
     st.stat_term(term_gff, term_table, stat, output_decrease, output_expression, output_non)
     self.assertTrue(stat)
     datas = import_data(output_decrease + ".csv")
     self.assertEqual("\n".join(datas), self.example.table)
     datas = import_data(output_expression + ".csv")
     self.assertEqual("\n".join(datas), self.example.table)