Example #1
0
 def test_write_obs_record(self):
     """writes observed records"""
     f = StringIO()
     exp = "a\nb\nc\n"
     write_obs_record(f, 'a')
     write_obs_record(f, 'b')
     write_obs_record(f, 'c')
     f.seek(0)
     obs = f.read()
     self.assertEqual(obs, exp)
Example #2
0
 def test_write_obs_record(self):
     """writes observed records"""
     f = StringIO()
     exp = "a\nb\nc\n"
     write_obs_record(f, 'a') 
     write_obs_record(f, 'b') 
     write_obs_record(f, 'c')
     f.seek(0)
     obs = f.read()
     self.assertEqual(obs,exp)
Example #3
0
            except:
                failure_count += 1
                continue
            if accession in observed_records:
                continue
            if accession in seen:
                continue
                # accession added at the end of this while loop

            # sequence is just a str of sequence
            try:
                sequence = get_sequence(next_record)
            except NoSequenceError:
                # this isn't a failure, so no point in continuing but record
                # the accession so it isn't hit again
                write_obs_record(obs_records, accession)
                continue
            except:
                failure_count += 1
                continue

            # verify the sequence is DNA. NCBI silently corrupts records 
            # every once and a while leading to crap in the sequence. 
            # Thanks NCBI.
            seq_chars = set(sequence)
            if not seq_chars.issubset(alpha):
                logline = log_f("Corrupt sequence, accession: %s" % (accession))
                logger.write(logline)
                if verbose:
                    stdout.write(logline)
                failure_count += 1