def testBaseCountsTwoReads(self): seq = '>hey\nagtcagtcagtc\n>you\nacctg' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['base_counts'], { 'a': 4, 'c': 5, 't': 4, 'g': 4 })
def testBaseCountsOneRead(self): seq = '>hey\nagtcagtcagtc' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['base_counts'], { 'a': 3, 'c': 3, 't': 3, 'g': 3 })
def testMedianThreeStrings(self): seq = '>hey\nagtcagtcagtc\n>you\nacctg\n>how\natgggtc' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['median_length'], 7)
def testMedianOneString(self): seq = '>hey\nagtcagtcagtc' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['median_length'], 12)
def testMedianEmptyInput(self): result = summarizeReads(StringIO(), 'fasta') self.assertEqual(result['median_length'], 0)
def testMinLengthListTwoStrings(self): seq = '>hey\nagtcagtcagtc\n>you\nacctg' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['min_length'], 5)
def testMinLengthListEmptyInput(self): result = summarizeReads(StringIO(), 'fasta') self.assertEqual(result['min_length'], 0)
def testBaseCountsTwoReads(self): seq = '>hey\nagtcagtcagtc\n>you\nacctg' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['base_counts'], {'a': 4, 'c': 5, 't': 4, 'g': 4})
def testBaseCountsEmptyImput(self): result = summarizeReads(StringIO(), 'fasta') self.assertEqual(result['base_counts'], {})
def testTotalLengthTwoStrings(self): seq = '>hey\nagtcagtcagtc\n>you\nacctg' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['total_length'], 17)
def testTotalLengthOneString(self): seq = '>hey\nagtcagtcagtc' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['total_length'], 12)
def testTotalLengthEmptyInput(self): result = summarizeReads(StringIO(), 'fasta') self.assertEqual(result['total_length'], 0)
def testReadNumberTwoSequencesCount(self): seq = '>hey\nagtcagtcagtc\n>you\nacctg' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['read_number'], 2)
def testReadNumberOneSequenceCount(self): seq = '>hey\nagtcagtcagtc' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['read_number'], 1)
def testReadNumberEmptyInput(self): result = summarizeReads(StringIO(), 'fasta') self.assertEqual(result['read_number'], 0)
def testMedianFourStrings(self): seq = '>hey\nagtcagtcagtc\n>you\nacctg\n>how\natgggtc\n>are\n\ atggctattgaactgtatct' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['median_length'], 9.5)
from __future__ import print_function from dark.summarize import summarizeReads import sys if len(sys.argv) != 2: print("Usage: %s file.fasta / file.fastq" % sys.argv[0], file=sys.stderr) sys.exit(1) else: filename = sys.argv[1] if filename.lower().endswith("q"): filetype = "fastq" else: # Assume anything not ending with a 'q' is fasta. filetype = "fasta" result = summarizeReads(filename, filetype) print("Number of reads:", result["read_number"]) print("Total length: %s bases" % result["total_length"]) print("The average read length: %s bases" % result["average_length"]) print("Longest read:", result["max_length"]) print("Shortest read:", result["min_length"]) print("Median length:", result["median_length"]) for base in sorted(result["base_counts"]): count = result["base_counts"][base] print("%s: Total: %s; Average per read: %s" % (base, count, count / result["read_number"]))
def testBaseCountsOneRead(self): seq = '>hey\nagtcagtcagtc' result = summarizeReads(StringIO(seq), 'fasta') self.assertEqual(result['base_counts'], {'a': 3, 'c': 3, 't': 3, 'g': 3})