def test_write(self): """Test ClassifySummary.write.""" outFN = op.join(self.testDir, "out/test_ClassifySummary.txt") stdoutFN = op.join(self.testDir, "stdout/test_ClassifySummary.txt") obj = ClassifySummary() obj.num_reads = 100 obj.num_5_seen = 90 obj.num_3_seen = 70 obj.num_polyA_seen = 70 obj.num_filtered_short_reads = 10 obj.num_nfl = 50 obj.num_fl = 40 obj.num_flnc = 39 obj.num_flc = 1 obj.num_flnc_bases = 10001 obj.write(outFN) self.assertTrue(filecmp.cmp(outFN, stdoutFN))
def __init__(self, reads_fn="test.fa", out_dir="output/", out_reads_fn="testout.fa", primer_fn=None, primer_report_fn=None, summary_fn=None, cpus=1, change_read_id=True, opts=ChimeraDetectionOptions(50, 10, 100, 50, 100, False), out_nfl_fn=None, out_flnc_fn=None, ignore_polyA=False, reuse_dom=False): self.reads_fn = realpath(reads_fn) self.out_dir = realpath(out_dir) self.cpus = cpus self.change_read_id = change_read_id self.chimera_detection_opts = opts self.ignore_polyA = ignore_polyA self.reuse_dom = reuse_dom # The input primer file: primers.fa self.primer_fn = primer_fn if primer_fn is not None else \ op.join(self.data_dir, PRIMERFN) # The output fasta file. self.out_all_reads_fn = realpath(out_reads_fn) # Intermediate output fasta file before chimera detection. # trimmed full-length reads: fl.trimmed.fasta # and # trimmed non-full-length reads: nfl.trimmed.fasta self._trimmed_fl_reads_fn = op.join(self.out_dir, "fl.trimmed.fasta") self._trimmed_nfl_reads_fn = op.join(self.out_dir, "nfl.trimmed.fasta") self.primer_front_back_fn = op.join(self.out_dir, PRIMERFRONTENDFN) self.primer_chimera_fn = op.join(self.out_dir, PRIMERCHIMERAFN) # The output primer file: primer_info.csv self.primer_report_fn = primer_report_fn \ if primer_report_fn is not None else \ ".".join(out_reads_fn.split('.')[:-1]) + "." + PRIMERREPORTFN # primer reports for nfl reads before chimera detection. Note that # chimera detection is not necessary for nfl reads. self._primer_report_nfl_fn = op.join(self.out_dir, "primer_report.nfl.csv") # primer reports for fl reads after chimera detection. Note that # chimera detection is required for fl reads. self._primer_report_fl_fn = op.join(self.out_dir, "primer_report.fl.csv") # The matrix file: PBMATRIX.txt self.pbmatrix_fn = op.join(self.data_dir, PBMATRIXFN) # The output phmmer Dom file for trimming primers: hmmer.front_end.dom self.out_front_back_dom_fn = op.join(self.out_dir, FRONTENDDOMFN) # The output phmmer Dom file for chimera detection: # hmmer.fl.chimera.dom and hmmer.nfl.chimera.dom self.out_trimmed_fl_dom_fn = op.join(self.out_dir, FLCHIMERADOMFN) self.out_trimmed_nfl_dom_fn = op.join(self.out_dir, NFLCHIMERADOMFN) self.chunked_front_back_reads_fns = None self.chunked_front_back_dom_fns = None #self.chunked_trimmed_reads_fns = None #self.chunked_trimmed_reads_dom_fns = None # The summary file: *.classify_summary.txt self.summary = ClassifySummary() self.summary_fn = summary_fn if summary_fn is not None else \ ".".join(out_reads_fn.split('.')[:-1]) + \ "." + CLASSIFYSUMMARY self.out_nfl_fn = realpath(out_nfl_fn) if out_nfl_fn is not None \ else op.join(self.out_dir, "nfl.fasta") self.out_nflnc_fn = op.join(self.out_dir, "nflnc.fasta") self.out_nflc_fn = op.join(self.out_dir, "nflc.fasta") self.out_flnc_fn = realpath(out_flnc_fn) if out_flnc_fn is not None \ else op.join(self.out_dir, "flnc.fasta") self.out_flc_fn = op.join(self.out_dir, "flc.fasta")