def test_score_from_transcript(self, mock_structure): mock_structure.return_value = 10 mock_frame = MagicMock(siRNA1='acgt') offtarget = 5 regexp = 5 result = score.score_from_transcript( mock_frame, 'original_frame', 'frame_ss', offtarget, regexp ) self.assertEqual(result['structure'], mock_structure()) self.assertEqual(result['offtarget'], 30) self.assertEqual(result['regexp'], 25) self.assertEqual( result['all'], mock_structure() + 30 + 25 )
def shmir_from_fasta(siRNA, offtarget, regexp, original_frames, prefix): siRNA2 = reverse_complement(siRNA) frames = adjusted_frames(siRNA, siRNA2, 0, 0, deepcopy(original_frames)) # we do not have shifts here shmirs = [frame.template() for frame in frames] with allow_join_result(): foldings = group(fold.s(shmir, prefix=prefix).set(queue="subtasks") for shmir in shmirs).apply_async().get() results = [] iter_frames = izip(frames, original_frames, foldings) for frame, original_frame, folding in iter_frames: score = score_from_transcript(frame, original_frame, folding["ss"], offtarget, regexp) if validate_transcript_by_score(score): results.append({"score": score, "frame": frame, "folding": folding, "found_sequence": siRNA}) return results