In [1]:
from pydna.parsers import parse
seqs = parse(
'''
>random sequence 1 consisting of 100 bases.
agaaacgaatctctgtccccaccaactgtctcaccgatgctgagaatggatgcagcgaat
ttcgagccctcgcccgtggtcgagggctgtaacccggaca
>random sequence 2 consisting of 100 bases.
taactacgttcgcgtgggtctaccaccgaggcagaacaagggtctacgactgaagcataa
atttcaagtaggggatgcccccttgtatcccgatgagatt
>random sequence 3 consisting of 100 bases.
gagtcccgactagtcgcacgttgactaagcggtccgaaatattaagaatacacccttgtg
ccgttcagtccgttctttatacggccgcggttgccgtaac
>random sequence 4 consisting of 100 bases.
ccttaagttgtggaccctactagcttggttccatatcgtacgctcatgatttgtgtctgg
atactctctggcctcgtgcagtgtatagcttatagcataa
>random sequence 5 consisting of 100 bases.
tcccgtttatacgttgttataccgcccggtgcagctagtcgcgggtgctagatgaatcgg
cgtagataaagaggccataattgatcccatcctctaggac
>random sequence 6 consisting of 100 bases.
tgcaatatcgttctgttggtccgttggatatgattgatcttaagctgcccgggagcaaat
cttaaacctattgcgaataactttggaggagtggtaggag
>random sequence 7 consisting of 100 bases.
ggatccatgtgtacatgctagtcggtacttcactatgcgtgttacctgacaaacgcacaa
gtatctctacgctgacgactcatgaactgacacggcaatt
>random sequence 8 consisting of 100 bases.
taagtttaagacgtagttggacagtacgagttggcgcctccggaagtggtgcttcgcatg
aaagtagacacacgctaaggaggaagcccctgatacatac
>random sequence 9 consisting of 100 bases.
cagttattagcggcctgagattcaacaagagcgacgccgcgcggtggtatataggattcc
gcgaactttcagcgttggttaaggtgcgacggaaggggat
>random sequence 10 consisting of 100 bases.
aagcacaatagctcctacatatttcttacccggatcgggcgttaaggaggcaggtcgtat
aggtttgcctgaagtgcgaagacaacctgctagacacact
''')
In [2]:
from pydna.design import primer_design
prods = [primer_design(s) for s in seqs]
s1,s2,s3,s4,s5,s6,s7,s8,s9,s10 = seqs
a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 = prods
assembled = "".join(str(s.seq) for s in seqs)
In [3]:
from pydna.design import assembly_fragments
frags1 = assembly_fragments(prods)
frags2 = assembly_fragments((a1,s2,a3,s4,a5,s6,a7,s8,a9,s10))
frags3 = assembly_fragments((s1,a2,s3,a4,s5,a6,s7,a8,s9,a10))
In [4]:
from pydna.assembly import Assembly
# Three different linear assemblies giving the same resulting sequence
asm1 = Assembly(frags1)
assert str(asm1.assemble_linear()[0].seq)==assembled
asm2 = Assembly(frags2)
assert str(asm2.assemble_linear()[0].seq)==assembled
asm3 = Assembly(frags3)
assert str(asm3.assemble_linear()[0].seq)==assembled
In [5]:
from pydna.amplicon import Amplicon
# how to get the primers:
# Get the fragments that are Amplicons
amplicons1 = [x for x in frags1 if isinstance(x, Amplicon)]
# Get forward and reverse primer for each Amplicon
primers1 = [(y.forward_primer, y.reverse_primer) for y in amplicons1]
# print primers for asm1
for pair in primers1:
print(pair[0].format("fasta"))
print(pair[1].format("fasta"))
print()