# The sequence we want to analyze
seq = 'GACAGACUCCAUGNNNNNNNCACGUGGGUAUCUGUC'
# Initialize GC counter
n_gc = 0
# Initialize sequence length
len_seq = 0
# Loop through sequence and count G's and C's
for base in seq:
# all three of these mean the same thing
# if base != 'N' and base != 'n':
# len_seq += 1
# if not (base == 'N' or base == 'n'):
# len_seq += 1
if base not in 'Nn':
len_seq += 1
if base in 'GCgc':
n_gc += 1
# Divide to get GC content
n_gc / len_seq0.5517241379310345# length of a sequence
print("length:", len(seq))length: 36
my_list = [1, 'a', ['a', 'fine', 'day']]
print("length:", len(my_list))length: 3
# We'll do one through 5
my_integers = [1, 2, 3, 4, 5]
# Double each one
for n in my_integers:
n *= 2
# Check out the result
my_integers[1, 2, 3, 4, 5]# Don't do things this way
my_integers[0] *= 2
my_integers[1] *= 2
my_integers[2] *= 2
my_integers[3] *= 2
my_integers[4] *= 2
my_integers[2, 4, 6, 8, 10]range(10)range(0, 10)type(range(10))rangemy_range = range(10)
print(type(my_range))
range_iterator = iter(my_range)
print(type(range_iterator))
print(next(range_iterator))
print(next(range_iterator))<class 'range'>
<class 'range_iterator'>
0
1
seq = 'GACAGACUCCAUGNNNNNNNCACGUGGGUAUCUGUC'
seq_iter = iter(seq)
print(type(seq_iter))
print(next(seq_iter))
print(next(seq_iter))<class 'str_ascii_iterator'>
G
A
for i in range(10):
print(i, end=' ')0 1 2 3 4 5 6 7 8 9 print('hello', 'world', sep='|')hello|world
print('hello', 'world')hello world
print(sep='|', 'hello', 'world') Cell In[13], line 1
print(sep='|', 'hello', 'world')
^
SyntaxError: positional argument follows keyword argument
help(print)Help on built-in function print in module builtins:
print(*args, sep=' ', end='\n', file=None, flush=False)
Prints the values to a stream, or to sys.stdout by default.
sep
string inserted between values, default a space.
end
string appended after the last value, default a newline.
file
a file-like object (stream); defaults to the current sys.stdout.
flush
whether to forcibly flush the stream.
for i in range(10):
print(i, end=' ')0 1 2 3 4 5 6 7 8 9 help(range)Help on class range in module builtins:
class range(object)
| range(stop) -> range object
| range(start, stop[, step]) -> range object
|
| Return an object that produces a sequence of integers from start (inclusive)
| to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1.
| start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.
| These are exactly the valid indices for a list of 4 elements.
| When step is given, it specifies the increment (or decrement).
|
| Methods defined here:
|
| __bool__(self, /)
| True if self else False
|
| __contains__(self, key, /)
| Return bool(key in self).
|
| __eq__(self, value, /)
| Return self==value.
|
| __ge__(self, value, /)
| Return self>=value.
|
| __getitem__(self, key, /)
| Return self[key].
|
| __gt__(self, value, /)
| Return self>value.
|
| __hash__(self, /)
| Return hash(self).
|
| __iter__(self, /)
| Implement iter(self).
|
| __le__(self, value, /)
| Return self<=value.
|
| __len__(self, /)
| Return len(self).
|
| __lt__(self, value, /)
| Return self<value.
|
| __ne__(self, value, /)
| Return self!=value.
|
| __reduce__(self, /)
| Helper for pickle.
|
| __repr__(self, /)
| Return repr(self).
|
| __reversed__(self, /)
| Return a reverse iterator.
|
| count(self, object, /)
| rangeobject.count(value) -> integer -- return number of occurrences of value
|
| index(self, object, /)
| rangeobject.index(value) -> integer -- return index of value.
| Raise ValueError if the value is not present.
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs)
| Create and return a new object. See help(type) for accurate signature.
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| start
|
| step
|
| stop
# Print numbers 2 through 9
for i in range(2, 10):
print(i, end=' ')
# Print a newline
print()
# Print even numbers, 2 through 9
for i in range(2, 10, 2):
print(i, end=' ')2 3 4 5 6 7 8 9
2 4 6 8 for i in range(10, 2 , -2):
print(i, end=' ')10 8 6 4 range(1000)range(0, 1000)list(range(10))[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]list(range(1000))[0,
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,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642,
643,
644,
645,
646,
647,
648,
649,
650,
651,
652,
653,
654,
655,
656,
657,
658,
659,
660,
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999]my_integers = [1, 2, 3, 4, 5]
# indices 0 1 2 3 4
# Since len(my_integers) = 5, this takes i from 0 to 4,
# exactly the indices of my_integers
for i in range(len(my_integers)):
my_integers[i] *= 2
my_integers[2, 4, 6, 8, 10]my_integers = [1, 2, 3, 4, 5]
double_integers = []
for n in my_integers:
double_integers += [n*2]
# double_integers = double_integers + [n*2]
print("my integers:", my_integers)
print("double integers:", double_integers)my integers: [1, 2, 3, 4, 5]
double integers: [2, 4, 6, 8, 10]
[1, 2, 3, 4, 5] + 6 ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[24], line 1
----> 1 [1, 2, 3, 4, 5] + 6
TypeError: can only concatenate list (not "int") to list[1, 2, 3, 4, 5] + [6] [1, 2, 3, 4, 5, 6][1, 2, 3, 4, 5] + ['six'][1, 2, 3, 4, 5, 'six'][1, 2, 3, 4, 5] + 'six'---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[27], line 1
----> 1 [1, 2, 3, 4, 5] + 'six'
TypeError: can only concatenate list (not "str") to listmy_integers = [1, 2, 3, 4, 5]
for n in my_integers:
double_integers += [n*2]
# double_integers = double_integers + [n*2]this_num += 1---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[29], line 1
----> 1 this_num += 1
NameError: name 'this_num' is not definedmy_integers = (1, 2, 3, 4, 5)
double_integers = ()
for n in my_integers:
double_integers += (n*2,)
# double_integers = double_integers + [n*2]
print("my integers:", my_integers)
print("double integers:", double_integers)my integers: (1, 2, 3, 4, 5)
double integers: (2, 4, 6, 8, 10)
my_numbers = (1,2,3,4,5)
for i in range(len(my_numbers)):
my_numbers[i] *= 2
my_numbers---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[31], line 4
1 my_numbers = (1,2,3,4,5)
3 for i in range(len(my_numbers)):
----> 4 my_numbers[i] *= 2
6 my_numbers
TypeError: 'tuple' object does not support item assignmentseq = 'GACAGACUCCAUGNNNNNNNCACGUGGGUAUCUGUC'
# Initialized sequence length
len_seq = 0
# Loop through sequence and print index of G's
for base in seq:
if base in 'Gg':
print(len_seq, end=' ')
len_seq += 10 4 12 23 25 26 27 33 seq = 'GACAGACUCCAUGNNNNNNNCACGUGGGUAUCUGUC'
# Loop through sequence and print index of G's
for i, base in enumerate(seq):
if base in 'Gg':
print(i, end=' ')0 4 12 23 25 26 27 33 my_tuple = (3, 2, 1)
a, b, c = my_tuple
print(a, b, c)3 2 1
list(enumerate(seq))[(0, 'G'),
(1, 'A'),
(2, 'C'),
(3, 'A'),
(4, 'G'),
(5, 'A'),
(6, 'C'),
(7, 'U'),
(8, 'C'),
(9, 'C'),
(10, 'A'),
(11, 'U'),
(12, 'G'),
(13, 'N'),
(14, 'N'),
(15, 'N'),
(16, 'N'),
(17, 'N'),
(18, 'N'),
(19, 'N'),
(20, 'C'),
(21, 'A'),
(22, 'C'),
(23, 'G'),
(24, 'U'),
(25, 'G'),
(26, 'G'),
(27, 'G'),
(28, 'U'),
(29, 'A'),
(30, 'U'),
(31, 'C'),
(32, 'U'),
(33, 'G'),
(34, 'U'),
(35, 'C')]my_integers = [1, 2, 3, 4, 5]
# Double each one
for i, _ in enumerate(my_integers):
my_integers[i] *= 2
# Check out the result
my_integers[2, 4, 6, 8, 10]my_integers = [1, 2, 3, 4, 5]
# Double each one
for i, num in enumerate(my_integers):
my_integers[i] = num * 2
# Check out the result
my_integers[2, 4, 6, 8, 10]seq = 'GACAGACUCCAUGNNNNNNNCACGUGGGUAUCUGUC'
# Define start codon
start_codon = 'AUG'
# Initialize sequence index
i = 0
# Scan sequence until we hit the start codon
while seq[i:i+3] != start_codon:
i += 1
# Show the result
print('The start codon starts at index', i)The start codon starts at index 10
seq = 'GACAGACUCCAUGNNNNNNNCACGUGGGUAUCUGUC'
# Define start codon
start_codon = 'AZG'
# Initialize sequence index
i = 0
# Scan sequence until we hit the start codon
# There is an error in this code. The loop
# will never complete. Uncomment the next lines
# and run them to see, but you will need to
# stop the notebook yourself (the stop button
# has a square)
# while seq[i:i+3] != start_codon:
# i += 1
# Show the result
print('The start codon starts at index', i)The start codon starts at index 0
seq[1000]---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Cell In[40], line 1
----> 1 seq[1000]
IndexError: string index out of rangeseq[1000:1003]''seq = 'GACAGACUCCAUGNNNNNNNCACGUGGGUAUCUGUC'
# Define start codon
start_codon = 'AZG'
# Initialize sequence index
i = 0
# Scan sequence until we hit the start codon
while seq[i:i+3] != start_codon and i < len(seq):
i += 1
# Show the result
if i < len(seq):
print('The start codon starts at index', i)
else:
print('Start codon not found')Start codon not found
len(seq)36lines = [
"FINDHOM v 1.2:\n",
"Search results:\n",
"Query\tMatch fraction\tScore\tSubject\n",
"SMPL001\t0.7\t12331\tAQ10213 Phlebotomus perniciosus\n",
"SMPL003\t0.5\t6032\tBZ102363 Phlebotomus papatasi\n",
"SMPL004\t0.8\t13123\tRD178237 Sergentomyia dubia\n",
"SMPL007\t0.6\t10610\tBQ187981 Phlebotomus papatasi\n"
]
for line in lines:
print(line, end='')FINDHOM v 1.2:
Search results:
Query Match fraction Score Subject
SMPL001 0.7 12331 AQ10213 Phlebotomus perniciosus
SMPL003 0.5 6032 BZ102363 Phlebotomus papatasi
SMPL004 0.8 13123 RD178237 Sergentomyia dubia
SMPL007 0.6 10610 BQ187981 Phlebotomus papatasi
lines = [
"FINDHOM v 1.2:\n",
"Search results:\n",
"Query\tMatch fraction\tScore\tSubject\n",
"SMPL001\t0.7\t12331\tAQ10213 Phlebotomus perniciosus\n",
"SMPL003\t0.5\t6032\tBZ102363 Phlebotomus papatasi\n",
"SMPL004\t0.8\t13123\tRD178237 Sergentomyia dubia\n",
"SMPL007\t0.6\t10610\tBQ187981 Phlebotomus papatasi\n"
]
# Search term
search_term = "Sergentomyia"
# Scan sequence until we hit the start codon
for i, line in enumerate(lines):
if search_term in line:
print(search_term, 'found on line', i+1)
break
else:
print(search_term, 'not found in output.')Sergentomyia found on line 6
lines = [
"FINDHOM v 1.2:\n",
"Search results:\n",
"Query\tMatch fraction\tScore\tSubject\n",
"SMPL001\t0.7\t12331\tAQ10213 Phlebotomus perniciosus\n",
"SMPL003\t0.5\t6032\tBZ102363 Phlebotomus papatasi\n",
"SMPL004\t0.8\t13123\tRD178237 Sergentomyia dubia\n",
"SMPL007\t0.6\t10610\tBQ187981 Phlebotomus papatasi\n"
]
# Search term
search_term = "Sergentomydia"
# Scan sequence until we hit the start codon
for i, line in enumerate(lines):
if search_term in line:
print(search_term, 'found on line', i+1)
break
print(search_term, 'not found in output.')Sergentomydia not found in output.
lines = [
"FINDHOM v 1.2:\n",
"Search results:\n",
"Query\tMatch fraction\tScore\tSubject\n",
"SMPL001\t0.7\t12331\tAQ10213 Phlebotomus perniciosus\n",
"SMPL003\t0.5\t6032\tBZ102363 Phlebotomus papatasi\n",
"SMPL004\t0.8\t13123\tRD178237 Sergentomyia dubia\n",
"SMPL007\t0.6\t10610\tBQ187981 Phlebotomus papatasi\n"
]
# Search term
search_term = "Sergentomyia"
# Scan sequence until we hit the start codon
for i, line in enumerate(lines):
if search_term in line:
print(search_term, 'found on line', i+1)
break
print(search_term, 'not found in output.')Sergentomyia found on line 6
Sergentomyia not found in output.