saherPervaiz commited on
Commit
94676e0
·
verified ·
1 Parent(s): fe58c23

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ # Function to find matches between reference and query sequences
4
+ def find_matches(reference, query):
5
+ matches = ""
6
+ for ref_char, query_char in zip(reference, query):
7
+ if ref_char == query_char:
8
+ matches += ref_char.upper()
9
+ else:
10
+ matches += "-"
11
+ match_percentage = (matches.count("-") / len(reference)) if len(reference) else 0
12
+ return matches, round((1 - match_percentage) * 100, 2)
13
+
14
+ # Streamlit app
15
+ st.title("DNA Sequence Matching 🧬")
16
+ st.subheader("Analyze the similarity between two DNA sequences")
17
+
18
+ # Input fields for sequences
19
+ reference = st.text_area(
20
+ "Enter Reference DNA Sequence:",
21
+ placeholder="e.g., ACTGACTGACTG"
22
+ ).strip().upper()
23
+
24
+ query = st.text_area(
25
+ "Enter Query DNA Sequence:",
26
+ placeholder="e.g., ACTGTTTGACTG"
27
+ ).strip().upper()
28
+
29
+ # Validate input
30
+ if st.button("Match DNA Sequences"):
31
+ if not reference or not query:
32
+ st.error("Please provide both Reference and Query DNA sequences.")
33
+ elif len(reference) != len(query):
34
+ st.error("The Reference and Query sequences must have the same length.")
35
+ else:
36
+ # Find matches and calculate percentage
37
+ matches, percentage = find_matches(reference, query)
38
+
39
+ # Display results
40
+ st.write("**Reference Sequence:**")
41
+ st.code(reference)
42
+ st.write("**Query Sequence:**")
43
+ st.code(query)
44
+ st.write("**Matching Sequence:**")
45
+ st.code(matches)
46
+ st.success(f"Match Percentage: {percentage}%")
47
+
48
+ st.write("Note: Sequences must be of the same length for accurate matching.")