Spaces:
Sleeping
Sleeping
import gradio as gr | |
def find_complimentary_dna(dna_to_compliemnt): | |
_complement_seq = '' | |
for pos in range(0,len(dna_to_compliemnt)): | |
_last_char = dna_to_compliemnt[len(dna_to_compliemnt)-pos-1] | |
if _last_char == 'A': | |
_complement_seq = _complement_seq + 'A' | |
elif _last_char == 'T': | |
_complement_seq = _complement_seq + 'U' | |
elif _last_char == 'G': | |
_complement_seq = _complement_seq + 'G' | |
elif _last_char == 'C': | |
_complement_seq = _complement_seq + 'C' | |
return _complement_seq | |
def get_protein_from_DNA(DNA): | |
reading_frames =transcribe(DNA) | |
orf_list = [] | |
for i in range(len(reading_frames)): | |
mRNA = reading_frames[i] | |
one_letter='' | |
found_start = False | |
for codon in mRNA: | |
if codon =='AUG' and not found_start: | |
one_letter += '<' | |
found_start = True | |
if codon =='UAA' or codon=='UGA'or codon =='UAG': | |
if found_start: | |
one_letter += '>' | |
found_start = False | |
continue | |
one_letter += AA_mapping[translate[codon]] | |
# mark the valid orf found | |
if one_letter.find('M') != -1: | |
one_letter = '*' + one_letter + '>' | |
orf_list.append(one_letter) | |
r = " * means the ORF sequence exists and highlighted in as <>; \n5'to 3' Frame 1:"+ orf_list[0] +"\n5'to 3' Frame 2:" + orf_list[1] + "\n5'to 3' Frame 3:" + orf_list[2] + "\n3'to 5' Frame 1:" + orf_list[3] + "\n3'to 5' Frame 2:" + orf_list[4] + "\n3'to 5' Frame 3:"+orf_list[5] | |
return DNA, find_complimentary_dna(DNA), r | |
input1 = gr.inputs.Textbox(label = 'DNA sequence') | |
output1 = gr.outputs.Textbox(label = 'Primary Sequence') | |
output2 = gr.outputs.Textbox(label = 'Complimentary Sequence') | |
output3 = gr.outputs.Textbox(label = 'Open Reading Frames') | |
interface = gr.Interface(fn=get_protein_from_DNA, | |
inputs=input1, | |
outputs=[output1,output2,output3], | |
title="CSCI1020: Web Application for Transcription/Translation", | |
description= "A quick tool for translating a DNA sequence into a protein sequence", | |
theme = 'huggingface', | |
layout = 'vertical' | |
) | |
interface.launch() |