def test_get_seqs(): seqname = '1' args = parse_args((os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) seq = get_seq(args, seqname) print str(seq) assert str(seq) == 'CCCACACCGCGCAAAATTCTATACCAAAATCGACCT' args = parse_args(('--translate', os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) seq = get_seq(args, seqname, start=2) print str(seq) assert str(seq) == 'PHRAKFYTKID'
def test_parse_args(): args = parse_args((os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) assert args.blastfilename == os.path.join(test_dir, 'test.tblastn') assert args.seqfilename == os.path.join(test_dir, 'test.fa') assert args.column_names == 'qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore' assert args.evalue == 10 assert args.index_filename == os.path.join(test_dir, 'test.inx') assert args.program == 'tblastn' assert args.subject_name == 'test' assert args.translate is False args = parse_args(('--translate', os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) assert args.translate args = parse_args(('--translate', '--evalue', '1e-20', os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) assert args.evalue == 1e-20
def test_parse_blast(): """Putting it all together""" args = parse_args(('--translate', os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) seqs = parse_blast(args) assert len(seqs) == 11 print seqs[0].seq[:30] assert seqs[0].seq.find("RSQTPNSSVADDTRLHKRSMTISKGHSVSVVLISAALETIAASKEARRSTVIRESTQK") == 0 print seqs[0].seq.count('*') assert seqs[0].seq.count('*') == 13 print len(seqs[0].seq) assert len(seqs[0].seq) == 1809 args = parse_args(('--translate', '--evalue', '1e-70', os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) seqs = parse_blast(args) assert len(seqs) == 1 print seqs[0].seq[:30] assert seqs[0].seq.find("RSQTPNSSVADDTRLHKRSMTISKGHSVSVVLISAALETIAASKEARRSTVIRESTQK") == 0 print seqs[0].seq.count('*') assert seqs[0].seq.count('*') == 13 print len(seqs[0].seq) assert len(seqs[0].seq) == 1809
def test_combine_hits(): """this will ensure that all pairs of coordinates are in the correct order (lowest to highest for + strand hits; highest to lowest for - strand hits""" args = parse_args((os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) results = top_query(args) for result in results: coords = combine_hits(result) print coords if coords[0][0] < coords[0][1]: for x in range(len(coords)-1): assert coords[x][0] > coords[x+1][0] else: for x in range(len(coords)-1): assert coords[x][0] < coords[x+1][0]
def test_top_query(): #I can add to this to test the evalue filtering args = parse_args((os.path.join(test_dir, 'test.tblastn'), os.path.join(test_dir, 'test.fa'))) results = top_query(args) assert len(results) == 11 assert len(results[0]) == 12 assert results[0][0]['pident'] == 61.77