In [1]:
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# Use this generator (and this seed) everywhere so your numbers are reproducible.
rng = np.random.default_rng(540)
In [5]:
dna=rng.choice(["A", "T", "C", "G"], 10000)
dna[:10]
Out[5]:
array(['A', 'G', 'T', 'C', 'G', 'A', 'G', 'G', 'C', 'C'], dtype='<U1')
In [48]:
s="".join(dna[:10])
s
Out[48]:
'AGTCGAGGCC'
In [13]:
k=3
for i in range(10-k+1):
char=[]
for j in range(k):
char.append(s[i+j])
print(char)
['A'] ['A', 'G'] ['A', 'G', 'T'] ['G'] ['G', 'T'] ['G', 'T', 'C'] ['T'] ['T', 'C'] ['T', 'C', 'G'] ['C'] ['C', 'G'] ['C', 'G', 'A'] ['G'] ['G', 'A'] ['G', 'A', 'G'] ['A'] ['A', 'G'] ['A', 'G', 'G'] ['G'] ['G', 'G'] ['G', 'G', 'C'] ['G'] ['G', 'C'] ['G', 'C', 'C']
In [16]:
k=3
my_dict={}
for i in range(10-k+1):
char=[]
for j in range(k):
char.append(s[i+j])
tup="".join(char)
print(tup)
AGT GTC TCG CGA GAG AGG GGC GCC
In [17]:
k=3
my_dict={}
for i in range(10-k+1):
char=[]
for j in range(k):
char.append(s[i+j])
tup="".join(char)
if tup in my_dict:
my_dict[tup]+=1
else:
my_dict[tup]=1
my_dict
Out[17]:
{'AGT': 1,
'GTC': 1,
'TCG': 1,
'CGA': 1,
'GAG': 1,
'AGG': 1,
'GGC': 1,
'GCC': 1}
In [42]:
def ktuples(s, k):
my_dict={}
for i in range(len(s)-k+1):
char=[]
for j in range(k):
char.append(s[i+j])
tup="".join(char)
if tup in my_dict:
my_dict[tup]+=1
else:
my_dict[tup]=1
return(my_dict)
In [53]:
results=ktuples("CAGACAAAAC", k=3)
results
Out[53]:
{'CAG': 1, 'AGA': 1, 'GAC': 1, 'ACA': 1, 'CAA': 1, 'AAA': 2, 'AAC': 1}
In [54]:
for tup in sorted(results):
print(f" {tup}: {results[tup]}")
AAA: 2 AAC: 1 ACA: 1 AGA: 1 CAA: 1 CAG: 1 GAC: 1
In [55]:
s="".join(dna)
results=ktuples(s, k=3)
results
Out[55]:
{'AGT': 159,
'GTC': 154,
'TCG': 165,
'CGA': 167,
'GAG': 147,
'AGG': 159,
'GGC': 166,
'GCC': 148,
'CCC': 146,
'CCA': 168,
'CAC': 167,
'ACG': 156,
'CGG': 138,
'GGA': 159,
'GAT': 161,
'ATA': 180,
'TAG': 173,
'AGC': 155,
'GCT': 155,
'CTG': 168,
'TGT': 171,
'TCA': 136,
'CAG': 140,
'ATG': 144,
'TGG': 141,
'GAC': 165,
'AGA': 136,
'GAA': 149,
'AAC': 156,
'ACC': 171,
'CCG': 155,
'GGT': 113,
'GTA': 142,
'TAA': 138,
'AAT': 156,
'ATT': 166,
'TTA': 154,
'TAC': 162,
'CAA': 173,
'ACA': 153,
'GGG': 142,
'GCA': 178,
'ACT': 170,
'GTT': 172,
'GTG': 145,
'TGA': 160,
'TTG': 174,
'TGC': 159,
'CAT': 155,
'TAT': 160,
'TCC': 147,
'AAA': 153,
'CTT': 161,
'CCT': 143,
'CGT': 170,
'TTC': 170,
'CTA': 157,
'GCG': 155,
'AAG': 148,
'TTT': 143,
'ATC': 142,
'TCT': 172,
'CGC': 156,
'CTC': 154}
In [56]:
for tup in sorted(results):
print(f" {tup}: {results[tup]}")
AAA: 153 AAC: 156 AAG: 148 AAT: 156 ACA: 153 ACC: 171 ACG: 156 ACT: 170 AGA: 136 AGC: 155 AGG: 159 AGT: 159 ATA: 180 ATC: 142 ATG: 144 ATT: 166 CAA: 173 CAC: 167 CAG: 140 CAT: 155 CCA: 168 CCC: 146 CCG: 155 CCT: 143 CGA: 167 CGC: 156 CGG: 138 CGT: 170 CTA: 157 CTC: 154 CTG: 168 CTT: 161 GAA: 149 GAC: 165 GAG: 147 GAT: 161 GCA: 178 GCC: 148 GCG: 155 GCT: 155 GGA: 159 GGC: 166 GGG: 142 GGT: 113 GTA: 142 GTC: 154 GTG: 145 GTT: 172 TAA: 138 TAC: 162 TAG: 173 TAT: 160 TCA: 136 TCC: 147 TCG: 165 TCT: 172 TGA: 160 TGC: 159 TGG: 141 TGT: 171 TTA: 154 TTC: 170 TTG: 174 TTT: 143
In [ ]: