def test_local_blastn(self): # prepare query seqfile_ops.write_fasta(self.single_q_file, self.single_record) query_record = seqfile_ops.load_fasta(self.single_q_file) self.assertEqual(query_record.id,self.record_1.id) self.assertEqual(str(query_record.seq),str(self.record_1.seq)) # prepare database seqfile_ops.write_fasta(self.db_file, self.db_records) records_list = seqfile_ops.load_multifasta(self.db_file) index = 0 for record in records_list: self.assertEqual(record.id,self.db_records[index].id) self.assertEqual(str(record.seq),str(self.db_records[index].seq)) index +=1 # make database self.dbfile_path, db_report = blasting.make_blastDB(self.temp_dir, self.db_name, self.db_file, 'nucl') self.assertIs(db_report['status'], 0) self.assertEquals(db_report['message'], 'database exists') # run local blast with single query self.status = blasting.local_blastn(self.single_q_file, self.single_out_file, self.dbfile_path, self.prefs) self.assertEquals(self.status['output'], '') self.assertIsNone(self.status['error']) # parse blast output matches_single = blasting.parse_blast_out6(self.single_out_file, self.prefs) self.assertIs(len(matches_single), 1) self.assertEqual(matches_single[0]['contig_id'], self.single_record.id) self.assertEqual(matches_single[0]['details']['match_p100'], 100)
def test_write_and_load_single_fasta(self): count = seqfile_ops.write_fasta(self.fas_filename, self.record) self.assertIs(count, 1) fas_record = seqfile_ops.load_fasta(self.fas_filename) self.assertEqual(fas_record.id, self.record.id)