Beispiel #1
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
     })
Beispiel #2
0
 def testBaseCountsOneRead(self):
     seq = '>hey\nagtcagtcagtc'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['base_counts'], {
         'a': 3,
         'c': 3,
         't': 3,
         'g': 3
     })
Beispiel #3
0
 def testMedianThreeStrings(self):
     seq = '>hey\nagtcagtcagtc\n>you\nacctg\n>how\natgggtc'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['median_length'], 7)
Beispiel #4
0
 def testMedianOneString(self):
     seq = '>hey\nagtcagtcagtc'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['median_length'], 12)
Beispiel #5
0
 def testMedianEmptyInput(self):
     result = summarizeReads(StringIO(), 'fasta')
     self.assertEqual(result['median_length'], 0)
Beispiel #6
0
 def testMinLengthListTwoStrings(self):
     seq = '>hey\nagtcagtcagtc\n>you\nacctg'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['min_length'], 5)
Beispiel #7
0
 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})
Beispiel #9
0
 def testBaseCountsEmptyImput(self):
     result = summarizeReads(StringIO(), 'fasta')
     self.assertEqual(result['base_counts'], {})
Beispiel #10
0
 def testTotalLengthTwoStrings(self):
     seq = '>hey\nagtcagtcagtc\n>you\nacctg'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['total_length'], 17)
Beispiel #11
0
 def testTotalLengthOneString(self):
     seq = '>hey\nagtcagtcagtc'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['total_length'], 12)
Beispiel #12
0
 def testTotalLengthEmptyInput(self):
     result = summarizeReads(StringIO(), 'fasta')
     self.assertEqual(result['total_length'], 0)
Beispiel #13
0
 def testReadNumberTwoSequencesCount(self):
     seq = '>hey\nagtcagtcagtc\n>you\nacctg'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['read_number'], 2)
Beispiel #14
0
 def testReadNumberOneSequenceCount(self):
     seq = '>hey\nagtcagtcagtc'
     result = summarizeReads(StringIO(seq), 'fasta')
     self.assertEqual(result['read_number'], 1)
Beispiel #15
0
 def testReadNumberEmptyInput(self):
     result = summarizeReads(StringIO(), 'fasta')
     self.assertEqual(result['read_number'], 0)
Beispiel #16
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})