-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalidate.py
36 lines (30 loc) · 1.07 KB
/
validate.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys
from tqdm import tqdm
from sequence_db.sequence_db import SequenceDB
from paths import db_path
from result_set import get_result_set
def is_sequence_viable_option(candidate_substring, sequence_keys):
count = 0
for key in tqdm(sequence_keys):
count += 1
sequence = db.fetch_sequence(key)
if (candidate_substring in sequence):
return False
return True
if __name__ == "__main__":
min_match = sys.argv[1]
try:
result_set = get_result_set(int(min_match))
except:
result_set = [sys.argv[1]]
db = SequenceDB(db_path)
sequence_keys = db.fetch_all_sequence_ids()
for substring in result_set:
print ("analyzing %s" % substring)
print ("(%s nucleotides long)" % len(substring))
is_viable = is_sequence_viable_option(substring, sequence_keys)
if (is_viable):
print ("POSITIVE (may be a viable attack surface)")
else:
print ("NEGATIVE")
print("---------------------------------------------------")