Test Primer3 Py
5 minute read
Project 2:
Primer Design Tool: Develop a tool (using Python and Primer3-py) that takes a DNA sequence as input, allows the user to specify target regions, and designs PCR primers.
Install
try:
from primer3 import bindings # type: ignore
except ImportError:
%pip install primer3-py
from primer3 import bindings # type: ignore
follow tutorial: primer design workflow
https://libnano.github.io/primer3-py/quickstart.html#workflow
r = bindings.design_primers(
seq_args={
'SEQUENCE_ID': 'MH1000',
'SEQUENCE_TEMPLATE': 'GCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCCCTACATTTT'
'AGCATCAGTGAGTACAGCATGCTTACTGGAAGAGAGGGTCATGCA'
'ACAGATTAGGAGGTAAGTTTGCAAAGGCAGGCTAAGGAGGAGACG'
'CACTGAATGCCATGGTAAGAACTCTGGACATAAAAATATTGGAAG'
'TTGTTGAGCAAGTNAAAAAAATGTTTGGAAGTGTTACTTTAGCAA'
'TGGCAAGAATGATAGTATGGAATAGATTGGCAGAATGAAGGCAAA'
'ATGATTAGACATATTGCATTAAGGTAAAAAATGATAACTGAAGAA'
'TTATGTGCCACACTTATTAATAAGAAAGAATATGTGAACCTTGCA'
'GATGTTTCCCTCTAGTAG',
'SEQUENCE_INCLUDED_REGION': [36,342]
},
global_args={
'PRIMER_OPT_SIZE': 20,
'PRIMER_PICK_INTERNAL_OLIGO': 1,
'PRIMER_INTERNAL_MAX_SELF_END': 8,
'PRIMER_MIN_SIZE': 18,
'PRIMER_MAX_SIZE': 25,
'PRIMER_OPT_TM': 60.0,
'PRIMER_MIN_TM': 57.0,
'PRIMER_MAX_TM': 63.0,
'PRIMER_MIN_GC': 20.0,
'PRIMER_MAX_GC': 80.0,
'PRIMER_MAX_POLY_X': 100,
'PRIMER_INTERNAL_MAX_POLY_X': 100,
'PRIMER_SALT_MONOVALENT': 50.0,
'PRIMER_DNA_CONC': 50.0,
'PRIMER_MAX_NS_ACCEPTED': 0,
'PRIMER_MAX_SELF_ANY': 12,
'PRIMER_MAX_SELF_END': 8,
'PRIMER_PAIR_MAX_COMPL_ANY': 12,
'PRIMER_PAIR_MAX_COMPL_END': 8,
'PRIMER_PRODUCT_SIZE_RANGE': [
[75,100],[100,125],[125,150],
[150,175],[175,200],[200,225]
],
})
type(r)
dict
import json
result = json.dumps(r, indent=2)
print(result)
Output collapsed:
{
"PRIMER_LEFT_EXPLAIN": "considered 1997, too many Ns 25, GC content failed 32, low tm 1272, high tm 124, ok 544",
"PRIMER_RIGHT_EXPLAIN": "considered 1997, too many Ns 25, GC content failed 80, low tm 1366, high tm 108, high hairpin stability 10, ok 408",
"PRIMER_INTERNAL_EXPLAIN": "considered 3007, too many Ns 27, GC content failed 92, low tm 2608, high tm 11, high hairpin stability 18, ok 251",
"PRIMER_PAIR_EXPLAIN": "considered 823, unacceptable product size 808, no internal oligo 9, ok 6",
"PRIMER_LEFT_NUM_RETURNED": 5,
"PRIMER_RIGHT_NUM_RETURNED": 5,
"PRIMER_INTERNAL_NUM_RETURNED": 5,
"PRIMER_PAIR_NUM_RETURNED": 5,
"PRIMER_PAIR": [
{
"PENALTY": 1.373239688566116,
"COMPL_ANY_TH": 0.0,
"COMPL_END_TH": 0.0,
"PRODUCT_SIZE": 87,
"PRODUCT_TM": 81.3560105336193
},
{
"PENALTY": 1.5090296435631672,
"COMPL_ANY_TH": 0.0,
"COMPL_END_TH": 2.43414726309436,
"PRODUCT_SIZE": 94,
"PRODUCT_TM": 82.57648008607713
},
{
"PENALTY": 1.8643178301738885,
"COMPL_ANY_TH": 0.0,
"COMPL_END_TH": 0.0,
"PRODUCT_SIZE": 98,
"PRODUCT_TM": 82.41864248295076
},
{
"PENALTY": 1.9504613679555973,
"COMPL_ANY_TH": 0.0,
"COMPL_END_TH": 0.0,
"PRODUCT_SIZE": 85,
"PRODUCT_TM": 81.1771058683049
},
{
"PENALTY": 2.019318015989654,
"COMPL_ANY_TH": 0.0,
"COMPL_END_TH": 0.0,
"PRODUCT_SIZE": 88,
"PRODUCT_TM": 81.67536790039047
}
],
"PRIMER_LEFT": [
{
"PENALTY": 1.3299057711502655,
"SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"COORDS": [
46,
21
],
"TM": 59.670094228849734,
"GC_PERCENT": 52.38095238095238,
"SELF_ANY_TH": 10.513588697583486,
"SELF_END_TH": 10.513588697583486,
"HAIRPIN_TH": 42.52778282883122,
"END_STABILITY": 4.06
},
{
"PENALTY": 1.3299057711502655,
"SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"COORDS": [
46,
21
],
"TM": 59.670094228849734,
"GC_PERCENT": 52.38095238095238,
"SELF_ANY_TH": 10.513588697583486,
"SELF_END_TH": 10.513588697583486,
"HAIRPIN_TH": 42.52778282883122,
"END_STABILITY": 4.06
},
{
"PENALTY": 1.3299057711502655,
"SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"COORDS": [
46,
21
],
"TM": 59.670094228849734,
"GC_PERCENT": 52.38095238095238,
"SELF_ANY_TH": 10.513588697583486,
"SELF_END_TH": 10.513588697583486,
"HAIRPIN_TH": 42.52778282883122,
"END_STABILITY": 4.06
},
{
"PENALTY": 1.3299057711502655,
"SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"COORDS": [
46,
21
],
"TM": 59.670094228849734,
"GC_PERCENT": 52.38095238095238,
"SELF_ANY_TH": 10.513588697583486,
"SELF_END_TH": 10.513588697583486,
"HAIRPIN_TH": 42.52778282883122,
"END_STABILITY": 4.06
},
{
"PENALTY": 1.3299057711502655,
"SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"COORDS": [
46,
21
],
"TM": 59.670094228849734,
"GC_PERCENT": 52.38095238095238,
"SELF_ANY_TH": 10.513588697583486,
"SELF_END_TH": 10.513588697583486,
"HAIRPIN_TH": 42.52778282883122,
"END_STABILITY": 4.06
}
],
"PRIMER_RIGHT": [
{
"PENALTY": 0.043333917415850465,
"SEQUENCE": "TCTCCTCCTTAGCCTGCCTT",
"COORDS": [
132,
20
],
"TM": 59.95666608258415,
"GC_PERCENT": 55.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 0.0,
"END_STABILITY": 4.35
},
{
"PENALTY": 0.17912387241290162,
"SEQUENCE": "CAGTGCGTCTCCTCCTTAGC",
"COORDS": [
139,
20
],
"TM": 60.1791238724129,
"GC_PERCENT": 60.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 0.0,
"END_STABILITY": 3.09
},
{
"PENALTY": 0.534412059023623,
"SEQUENCE": "CATTCAGTGCGTCTCCTCCT",
"COORDS": [
143,
20
],
"TM": 59.46558794097638,
"GC_PERCENT": 55.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 0.0,
"END_STABILITY": 3.69
},
{
"PENALTY": 0.6205555968053318,
"SEQUENCE": "TCCTCCTTAGCCTGCCTTTG",
"COORDS": [
130,
20
],
"TM": 59.37944440319467,
"GC_PERCENT": 55.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 0.0,
"END_STABILITY": 2.77
},
{
"PENALTY": 0.6894122448393887,
"SEQUENCE": "GTCTCCTCCTTAGCCTGCCT",
"COORDS": [
133,
20
],
"TM": 60.68941224483939,
"GC_PERCENT": 60.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 0.0,
"END_STABILITY": 4.75
}
],
"PRIMER_INTERNAL": [
{
"PENALTY": 6.224608874676505,
"SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"COORDS": [
69,
24
],
"TM": 57.775391125323495,
"GC_PERCENT": 50.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 34.31335532251251
},
{
"PENALTY": 6.224608874676505,
"SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"COORDS": [
69,
24
],
"TM": 57.775391125323495,
"GC_PERCENT": 50.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 34.31335532251251
},
{
"PENALTY": 6.224608874676505,
"SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"COORDS": [
69,
24
],
"TM": 57.775391125323495,
"GC_PERCENT": 50.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 34.31335532251251
},
{
"PENALTY": 6.224608874676505,
"SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"COORDS": [
69,
24
],
"TM": 57.775391125323495,
"GC_PERCENT": 50.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 34.31335532251251
},
{
"PENALTY": 6.224608874676505,
"SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"COORDS": [
69,
24
],
"TM": 57.775391125323495,
"GC_PERCENT": 50.0,
"SELF_ANY_TH": 0.0,
"SELF_END_TH": 0.0,
"HAIRPIN_TH": 34.31335532251251
}
],
"PRIMER_PAIR_0_PENALTY": 1.373239688566116,
"PRIMER_LEFT_0_PENALTY": 1.3299057711502655,
"PRIMER_RIGHT_0_PENALTY": 0.043333917415850465,
"PRIMER_INTERNAL_0_PENALTY": 6.224608874676505,
"PRIMER_LEFT_0_SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"PRIMER_RIGHT_0_SEQUENCE": "TCTCCTCCTTAGCCTGCCTT",
"PRIMER_INTERNAL_0_SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"PRIMER_LEFT_0": [
46,
21
],
"PRIMER_RIGHT_0": [
132,
20
],
"PRIMER_INTERNAL_0": [
69,
24
],
"PRIMER_LEFT_0_TM": 59.670094228849734,
"PRIMER_RIGHT_0_TM": 59.95666608258415,
"PRIMER_INTERNAL_0_TM": 57.775391125323495,
"PRIMER_LEFT_0_GC_PERCENT": 52.38095238095238,
"PRIMER_RIGHT_0_GC_PERCENT": 55.0,
"PRIMER_INTERNAL_0_GC_PERCENT": 50.0,
"PRIMER_LEFT_0_SELF_ANY_TH": 10.513588697583486,
"PRIMER_RIGHT_0_SELF_ANY_TH": 0.0,
"PRIMER_INTERNAL_0_SELF_ANY_TH": 0.0,
"PRIMER_LEFT_0_SELF_END_TH": 10.513588697583486,
"PRIMER_RIGHT_0_SELF_END_TH": 0.0,
"PRIMER_INTERNAL_0_SELF_END_TH": 0.0,
"PRIMER_LEFT_0_HAIRPIN_TH": 42.52778282883122,
"PRIMER_RIGHT_0_HAIRPIN_TH": 0.0,
"PRIMER_INTERNAL_0_HAIRPIN_TH": 34.31335532251251,
"PRIMER_LEFT_0_END_STABILITY": 4.06,
"PRIMER_RIGHT_0_END_STABILITY": 4.35,
"PRIMER_PAIR_0_COMPL_ANY_TH": 0.0,
"PRIMER_PAIR_0_COMPL_END_TH": 0.0,
"PRIMER_PAIR_0_PRODUCT_SIZE": 87,
"PRIMER_PAIR_0_PRODUCT_TM": 81.3560105336193,
"PRIMER_PAIR_1_PENALTY": 1.5090296435631672,
"PRIMER_LEFT_1_PENALTY": 1.3299057711502655,
"PRIMER_RIGHT_1_PENALTY": 0.17912387241290162,
"PRIMER_INTERNAL_1_PENALTY": 6.224608874676505,
"PRIMER_LEFT_1_SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"PRIMER_RIGHT_1_SEQUENCE": "CAGTGCGTCTCCTCCTTAGC",
"PRIMER_INTERNAL_1_SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"PRIMER_LEFT_1": [
46,
21
],
"PRIMER_RIGHT_1": [
139,
20
],
"PRIMER_INTERNAL_1": [
69,
24
],
"PRIMER_LEFT_1_TM": 59.670094228849734,
"PRIMER_RIGHT_1_TM": 60.1791238724129,
"PRIMER_INTERNAL_1_TM": 57.775391125323495,
"PRIMER_LEFT_1_GC_PERCENT": 52.38095238095238,
"PRIMER_RIGHT_1_GC_PERCENT": 60.0,
"PRIMER_INTERNAL_1_GC_PERCENT": 50.0,
"PRIMER_LEFT_1_SELF_ANY_TH": 10.513588697583486,
"PRIMER_RIGHT_1_SELF_ANY_TH": 0.0,
"PRIMER_INTERNAL_1_SELF_ANY_TH": 0.0,
"PRIMER_LEFT_1_SELF_END_TH": 10.513588697583486,
"PRIMER_RIGHT_1_SELF_END_TH": 0.0,
"PRIMER_INTERNAL_1_SELF_END_TH": 0.0,
"PRIMER_LEFT_1_HAIRPIN_TH": 42.52778282883122,
"PRIMER_RIGHT_1_HAIRPIN_TH": 0.0,
"PRIMER_INTERNAL_1_HAIRPIN_TH": 34.31335532251251,
"PRIMER_LEFT_1_END_STABILITY": 4.06,
"PRIMER_RIGHT_1_END_STABILITY": 3.09,
"PRIMER_PAIR_1_COMPL_ANY_TH": 0.0,
"PRIMER_PAIR_1_COMPL_END_TH": 2.43414726309436,
"PRIMER_PAIR_1_PRODUCT_SIZE": 94,
"PRIMER_PAIR_1_PRODUCT_TM": 82.57648008607713,
"PRIMER_PAIR_2_PENALTY": 1.8643178301738885,
"PRIMER_LEFT_2_PENALTY": 1.3299057711502655,
"PRIMER_RIGHT_2_PENALTY": 0.534412059023623,
"PRIMER_INTERNAL_2_PENALTY": 6.224608874676505,
"PRIMER_LEFT_2_SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"PRIMER_RIGHT_2_SEQUENCE": "CATTCAGTGCGTCTCCTCCT",
"PRIMER_INTERNAL_2_SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"PRIMER_LEFT_2": [
46,
21
],
"PRIMER_RIGHT_2": [
143,
20
],
"PRIMER_INTERNAL_2": [
69,
24
],
"PRIMER_LEFT_2_TM": 59.670094228849734,
"PRIMER_RIGHT_2_TM": 59.46558794097638,
"PRIMER_INTERNAL_2_TM": 57.775391125323495,
"PRIMER_LEFT_2_GC_PERCENT": 52.38095238095238,
"PRIMER_RIGHT_2_GC_PERCENT": 55.0,
"PRIMER_INTERNAL_2_GC_PERCENT": 50.0,
"PRIMER_LEFT_2_SELF_ANY_TH": 10.513588697583486,
"PRIMER_RIGHT_2_SELF_ANY_TH": 0.0,
"PRIMER_INTERNAL_2_SELF_ANY_TH": 0.0,
"PRIMER_LEFT_2_SELF_END_TH": 10.513588697583486,
"PRIMER_RIGHT_2_SELF_END_TH": 0.0,
"PRIMER_INTERNAL_2_SELF_END_TH": 0.0,
"PRIMER_LEFT_2_HAIRPIN_TH": 42.52778282883122,
"PRIMER_RIGHT_2_HAIRPIN_TH": 0.0,
"PRIMER_INTERNAL_2_HAIRPIN_TH": 34.31335532251251,
"PRIMER_LEFT_2_END_STABILITY": 4.06,
"PRIMER_RIGHT_2_END_STABILITY": 3.69,
"PRIMER_PAIR_2_COMPL_ANY_TH": 0.0,
"PRIMER_PAIR_2_COMPL_END_TH": 0.0,
"PRIMER_PAIR_2_PRODUCT_SIZE": 98,
"PRIMER_PAIR_2_PRODUCT_TM": 82.41864248295076,
"PRIMER_PAIR_3_PENALTY": 1.9504613679555973,
"PRIMER_LEFT_3_PENALTY": 1.3299057711502655,
"PRIMER_RIGHT_3_PENALTY": 0.6205555968053318,
"PRIMER_INTERNAL_3_PENALTY": 6.224608874676505,
"PRIMER_LEFT_3_SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"PRIMER_RIGHT_3_SEQUENCE": "TCCTCCTTAGCCTGCCTTTG",
"PRIMER_INTERNAL_3_SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"PRIMER_LEFT_3": [
46,
21
],
"PRIMER_RIGHT_3": [
130,
20
],
"PRIMER_INTERNAL_3": [
69,
24
],
"PRIMER_LEFT_3_TM": 59.670094228849734,
"PRIMER_RIGHT_3_TM": 59.37944440319467,
"PRIMER_INTERNAL_3_TM": 57.775391125323495,
"PRIMER_LEFT_3_GC_PERCENT": 52.38095238095238,
"PRIMER_RIGHT_3_GC_PERCENT": 55.0,
"PRIMER_INTERNAL_3_GC_PERCENT": 50.0,
"PRIMER_LEFT_3_SELF_ANY_TH": 10.513588697583486,
"PRIMER_RIGHT_3_SELF_ANY_TH": 0.0,
"PRIMER_INTERNAL_3_SELF_ANY_TH": 0.0,
"PRIMER_LEFT_3_SELF_END_TH": 10.513588697583486,
"PRIMER_RIGHT_3_SELF_END_TH": 0.0,
"PRIMER_INTERNAL_3_SELF_END_TH": 0.0,
"PRIMER_LEFT_3_HAIRPIN_TH": 42.52778282883122,
"PRIMER_RIGHT_3_HAIRPIN_TH": 0.0,
"PRIMER_INTERNAL_3_HAIRPIN_TH": 34.31335532251251,
"PRIMER_LEFT_3_END_STABILITY": 4.06,
"PRIMER_RIGHT_3_END_STABILITY": 2.77,
"PRIMER_PAIR_3_COMPL_ANY_TH": 0.0,
"PRIMER_PAIR_3_COMPL_END_TH": 0.0,
"PRIMER_PAIR_3_PRODUCT_SIZE": 85,
"PRIMER_PAIR_3_PRODUCT_TM": 81.1771058683049,
"PRIMER_PAIR_4_PENALTY": 2.019318015989654,
"PRIMER_LEFT_4_PENALTY": 1.3299057711502655,
"PRIMER_RIGHT_4_PENALTY": 0.6894122448393887,
"PRIMER_INTERNAL_4_PENALTY": 6.224608874676505,
"PRIMER_LEFT_4_SEQUENCE": "GCATCAGTGAGTACAGCATGC",
"PRIMER_RIGHT_4_SEQUENCE": "GTCTCCTCCTTAGCCTGCCT",
"PRIMER_INTERNAL_4_SEQUENCE": "ACTGGAAGAGAGGGTCATGCAACA",
"PRIMER_LEFT_4": [
46,
21
],
"PRIMER_RIGHT_4": [
133,
20
],
"PRIMER_INTERNAL_4": [
69,
24
],
"PRIMER_LEFT_4_TM": 59.670094228849734,
"PRIMER_RIGHT_4_TM": 60.68941224483939,
"PRIMER_INTERNAL_4_TM": 57.775391125323495,
"PRIMER_LEFT_4_GC_PERCENT": 52.38095238095238,
"PRIMER_RIGHT_4_GC_PERCENT": 60.0,
"PRIMER_INTERNAL_4_GC_PERCENT": 50.0,
"PRIMER_LEFT_4_SELF_ANY_TH": 10.513588697583486,
"PRIMER_RIGHT_4_SELF_ANY_TH": 0.0,
"PRIMER_INTERNAL_4_SELF_ANY_TH": 0.0,
"PRIMER_LEFT_4_SELF_END_TH": 10.513588697583486,
"PRIMER_RIGHT_4_SELF_END_TH": 0.0,
"PRIMER_INTERNAL_4_SELF_END_TH": 0.0,
"PRIMER_LEFT_4_HAIRPIN_TH": 42.52778282883122,
"PRIMER_RIGHT_4_HAIRPIN_TH": 0.0,
"PRIMER_INTERNAL_4_HAIRPIN_TH": 34.31335532251251,
"PRIMER_LEFT_4_END_STABILITY": 4.06,
"PRIMER_RIGHT_4_END_STABILITY": 4.75,
"PRIMER_PAIR_4_COMPL_ANY_TH": 0.0,
"PRIMER_PAIR_4_COMPL_END_TH": 0.0,
"PRIMER_PAIR_4_PRODUCT_SIZE": 88,
"PRIMER_PAIR_4_PRODUCT_TM": 81.67536790039047
}
seq = ('GCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCCCTACATTTT'
'AGCATCAGTGAGTACAGCATGCTTACTGGAAGAGAGGGTCATGCA'
'ACAGATTAGGAGGTAAGTTTGCAAAGGCAGGCTAAGGAGGAGACG'
'CACTGAATGCCATGGTAAGAACTCTGGACATAAAAATATTGGAAG'
'TTGTTGAGCAAGTNAAAAAAATGTTTGGAAGTGTTACTTTAGCAA'
'TGGCAAGAATGATAGTATGGAATAGATTGGCAGAATGAAGGCAAA'
'ATGATTAGACATATTGCATTAAGGTAAAAAATGATAACTGAAGAA'
'TTATGTGCCACACTTATTAATAAGAAAGAATATGTGAACCTTGCA'
'GATGTTTCCCTCTAGTAG')
seq
'GCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCCCTACATTTTAGCATCAGTGAGTACAGCATGCTTACTGGAAGAGAGGGTCATGCAACAGATTAGGAGGTAAGTTTGCAAAGGCAGGCTAAGGAGGAGACGCACTGAATGCCATGGTAAGAACTCTGGACATAAAAATATTGGAAGTTGTTGAGCAAGTNAAAAAAATGTTTGGAAGTGTTACTTTAGCAATGGCAAGAATGATAGTATGGAATAGATTGGCAGAATGAAGGCAAAATGATTAGACATATTGCATTAAGGTAAAAAATGATAACTGAAGAATTATGTGCCACACTTATTAATAAGAAAGAATATGTGAACCTTGCAGATGTTTCCCTCTAGTAG'
len(seq)
378