def args(self): cls = self.parent()[0] seq = self.threeprime if determine_read_type(self.input()[0].path, self.read1_suffix, self.read2_suffix) == 2: seq = self.fiveprime return [ "-a", seq, self.input()[0], "-o", self.output(), ">", rreplace(self.input()[0].path, str(cls().suffix[0]), self.label + self.suffix[1], 1) ]
def requires(self): cls = self.parent()[0] source = self.source()[0] # Ugly hack for 1 -> 2 dependency: works but should be dealt with otherwise if str(fullclassname(cls)) in ["ratatosk.lib.utils.misc.ResyncMates"]: rt = determine_read_type(source, self.read1_suffix, self.read2_suffix) if rt == 1: self.is_read1 = True fq1 = source fq2 = rreplace(source, self.read1_suffix, self.read2_suffix, 1) elif rt == 2: self.is_read1 = False fq1 = rreplace(source, self.read2_suffix, self.read1_suffix, 1) fq2 = source retval = [cls(target=[fq1, fq2])] else: retval = [cls(target=source)] if len(self.parent()) > 1: retval += [cls(target=source) for cls, source in izip(self.parent()[1:], self.source()[1:])] return retval
def test_determine_read_type(self): fn = "sample_index1_1.fastq.gz" rtype = determine_read_type(fn, "_1", "_2") self.assertEqual(rtype, 1) fn = "sample_index1_2.fastq.gz" rtype = determine_read_type(fn, "_1", "_2") self.assertEqual(rtype, 2) fn = "4_120924_AC003CCCXX_P001_101_index1_1.fastq.gz" rtype = determine_read_type(fn, "_1", "_2") self.assertEqual(rtype, 1) fn = "4_120924_AC003CCCXX_P001_101_index1_2.fastq.gz" rtype = determine_read_type(fn, "_1", "_2") self.assertEqual(rtype, 2) fn = "P001_101_index3_TGACCA_L001_R1_001.fastq.gz" rtype = determine_read_type(fn, "_R1_001", "_R2_001") self.assertEqual(rtype, 1) fn = "P001_101_index3_TGACCA_L001_R2_001.fastq.gz" rtype = determine_read_type(fn, "_R1_001", "_R2_001") self.assertEqual(rtype, 2)
def args(self): cls = self.parent()[0] seq = self.threeprime if determine_read_type(self.input()[0].path, self.read1_suffix, self.read2_suffix) == 2: seq = self.fiveprime return ["-a", seq, self.input()[0], "-o", self.output(), ">", rreplace(self.input()[0].path, str(cls().suffix[0]), self.label + self.suffix[1], 1)]