annotate tests/test_riboplot.py @ 5:cef780bcce01

Remove include directives in rsti (docs). Replaced with links instead
author Vimalkumar Velayudhan <vimal@biotechcoder.com>
date Wed, 12 Aug 2015 09:53:06 +0100
parents 8e1efafa6277
children 2ffa8172dce1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
1 import os
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
2 import shutil
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
3 import logging
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
4 import unittest
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
5 import tempfile
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
6
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
7 from riboplot import ribocore, riboplot
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
8
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
9 # use testing configuration
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
10 CONFIG = riboplot.CONFIG = riboplot.config.TestingConfig()
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
11 logging.disable(logging.CRITICAL)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
12
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
13 RIBO_FILE = os.path.join(CONFIG.DATA_DIR, '5hRPFsorted.bam')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
14 RNA_FILE = os.path.join(CONFIG.DATA_DIR, '5hmRNAsorted.bam')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
15 TRANSCRIPT_NAME = 'gi|148357119|ref|NM_001098396.1|'
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
16 TRANSCRIPTOME_FASTA = os.path.join(CONFIG.DATA_DIR, 'zebrafish.fna')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
17 TRANSCRIPTOME_FASTA_MINUS1 = os.path.join(CONFIG.DATA_DIR, 'zebrafish_minus1.fna')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
18
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
19
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
20 class CheckArgumentsTestCase(unittest.TestCase):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
21 """Check if all arguments sent on the command line are valid."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
22 parser = riboplot.create_parser()
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
23
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
24 def test_bedtools_missing(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
25 """If bedtools is not in PATH, raise an error."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
26 args = self.parser.parse_args(
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
27 ['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA, '-t', TRANSCRIPT_NAME, '-n', RNA_FILE])
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
28 save_path = os.environ['PATH']
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
29 os.environ['PATH'] = ''
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
30 self.assertRaises(OSError, ribocore.check_optional_arguments, args.ribo_file, args.rna_file)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
31 os.environ['PATH'] = save_path
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
32
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
33 def test_is_bam_valid(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
34 """Test if BAM file is valid."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
35 valid = ribocore.is_bam_valid(RIBO_FILE)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
36 self.assertTrue(valid)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
37
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
38 # test with a FASTA file (which is not BAM)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
39 self.assertRaises(ValueError, ribocore.is_bam_valid, TRANSCRIPTOME_FASTA)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
40
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
41 def test_bam_has_index(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
42 """Check if BAM file has an index."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
43 # RPF file has an index
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
44 has_index = ribocore.bam_has_index(RIBO_FILE)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
45 self.assertTrue(has_index)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
46
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
47 # RNA file doesn't have an index
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
48 has_index = ribocore.bam_has_index(RNA_FILE)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
49 self.assertFalse(has_index)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
50
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
51 def test_create_bam_index(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
52 """Index a BAM file."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
53 ribocore.create_bam_index(RNA_FILE)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
54
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
55 # check if index exists
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
56 has_index = ribocore.bam_has_index(RNA_FILE)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
57 self.assertTrue(has_index)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
58
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
59 # remove index
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
60 os.remove('{}.bai'.format(RNA_FILE))
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
61
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
62 def test_valid_read_length(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
63 """Read length should be a valid integer."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
64 args = self.parser.parse_args(['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
65 '-t', TRANSCRIPT_NAME, '-l', '28'])
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
66 ribocore.check_optional_arguments(ribo_file=args.ribo_file, read_length=args.read_length)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
67
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
68 def test_invalid_read_length(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
69 """An error is raised if an invalid read length is used."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
70 args = self.parser.parse_args(['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA, '-t', TRANSCRIPT_NAME,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
71 '-l', '-1']) # invalid read length -1
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
72 self.assertRaises(ribocore.ArgumentError, ribocore.check_optional_arguments,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
73 args.ribo_file, None, args.read_length)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
74
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
75 args = self.parser.parse_args(['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA, '-t', TRANSCRIPT_NAME,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
76 '-l', '100']) # invalid read length 100
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
77 self.assertRaises(ribocore.ArgumentError, ribocore.check_optional_arguments,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
78 args.ribo_file, None, args.read_length)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
79
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
80 def test_valid_read_offset(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
81 """Read offset should be positive."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
82 args = self.parser.parse_args(['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA, '-t', TRANSCRIPT_NAME,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
83 '-s', '-1']) # invalid read offset -1
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
84 self.assertRaises(ribocore.ArgumentError, ribocore.check_optional_arguments,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
85 args.ribo_file, None, None, args.read_offset)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
86
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
87 def test_is_fasta_valid(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
88 """A valid FASTA file can be opened with pysam.FastaFile."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
89 self.assertTrue(ribocore.is_fasta_valid(TRANSCRIPTOME_FASTA))
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
90
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
91 def test_missing_transcript_in_fasta(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
92 """If a transcript is missing in FASTA, an error is raised."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
93 args = self.parser.parse_args(['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA, '-t', TRANSCRIPT_NAME]) # invalid read offset -1
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
94 self.assertRaises(ribocore.ArgumentError, ribocore.check_required_arguments,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
95 args.ribo_file, args.transcriptome_fasta, 'hello')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
96
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
97 def test_missing_transcript_in_bam(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
98 """If a transcript is missing in BAM, an error is raised."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
99 # testing with an unrelated BAM file
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
100 args = self.parser.parse_args(['-b', '/home/vimal/tmp/empty_tp/RiboSeq.bam', '-f', TRANSCRIPTOME_FASTA,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
101 '-t', TRANSCRIPT_NAME])
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
102 self.assertRaises(ribocore.ArgumentError, ribocore.check_required_arguments, args.ribo_file,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
103 args.transcriptome_fasta, args.transcript_name)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
104
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
105
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
106 class RNACountsTestCase(unittest.TestCase):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
107
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
108 def test_get_rna_counts(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
109 """Test get RNA counts for transcript from RNA-Seq BAM file. Assumes bedtools is installed."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
110 counts = riboplot.get_rna_counts(RNA_FILE, TRANSCRIPT_NAME)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
111 self.assertIsInstance(counts, dict)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
112 self.assertTrue(len(counts) > 0)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
113
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
114
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
115 class RiboPlotTestCase(unittest.TestCase):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
116
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
117 def test_get_codon_positions(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
118 """Get codon positions in all frames given a sequence."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
119 # the positions on this sequence were calculated manually.
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
120 fasta = ('AACCGGAGCACCCAGAGAAAACCCACGCAAACGCAGGGAGAATTTGCAAACTCCACACA'
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
121 'GAAATGCCAGCTGATCCAGCCGAGCCTCGAGTCAGCATCCTTGCTTGTTGGATGCCTGA'
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
122 'TTGCAGTTCAACTCCAAACTCAGTTGGACCAGCTGATCAGTG')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
123 codon_positions = riboplot.get_start_stops(fasta)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
124 expected = {1: {'starts': [], 'stops': []},
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
125 2: {'starts': [], 'stops': [71, 116, 152]},
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
126 3: {'starts': [63, 111], 'stops': []}}
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
127 self.assertEqual(codon_positions, expected)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
128
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
129 def test_valid_riboplot_run(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
130 """A good riboplot run"""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
131 output_dir = tempfile.mkdtemp()
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
132 print 'Output path is {}'.format(output_dir)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
133 parser = riboplot.create_parser()
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
134 args = parser.parse_args(['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA, '-t', TRANSCRIPT_NAME,
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
135 '-o', output_dir])
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
136 riboplot.main(args)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
137 for fname in ('riboplot.png', 'riboplot.svg', 'RiboCounts.csv'):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
138 self.assertTrue(os.path.exists(os.path.join(output_dir, fname)))
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
139 shutil.rmtree(output_dir)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
140
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
141 def test_transcript_with_no_counts(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
142 """If the transcript has no ribocounts, no plot should be produced."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
143 transcript = 'gi|62955616|ref|NM_001017822.1|' # has no reads
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
144 output_dir = tempfile.mkdtemp()
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
145 parser = riboplot.create_parser()
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
146 args = parser.parse_args(['-b', RIBO_FILE, '-f', TRANSCRIPTOME_FASTA, '-t', transcript, '-o', output_dir])
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
147 self.assertRaises(ribocore.RiboPlotError, riboplot.main, args)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
148 for fname in ('riboplot.png', 'riboplot.svg', 'RiboCounts.csv'):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
149 self.assertFalse(os.path.exists(os.path.join(output_dir, fname)))
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
150 shutil.rmtree(output_dir)
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
151
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
152 @unittest.skip('todo')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
153 def test_get_ribo_counts(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
154 """Get RiboSeq read counts"""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
155 pass
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
156
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
157 @unittest.skip('todo')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
158 def test_write_ribo_counts(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
159 """Write RiboSeq read counts as CSV."""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
160 pass
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
161
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
162 @unittest.skip('todo')
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
163 def test_plot_read_counts(self):
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
164 """Generate riboplots"""
8e1efafa6277 Updated version
Vimalkumar Velayudhan <vimal@biotechcoder.com>
parents:
diff changeset
165 pass