· last year · Mar 26, 2024, 12:20 PM
1https://www.police.uk/tua/tell-us-about/ath/possible-terrorist-activity/report-possible-terrorist-activity2/report-possible-terrorist-activity/Complete?subid=321387d2-b8eb-418c-8038-42db6cc83c35
2Quickly exit this site by pressing the Escape key
3Leave this site
4Cookies
5Your cookie preferences have been saved. You can update your cookie settings at any time on the cookies page.
6
7Close
8Skip to main content
9
10Skip to main navigation
11
12Skip to form
13puk-logo
14Search this website
15Search
16Search
17
18Contact us
19Services and information
20Support
21Policing in the UK
22Performance
23Your area
24 Tell us about possible terrorist activity
25Report possible terrorist activity
26Complete
27Thank you
28We’ll review your report and get back to you if necessary.
29
30Your receipt code is below. Please keep it in case you need to contact us about this report again.
31
32ATH-3898-24-15000-000
33
34For security reasons we haven't emailed your report to you. To download a copy, please use the button below.
35
36 Download a copy
37
38More on this topic
39Terrorism in the UK
40Footer navigation
41Police.uk
42Contact us
43Find a police force
44Feedback about this website
45Cookies
46Terms and conditions
47Privacy
48Accessibility
49About the Open Government Licence
50Information and services
51Online services
52Careers and volunteering
53Crime prevention advice
54Data downloads and API
55Support
56Partners
57NPCC
58APCC
59Ask the police
60Ministry of Justice - Victim and Witness Information Service
61Victim Support
62Language
63Cymraeg
64© Copyright 2024. All content rights reserved.
65
66All data is available under the Open Government Licence v3.0 unless otherwise stated.
67
68
69
70
71from random import choice, choices
72
73nucleobase = "AGCT"
74
75start_codon = "ATG"
76stop_codon = ("TAG", "TAA", "TGA")
77
78def isPotentialGene(DNA: str):
79 # длина кратна 3
80 if (len(DNA) % 3) != 0:
81 return False
82 # начинается с кодона начала
83 if not DNA.startswith(start_codon):
84 return False
85 # не имеет кодонов конца внутри
86 for i in range(len(DNA) - 3):
87 if i % 3 == 0:
88 if DNA[i:i+3] in stop_codon:
89 return False
90 # завершается кодоном конца
91 if DNA.endswith(stop_codon[0]):
92 return True
93 if DNA.endswith(stop_codon[1]):
94 return True
95 if DNA.endswith(stop_codon[2]):
96 return True
97 return False
98
99
100# 0
101def generateCodon(triplets: int):
102 if triplets <= 0:
103 raise ValueError("the minimum number of triplets is 1")
104 codons = ""
105 while triplets > 0:
106 if (codon := "".join(choices(nucleobase, k=3))) not in stop_codon:
107 codons += codon
108 triplets -= 1
109 return codons
110
111def generateDNA(length: int):
112 if length <= 6 or length % 3 != 0:
113 raise ValueError("the length of the DNA must be greater than six and a multiple of six")
114 return start_codon + generateCodon(int((length - 6) / 3)) + choice(stop_codon)
115
116# 1
117def isValidDNA(st: str):
118 return set(st).issubset(nucleobase)
119
120# 2
121def complementWC(DNA: str):
122 return ''.join([{'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C'}[base] for base in DNA])
123
124# 3
125def palindromeWC(DNA: str):
126 return DNA == complementWC(DNA)[::-1]
127
128# 4
129def isShift(s: str, t: str):
130 return len(s) == len(t) and t in s + s
131
132# 5
133def find_PotentialGene(DNA: str, length: int):
134 potential_genes = []
135 for i in range(len(DNA)):
136 if DNA[i:i+3] == start_codon:
137 for j in range(i+3, len(DNA), 3):
138 if DNA[j:j+3] in stop_codon:
139 gene = DNA[i:j+3]
140 if len(gene) >= length and len(gene) % 3 == 0:
141 potential_genes.append(gene)
142 break
143 if not potential_genes:
144 return None
145 return potential_genes
146
147# 6
148def caesar_cipher(text: str, ROT: int, decipher=False):
149 if ROT < 0:
150 raise ValueError("the number of shifts must be greater than or equal to zero")
151 encrypted_text = ""
152 if decipher:
153 ROT = -ROT
154 for char in text:
155 if char.isalpha():
156 shifted = ord(char) + ROT
157 if char.islower():
158 if shifted > ord("z"):
159 shifted -= 26
160 elif shifted < ord("a"):
161 shifted += 26
162 elif char.isupper():
163 if shifted > ord("Z"):
164 shifted -= 26
165 elif shifted < ord("A"):
166 shifted += 26
167 encrypted_text += chr(shifted)
168 else:
169 encrypted_text += char
170 if not encrypted_text:
171 return None
172 return encrypted_text