changeset 0:7f39014f9404 draft

Imported from capsule None
author bgruening
date Fri, 20 Mar 2015 06:23:17 -0400
parents
children d882a0a75759
files find_subsequences.py find_subsequences.xml test-data/find_subsequences_advanced_result1.bed test-data/find_subsequences_input1.fasta test-data/find_subsequences_simple_result1.bed test-data/find_subsequences_simple_result2.bed tool_dependencies.xml
diffstat 6 files changed, 374 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/find_subsequences.py	Fri Mar 20 06:23:17 2015 -0400
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+
+import re
+import sys
+import argparse
+from Bio import SeqIO
+from Bio.Seq import Seq
+from Bio.SeqUtils import nt_search
+from Bio.Alphabet import generic_dna
+
+choices = ['embl', 'fasta', 'fastq-sanger', 'fastq', 'fastq-solexa', 'fastq-illumina', 'genbank', 'gb']
+
+def find_pattern(seqs, pattern, outfile_path):
+    """
+    Finds all occurrences of a pattern in the a given sequence.
+    Outputs sequence ID, start and end postion of the pattern.
+    """
+    pattern = pattern.upper()
+    rev_compl = Seq(pattern, generic_dna).complement()
+    search_func = simple_pattern_search
+    if set(pattern).difference(set('ATCG')):
+        search_func = complex_pattern_search
+
+    with open(outfile_path, 'w+') as outfile:
+        for seq in seqs:
+            search_func(seq, pattern, outfile)
+            search_func(seq, rev_compl, outfile, '-')
+
+
+def simple_pattern_search(sequence, pattern, outfile, strand='+'):
+    """
+    Simple regular expression search. This is way faster than the complex search.
+    """
+    bed_template = '%s\t%s\t%s\t%s\t%s\t%s\n'
+    for match in re.finditer( str(pattern), str(sequence.seq) ):
+        outfile.write(bed_template % (sequence.id,  match.start(), match.end(), sequence.description, '', strand))
+
+
+def complex_pattern_search(sequence, pattern, outfile, strand='+'):
+    """
+    Searching for pattern with biopyhon's nt_search().
+    This allows for ambiguous values, like N = A or T or C or G, R = A or G ...
+    """
+    l = len(pattern)
+    matches = nt_search(str(sequence.seq), pattern)
+    bed_template = '%s\t%s\t%s\t%s\t%s\t%s\n'
+    for match in matches[1:]:
+        outfile.write(bed_template % (sequence.id, match, match+l, sequence.description, '', strand) )
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-i', '--input' , required=True)
+    parser.add_argument('-o', '--output' , required=True)
+    parser.add_argument('-p', '--pattern' , required=True)
+    parser.add_argument('-f', '--format', default="fasta", choices=choices)
+    args = parser.parse_args()
+
+    with open(args.input) as handle:
+        find_pattern( SeqIO.parse(handle, args.format), args.pattern, args.output )
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/find_subsequences.xml	Fri Mar 20 06:23:17 2015 -0400
@@ -0,0 +1,291 @@
+<tool id="bg_find_subsequences" name="Nucleotide subsequence search" version="0.1">
+    <description>providing regions in BED format</description>
+    <requirements>
+        <requirement type="package" version="1.65">biopython</requirement>
+    </requirements>
+    <command interpreter="python">
+    <![CDATA[
+        find_subsequences.py
+            --input $input
+            --output $output
+            --pattern "$pattern_conditional.pattern"
+            #if $input.ext == 'fasta':
+                --format 'fasta'
+            #else:
+                --format 'fastq'
+            #end if
+    ]]>
+    </command>
+    <inputs>
+        <param format="fasta,fastq" name="input" type="data" label="Nucleotide sequence to be searched"
+            help="This can be in FASTA or FASTQ format." />
+
+        <conditional name="pattern_conditional">
+            <param name="pattern_conditional_select" type="select" label="Search with a">
+                <option value="predefined">predefined pattern</option>
+                <option value="user">user defined pattern</option>
+            </param>
+            <when value="predefined">
+                <param name="pattern" type="select" label="Select one of the predefined pattern" help="">
+                    <option value='CCTCGAGG'>AbsI - CCTCGAGG</option>
+                    <option value='CGCG'>AccII - CGCG (FnuDII Bce31293I BceBI BceRI BepI Bpu95I Bsh1236I Bsp50I Bsp70I Bsp123I BspFNI BspJ76I BstFNI BstUI Bsu1192II Bsu1193I Bsu1532I Bsu6633I BsuEII BtkI Cpa1150I CpaAI Csp68KVI EsaBS9I FalII FauBII FspMI Hin1056I HpyF14I HpyF15I HpyF26I HpyF52II HpyF64IV MvaAI MvnI PflAI SceAI SelI ThaI TmaI TneDI Uba1321I Uba1404I Uba1405I Uba1446I)</option>
+                    <option value='GCTAGC'>AceII - GCTAGC (NheI AsuNHI BmtI BspOI LlaG2I PstNHI)</option>
+                    <option value='AACGTT'>AclI - AACGTT (Psp1406I UbaN9I)</option>
+                    <option value='YGGCCR'>AcoI - YGGCCR (CfrI Ava458I Bfi89I Cfr14I Cfr38I Cfr39I Cfr40I Cfr55I Cfr59I EaeI EciBI Eco90I Eco164I EcoHAI EcoHK31I EspHK16I EspHK24I KspHK15I Uba36I Uba1188I Uba1327I)</option>
+                    <option value='CACGTG'>AcvI - CACGTG (PmaCI BbrPI BcoAI Bsp87I Eco72I Pgl34I PmlI PshCI PshDI Psp38I PspBI PspCI VpaK3AI VpaK3BI)</option>
+                    <option value='CACNNNGTG'>AdeI - CACNNNGTG (DraIII BstIZ316I)</option>
+                    <option value='CGATCG'>Afa16RI - CGATCG (PvuI Afa22MI BmaI BmaAI BmaBI BmaCI BmaDI BpvUI BspCI BstZ8I Cas2I Cfr51I DrdIII EagBI EclJI ErhB9I Kpl79I MvrI NblI Ple19I PntI Psu161I Pvu84I RshI RspI SmaAIII SpaPII SplAIII Uba1129I Uba1139I Xgl3216I Xgl3217I Xgl3218I Xgl3219I Xgl3220I XmlI XmlAI XniI XorII XorKI)</option>
+                    <option value='CTTAAG'>AflII - CTTAAG (BfrI BsaFI BscLI BspTI Bst98I BstAFI BstPZ740I Cfr92I Esp4I MspCI TrsTII Uba1266I Uba1299I Uba1312I Uba1313I Uba1331I Uba1374I Uba1420I Uba1426I Uba1443I VfiI Vha464I)</option>
+                    <option value='ACRYGT'>AflIII - ACRYGT (Asp90I)</option>
+                    <option value='TTSAA'>AgsI - TTSAA</option>
+                    <option value='CCSGG'>AhaI - CCSGG (CauII AseII Asp1I AsuC2I BcnI BpuMI Bsp7I Bsp8I Bsp55I BspF105I BspJ67I EciDI Eco121I Eco179I Eco190I Eco1831I EcoHI HgiS21I HgiS22I Hin3I Kpn49kII Mgl14481I NciI Pae181I RshII SflHK10695I SflHK11086I SflHK11087I SflHK11572I SflHK115731I Ssp2I Tmu1I Uba41I Uba42I Uba1280I Uba1318I Uba1347I Uba1370I Uba1372I Uba1376I Uba1378I Uba1389I Uba1401I Uba1423I Uba1424I UbaN11I)</option>
+                    <option value='ACTAGT'>AhlI - ACTAGT (SpeI AclNI BcuI)</option>
+                    <option value='AGCT'>AluI - AGCT (AluBI BsaLI MarI Mho2111I MltI OtuI OtuNI OxaI Uba1433I Uba1441I)</option>
+                    <option value='CAGNNNCTG'>AlwNI - CAGNNNCTG (CaiI PstNI)</option>
+                    <option value='CYCGRG'>Ama87I - CYCGRG (AvaI AcrI AquI AspBI AspDI AvrI BcoI BmeT110I Bse15I BsiHKCI BsoBI BspLU4I BstBAII BstNSII Bst7QI BstSI BstZ4I Eco88I Eco27kI EspHK29I Gst1588I NliI Nli3877I NmuAI NspIII NspDI NspEI NspSAI OfoI PlaAI PunAI Uba1205II Uba1436I Uba1440I UbaN6II Umi5I)</option>
+                    <option value='GGCC'>AoxI - GGCC</option>
+                    <option value='GCANNNNNTGC'>ApaBI - GCANNNNNTGC (BstAPI)</option>
+                    <option value='GCWGC'>ApeKI - GCWGC (TseI AceI Bce14579I SuiI Taq52I TneI TseBI)</option>
+                    <option value='ATTAAT'>AseI - ATTAAT (VspI AsnI BpoAI CprJK722I PbuMZI PshBI Srl8DI Srl55DII Srl65DI Srr17I Sru4DI)</option>
+                    <option value='GATC'>Asi256I - GATC (MboI AspMDI AsuMBI Bce243I Bfi57I BfiSHI BfuCI Bme12I Bme2494I BsaPI BscFI BsmXII BspI Bsp9I Bsp18I Bsp49I Bsp51I Bsp52I Bsp54I Bsp57I Bsp58I Bsp59I Bsp60I Bsp61I Bsp64I Bsp65I Bsp66I Bsp67I Bsp72I Bsp74I Bsp76I Bsp91I Bsp105I Bsp122I Bsp135I Bsp136I Bsp138I Bsp143I Bsp147I Bsp2095I BspAI BspFI BspJI BspJ64I BspKMI BspKT6I BsrMI BsrPII BssGII BssMI Bst19II Bst1274I BstEIII BstENII BstKTI BstMBI BstXII BtcI Bth84I Bth211I Bth213I Bth221I Bth945I Bth1140I Bth1141I Bth1786I Bth1997I BthCanI BtkII Btu33I Btu34I Btu36I Btu37I Btu39I Btu41I CacI CcoP31I CcoP76I CcoP84I CcoP95II CcoP219I CcyI CdiCD6II ChaI Cin1467I CjeP338I CpaPI CpfI CpfAI Csp5I Cte1179I Cte1180I CtyI CviAI CviHI DpnII EsaLHCI FnuAII FnuCI FnuEI Gst1588II HacI HpyAIII HpyHPK5II Kzo9I LlaAI LlaDCHI LlaKR2I Lsp1109II Mel3JI Mel5JI Mel7JI Mel4OI Mel5OI Mel2TI Mel5TI MeuI MgoI MjaIII MkrAI MmeII Mmu5I MmuP2I MnoIII MosI Msp67II MspBI MthI Mth1047I MthAI NciAI NdeII NflI NflAII NflBI NlaII NlaDI NmeCI NphI NsiAI NspAI NsuI PbrTI Pei9403I PfaI Pph288I RalF40I Rlu1I SalAI SalHI Sau15I Sau6782I Sau3AI SauCI SauDI SauEI SauFI SauGI SauMI SinMI SmiMBI SsiAI SsiBI Ssu211I Ssu212I Ssu220I R1.Ssu2479I R2.Ssu2479I R1.Ssu4109I R2.Ssu4109I R1.Ssu4961I R2.Ssu4961I R1.Ssu8074I R2.Ssu8074I R1.Ssu11318I R2.Ssu11318I R1.SsuDAT1I R2.SsuDAT1I Sth368I TrsKTI TrsSI TrsTI TruII Tsp133I Uba4I Uba59I Uba1101I Uba1177I Uba1182I Uba1183I Uba1204I Uba1259I Uba1317I Uba1323I Uba1366I UbaN1I Vha44I)</option>
+                    <option value='GGTACC'>Asp718I - GGTACC (KpnI Acc65I AhaB8I BspJ106I Eco149I Esp19I KpnK14I MvsI MvsAI MvsBI MvsCI MvsDI MvsEI NmiI Sau10I SthI SthAI SthBI SthCI SthDI SthEI SthFI SthGI SthHI SthJI SthKI SthLI SthMI SthNI Uba76I Uba85I Uba86I Uba87I Uba1201I)</option>
+                    <option value='GGWCC'>Asp745I - GGWCC (AvaII AflI Asp697I AspBII AspDII BamNII BceSII BcuAI Bme18I Bme216I BmpI Bsp71I Bsp100I Bsp128I Bsp132I Bsp133I Bsp1260I BspF53I BspJ105I BsrAI Bst4QI BthAI BtiI CauI CliI ClmII Csp68KI DsaIV EagMI Eco47I ErpI FdiI FspMSI FssI GspAI HgiBI HgiCII HgiEI HgiHIII HgiJI Hsp2I Kzo49I Mae7806III MfoI MliI MspAI MspNI NliII Nli3877II NmuAII NspDII NspGI NspHII NspKI Pfl19I PolI Psp03I SfnI Sgh1835I SinI SinAI SinBI SinCI SinDI SinEI SinFI SinGI SinHI SinJI SmuEI SynI TruI Tru28I Tsp301I Uba48I Uba62I Uba1131I Uba1249I Uba1272I Uba1278I Uba1304I Uba1314I Uba1373I Uba1413I Uba1438I UbaN15I Uth554I VpaK11I VpaK65I VpaK7AI VpaK11AI VpaK13AI VpaK11BI VpaK11CI VpaK11DI)</option>
+                    <option value='GCTAGC'>AsuNHI - GCTAGC (NheI AceII BmtI BspOI LlaG2I PstNHI)</option>
+                    <option value='CCTAGG'>AvrBII - CCTAGG (AvrII AspA2I BlnI BspA2I XmaJI)</option>
+                    <option value='GRGCYC'>BanII - GRGCYC (HgiJII BpuI BscMI Bsp117I Bsp519I BstZ7I Bsu1854I BvuI Cfr48I Eco24I Eco25I Eco26I Eco35I Eco68I Eco113I Eco180I Eco211I Eco215I Eco216I Eco232I Eco249I Eco262I Eco75KI EcoT38I EcoT88I EcoT93I EcoT95I Ese4I FriOI KoxII OmiAI OmiBI PaeHI Ppu20I Psp31I SacNI Uba39I Uba57I Uba1124I Uba1142I Uba1159I Uba1206I Uba1263I Uba1264I Uba1307I Uba1329I Uba1330I Uba1357I Uba1363I Uba1409I Uba1421I)</option>
+                    <option value='GGCGCC'>BbeI - GGCGCC (NarI BbeAI R1.BbrUI BinSII DinI Eco78I EgeI EheI KasI McaAI MchI Mly113I MsaI NamI NdaI NunII PatAI PluTI PmnI SfoI SseAI SspDI)</option>
+                    <option value='ACGCGT'>Bbi24I - ACGCGT (MluI ApeI BstZ9I Uba6I)</option>
+                    <option value='GRCGYC'>BbiII - GRCGYC (AcyI AhaII AosII AstWI AsuIII BsaHI BssNI BstACI HgiI HgiDI HgiGI HgiHII Hin1I Hin8I Hsp92I Msp17I NlaSII PamII SspJII SspM1II SspM2II Uba1381I)</option>
+                    <option value='TGATCA'>BclI - TGATCA (AbaI AtuSI BceDI Bco102I BmeTI BsiQI BspXII Bst77I BstGI BstKI BstT7I BstZ10II CpeI CthI FbaI Ksp22I ParI PovI SseI SstIV Uba1282I Uba1283I Uba1431I Uba1447I Umi7I)</option>
+                    <option value='CCNNNNNNNGG'>BflI - CCNNNNNNNGG (BsiYI AfiI Bsc4I Bsc107I Bse23I BseLI BslI BsmYI Bst22I)</option>
+                    <option value='ATGCAT'>BfrBI - ATGCAT (AvaIII Asi372I BfrCI Csp68KIII EcoT22I Mph1103I NsiI PinBI Ppu10I PxyJKI SepI SmuCI SrlII SspD5II Uba1353I Uba1367I Uba1384I Zsp2I)</option>
+                    <option value='GCCNNNNNGGC'>BglI - GCCNNNNNGGC (Bpu86I BseB631I BsoJI CagI Psp1009I RspRSI Tsp219I Tsp8EI VanI)</option>
+                    <option value='GCNGC'>BlsI - GCNGC (BisI GluI Rfl17I)</option>
+                    <option value='RGCGCY'>Bme142I - RGCGCY (HaeII AccB2I BfoI BsmHI Bsp143II Bst16I Bst1473II BstH2I Btu34II HinHI LpnI NgoAI NgoBI NgoCI NgoGI NgoJI NgoMI NgoWI)</option>
+                    <option value='GACNNNNNGTC'>BmeRI - GACNNNNNGTC (Eam1105I AhdI AspEI BspOVI BstZ2I DriI EclHKI NruGI Uba1190I Uba1191I)</option>
+                    <option value='CCNGG'>BmrFI - CCNGG (ScrFI Bme1390I BsaCI BsoI Bsp53I Bsp73I Bsp548I BssKI BstMZ611I BstSCI DsaV Ecl18kI Eco43I Eco51II Eco80I Eco85I Eco93I Eco153I Eco200I Eco13kI Eco21kI Eco137kI HpyNI Kpn2kI LlaMI Msp67I MspR9I SdeAII SsoII StyD4I Uba17I Uba1391I)</option>
+                    <option value='GAGCTC'>BpuAmI - GAGCTC (SacI Ecl136II Ecl137I EcoICRI Eco53kI MxaI NasSI Pfl18I Psp124BI ScoI Sgr13350I Ssm4I Ssm5I SstI UcoMSI)</option>
+                    <option value='GATNNNNATC'>BsaBI - GATNNNNATC (Bco63I Bco631I Bse8I Bse631I BseJI Bsh1365I BsiBI BsrBRI MamI UbaN6I UbaN20I)</option>
+                    <option value='WCCGGW'>BsaWI - WCCGGW (BetI Bba179I Bca77I Bst1473I UbaN10I)</option>
+                    <option value='GKGCMC'>BseSI - GKGCMC (BaeGI Bme1580I BmgAI BstSLI)</option>
+                    <option value='ACCGGT'>BshTI - ACCGGT (AgeI AsiAI AsiGI CsiAI CspAI PinAI)</option>
+                    <option value='GWGCWC'>BsiHKAI - GWGCWC (HgiAI Alw21I AspHI Bbv12I Bfu1570I BsaGI Bsh45I Bsm6I BsmPI Hpy8III HpyF7II HpyF46II MspV281I Pph3215I)</option>
+                    <option value='GDGCHC'>Bsp1286I - GDGCHC (SduI AocII Bka1125I BmyI BsoCI BspLS2I BstZ15I HpyF36IV HpyF47I MhlI Mlu40I NspII TseAI Uba1362I)</option>
+                    <option value='GCTNAGC'>Bsp1720I - GCTNAGC (EspI BlpI Bpu1102I BpuGCI CelII Uba1221I Uba1222I Uba1284I Uba1320I)</option>
+                    <option value='GCNGC'>Bsp6I - GCNGC (Fnu4HI Bli1904II Bpu1811I BsoFI BssFI BssXI BthCI Cac824I CcoP215I CcoP216I FbrI Fsp4HI ItaI LlaDII SatI Uur960I Rfl17I BisI GluI)</option>
+                    <option value='ATCGAT'>BspJII - ATCGAT (ClaI AagI Apu16I Asp14I Asp37I Asp86I Asp123I Asp130I Asp707I BanIII BavCI BazI BbvAII Bci29I BciBI BcmI Bco79I BdiI BfrAI Bli41I Bli86I Bli576I Bli585I BliAI BliRI BpsII Bsa29I BscI BseCI Bsh108AI BshVI BsiXI Bsp2I Bsp4I Bsp84I Bsp106I Bsp125I Bsp126I Bsp127I Bsp145I BspDI BspOVII BspXI BspZEI BsrCI Bst28I BstLVI BstNZ169I Bsu15I BsuTUI Bth1202I Bth9415I BtuI Csp4I LcaI LplI PgaI Rme21I SonI SpmI Ssp27144I Uba22I Uba24I Uba30I Uba34I Uba43I Uba1096I Uba1100I Uba1133I Uba1137I Uba1138I Uba1144I Uba1145I Uba1161I Uba1168I Uba1195I Uba1196I Uba1197I Uba1198I Uba1199I Uba1200I Uba1233I Uba1238I Uba1246I Uba1257I Uba1275I Uba1286I Uba1295I Uba1315I Uba1342I Uba1366II Uba1379I Uba1380I Uba1394I Uba1412I Uba1416I Uba1427I Uba1430I Uba1451I Uba1453I UbaN18I UbaN22I ZhoI)</option>
+                    <option value='ACATGT'>BspLU11I - ACATGT (PciI PscI)</option>
+                    <option value='CCTNAGG'>BspR7I - CCTNAGG (SauI AocI AsuSAI AxyI Bli643I BliHKI Bse21I BseG73I Bst29I Bst30I BstZ6I Bsu36I CvnI EciCI Eco76I Eco81I Eco115I Eco118I Eco110kI Lmu60I MstII OxaNI PxyMZI SauHI SecIII SshAI Uba1184II Uba1294I Uba1332I Uba1333I)</option>
+                    <option value='GCSGC'>BspUI - GCSGC (TauI AspCNI CglI NgoFVII)</option>
+                    <option value='RCCGGY'>BsrFI - RCCGGY (Cfr10I Bco118I BscRI Bse118I Bse634I Bsp21I BssAI BstB7SI NmeDI TseDI)</option>
+                    <option value='CCNNGG'>BssECI - CCNNGG (SecI BsaJI BseDI BsoKI BstZ10I Hpy99IV HpyF10III HpyF61II HpyF67IV Uba1442I)</option>
+                    <option value='GCGCGC'>BssHII - GCGCGC (BsePI BscEI BsoPI BsrHI BssBI BstBZ153I CfrJ5I Eco143I Eco152I Esp7I Esp8I Kpn30I McaTI PauI PteI TtmII Uba69I)</option>
+                    <option value='GTATAC'>Bst1107I - GTATAC (SnaI BspM90I BssNAI BstBSI BstZ17I VchO25I XcaI)</option>
+                    <option value='GCANNNNNTGC'>BstAPI - GCANNNNNTGC (ApaBI)</option>
+                    <option value='TGTACA'>BstAUI - TGTACA (Bsp1407I AauI BsmGI BsmRI BsrGI Bst170I Ssp4800I SspBI)</option>
+                    <option value='YACGTR'>BstBAI - YACGTR (BsaAI MspYI Ppu6I Ppu11I Ppu21I PsuAI)</option>
+                    <option value='GCNNGC'>BstC8I - GCNNGC (Cac8I BniI)</option>
+                    <option value='AAGCTT'>BstFI - AAGCTT (HindIII Asp52I Asp3065I BbrI BbrAI BpeI BseHI BsmGII BspKT8I BspLAIII Bst170II BstZ1II Cfr32I ChuEI Csp231I Eco65I Eco98I Eco188I Eco231I EcoVIII Hin5III Hin173I Hin1076III HinJCII HinSAFI HinbIII HinfII HsuI LlaCI MkiI SpaPIV SsbI Uba83I Uba1164II Uba1219I Uba1435I UbaN17I)</option>
+                    <option value='GGATCC'>BstI - GGATCC (BamHI AacLI AaeI AcaII AccEBI AinII AliI Ali12257I Ali12258I ApaCI AsiI AspTII Atu1II BamFI BamKI BamNI Bca1259I Bce751I Bco10278I BnaI BsaDI Bsp30I Bsp46I Bsp90II Bsp98I Bsp130I Bsp131I Bsp144I Bsp4009I BspAAIII Bst1126I Bst2464I Bst2902I BstQI Bsu90I Bsu8565I Bsu8646I BsuB519I BsuB763I CelI DdsI GdoI GinI GoxI GseIII GstI MleI Mlu23I NasBI Nsp29132II NspSAIV OkrAI Pac1110I Pae177I PboCI Pfl8I Psp56I RhsI Rlu4I RspLKII SolI SpvI SurI Uba19I Uba31I Uba38I Uba51I Uba88I Uba1098I Uba1163I Uba1167I Uba1172I Uba1173I Uba1205I Uba1224I Uba1242I Uba1250I Uba1258I Uba1297I Uba1302I Uba1324I Uba1325I Uba1334I Uba1339I Uba1346I Uba1383I Uba1398I Uba1402I Uba1414I Uba4009I UbaN3I UbaN14I)</option>
+                    <option value='GATC'>BstKTI - GATC (MboI Asi256I AspMDI AsuMBI Bce243I Bfi57I BfiSHI BfuCI Bme12I Bme2494I BsaPI BscFI BsmXII BspI Bsp9I Bsp18I Bsp49I Bsp51I Bsp52I Bsp54I Bsp57I Bsp58I Bsp59I Bsp60I Bsp61I Bsp64I Bsp65I Bsp66I Bsp67I Bsp72I Bsp74I Bsp76I Bsp91I Bsp105I Bsp122I Bsp135I Bsp136I Bsp138I Bsp143I Bsp147I Bsp2095I BspAI BspFI BspJI BspJ64I BspKMI BspKT6I BsrMI BsrPII BssGII BssMI Bst19II Bst1274I BstEIII BstENII BstMBI BstXII BtcI Bth84I Bth211I Bth213I Bth221I Bth945I Bth1140I Bth1141I Bth1786I Bth1997I BthCanI BtkII Btu33I Btu34I Btu36I Btu37I Btu39I Btu41I CacI CcoP31I CcoP76I CcoP84I CcoP95II CcoP219I CcyI CdiCD6II ChaI Cin1467I CjeP338I CpaPI CpfI CpfAI Csp5I Cte1179I Cte1180I CtyI CviAI CviHI DpnII EsaLHCI FnuAII FnuCI FnuEI Gst1588II HacI HpyAIII HpyHPK5II Kzo9I LlaAI LlaDCHI LlaKR2I Lsp1109II Mel3JI Mel5JI Mel7JI Mel4OI Mel5OI Mel2TI Mel5TI MeuI MgoI MjaIII MkrAI MmeII Mmu5I MmuP2I MnoIII MosI Msp67II MspBI MthI Mth1047I MthAI NciAI NdeII NflI NflAII NflBI NlaII NlaDI NmeCI NphI NsiAI NspAI NsuI PbrTI Pei9403I PfaI Pph288I RalF40I Rlu1I SalAI SalHI Sau15I Sau6782I Sau3AI SauCI SauDI SauEI SauFI SauGI SauMI SinMI SmiMBI SsiAI SsiBI Ssu211I Ssu212I Ssu220I R1.Ssu2479I R2.Ssu2479I R1.Ssu4109I R2.Ssu4109I R1.Ssu4961I R2.Ssu4961I R1.Ssu8074I R2.Ssu8074I R1.Ssu11318I R2.Ssu11318I R1.SsuDAT1I R2.SsuDAT1I Sth368I TrsKTI TrsSI TrsTI TruII Tsp133I Uba4I Uba59I Uba1101I Uba1177I Uba1182I Uba1183I Uba1204I Uba1259I Uba1317I Uba1323I Uba1366I UbaN1I Vha44I)</option>
+                    <option value='CGRYCG'>BstMCI - CGRYCG (McrI BsaOI BscNI Bsh1285I BsiEI BstZ5I Uba1303I)</option>
+                    <option value='RCATGY'>BstNSI - RCATGY (NspI AvoI Lsp1270I NspHI PauAI PunAII XceI)</option>
+                    <option value='CCWGG'>BstOI - CCWGG (EcoRII Acc38I AcuII AeuI AglI AjnI AorI ApaORI ApyI Asp2HI AtuII Atu1I AtuBI BciBII BciT130I BinSI Bme2095I BptI BsaNI Bse16I Bse17I Bse24I BseBI BshGI BsiLI BsiUI BsiVI BsoGI Bsp44I Bsp56I Bsp103I Bsp317I BspH43I BspNI BspSI Bst1I Bst2I Bst38I Bst100I BstGII BstM6I BstNI Bst7QII Bst2UI BthDI BthEI CbrI Cdi27I Cfr5I Cfr11I Cfr20I Cfr22I Cfr24I Cfr25I Cfr27I Cfr28I Cfr29I Cfr30I Cfr31I Cfr35I Cfr58I CfrS37I CthII Dde51507I EagKI EcaII EclII Ecl66I Ecl136I Ecl137II EclS39I Ecl37kII Ecl54kI Ecl57kI Ecl1zII Eco38I Eco40I Eco41I Eco60I Eco61I Eco67I Eco70I Eco71I Eco128I Eco170I Eco193I Eco206I Eco207I Eco254I Eco256I Efa1KI Ese6II Esp2I Esp24I EspHK7I EspHK22I EspHK30I Fsp1604I HhdI Kox165I Kpn10I Kpn13I Kpn14I Kpn16I KspHK12I KspHK14I Lla497I Mlu2300I MphI MpsI MvaI Pca17AI Psp6I Psp39I PspGI Sau16I Scg2I SelPI SflHK1794I SflHK2374I SflHK2731I SflHK6873I SflHK7234I SflHK7462I SflHK8401I SflHK10790I Sfl2aI Sfl2bI Sgr20I SleI SniI SslI SspAI Sth117I Sth302I Sth455I TaqXI TspAI Uba11I Uba13I Uba20I Uba81I Uba82I Uba1114I Uba1118I Uba1120I Uba1121I Uba1125I Uba1171I Uba1181I Uba1185I Uba1189I Uba1193I Uba1218I Uba1243I Uba1410I Uba1428I UbaN11II UbaN16I ZanI)</option>
+                    <option value='GACNNNNGTC'>BstPAI - GACNNNNGTC (PshAI BoxI)</option>
+                    <option value='TACGTA'>BstSNI - TACGTA (SnaBI Bpu1831I EciAI Eco105I Eco158II SspJI SspM1I SspM2I Uba1240I)</option>
+                    <option value='CCANNNNNNTGG'>BstXI - CCANNNNNNTGG (BscJI BssGI BstHZ55I BstTI)</option>
+                    <option value='CTGCAG'>BsuBI - CTGCAG (PstI AinI AjoI Ali2882I AliAJI ApiI AplI Asp36I Asp708I Asp713I AspTI BbiI BbrUIII Bce170I BloHII BloHIII BmeBI BsaNII BsaQI BscDI Bsp17I Bsp43I Bsp63I Bsp78I Bsp81I Bsp93I Bsp107I Bsp108I Bsp268I BspBI BspMAI BspS122I Bth9411I CauIII CflI CfrA4I CfuII ClcI CstI EaePI Ecl77I Ecl133I Ecl593I Ecl37kI Ecl699kI Ecl1zI Ecl2zI Eco48I Eco49I Eco83I Eco161I Eco167I Eco260I Eco261I EcoGIII EhoI Esp5II Esp141I GseII HalII Kpn12I MauI MhaAI MizI MkrI MmaI Msp11I NasI NgbI NocI Pae8I Pae9I Pae14I Pae15I Pae22I Pae24I Pae25I Pae26I Pae39I Pae40I Pae41I PaeHII Pfl21I Pfl37I PmaI Pma44I PmyI Pph2059I Pph2066I PshEI Psp23I Psp28I Psp46I PspSI Sag16I Sag23I Sal13I SalPI ScoAI SflI SgiI SkaII SprLI SriI Srl1DI Srl2DI Srl5DI Srl32DI Ssp12I Sst12I TspGWII Uba46I Uba71I Uba72I Uba1112I Uba1115I Uba1116I Uba1119I Uba1123I Uba1149I Uba1184I Uba1186I Uba1211I Uba1212I Uba1213I Uba1215I Uba1216I Uba1225I Uba1232I Uba1256I Uba1262I Uba1287I Uba1294II Uba1296I Uba1328I Uba1337I Uba1399I Uba1411I Uba1417I UbaHKBI VchO87I VpaK4AI VpaK29AI VpaK4BI VpaKutGI XcpI XmaII XorI XorKII XphI XveI YenI YenAI YenBI YenCI YenDI YenEI)</option>
+                    <option value='GCNGC'>BthCI - GCNGC (Fnu4HI Bli1904II Bpu1811I BsoFI Bsp6I BssFI BssXI Cac824I CcoP215I CcoP216I FbrI Fsp4HI ItaI LlaDII SatI Uur960I)</option>
+                    <option value='CTRYAG'>BthP35I - CTRYAG (SfeI Bco163I BdiSI BfmI BpcI BstSFI HpyF2I LlaBI SfcI Srl56DI)</option>
+                    <option value='TCATGA'>CciI - TCATGA (BspHI PagI RcaI RhcI RspXI)</option>
+                    <option value='GATATC'>CeqI - GATATC (EcoRV Bsc217I BshLI BsoAI Bsp16I BstRI Eco17I Eco32I Eco178I HjaI HpyCI NanI NflAI NsiCI Pac1110II Pfl16I PxyARI Rma495II Rma496II Rma497II SepMI SmiMII Tsp273I Uba1400I UbaN4I UbaN21I)</option>
+                    <option value='RAATTY'>CfaI - RAATTY (ApoI AcsI FsiI XapI)</option>
+                    <option value='CCWWGG'>CfrBI - CCWWGG (StyI BsmSI BssT1I Bst224I Eco130I Eco208II EcoT14I EcoT104I ErhI ErhB9II SblAI SblBI SblCI Uba1311I)</option>
+                    <option value='CCCGGG'>CfrJ4I - CCCGGG (SmaI AhyI Cfr9I CphBI EaeAI EclRI KteAI Pac25I PaeBI PspAI PspALI TspMI Uba1220I Uba1393I XcyI XmaI XmaCI)</option>
+                    <option value='GATC'>ChaI - GATC (MboI Asi256I AspMDI AsuMBI Bce243I Bfi57I BfiSHI BfuCI Bme12I Bme2494I BsaPI BscFI BsmXII BspI Bsp9I Bsp18I Bsp49I Bsp51I Bsp52I Bsp54I Bsp57I Bsp58I Bsp59I Bsp60I Bsp61I Bsp64I Bsp65I Bsp66I Bsp67I Bsp72I Bsp74I Bsp76I Bsp91I Bsp105I Bsp122I Bsp135I Bsp136I Bsp138I Bsp143I Bsp147I Bsp2095I BspAI BspFI BspJI BspJ64I BspKMI BspKT6I BsrMI BsrPII BssGII BssMI Bst19II Bst1274I BstEIII BstENII BstKTI BstMBI BstXII BtcI Bth84I Bth211I Bth213I Bth221I Bth945I Bth1140I Bth1141I Bth1786I Bth1997I BthCanI BtkII Btu33I Btu34I Btu36I Btu37I Btu39I Btu41I CacI CcoP31I CcoP76I CcoP84I CcoP95II CcoP219I CcyI CdiCD6II Cin1467I CjeP338I CpaPI CpfI CpfAI Csp5I Cte1179I Cte1180I CtyI CviAI CviHI DpnII EsaLHCI FnuAII FnuCI FnuEI Gst1588II HacI HpyAIII HpyHPK5II Kzo9I LlaAI LlaDCHI LlaKR2I Lsp1109II Mel3JI Mel5JI Mel7JI Mel4OI Mel5OI Mel2TI Mel5TI MeuI MgoI MjaIII MkrAI MmeII Mmu5I MmuP2I MnoIII MosI Msp67II MspBI MthI Mth1047I MthAI NciAI NdeII NflI NflAII NflBI NlaII NlaDI NmeCI NphI NsiAI NspAI NsuI PbrTI Pei9403I PfaI Pph288I RalF40I Rlu1I SalAI SalHI Sau15I Sau6782I Sau3AI SauCI SauDI SauEI SauFI SauGI SauMI SinMI SmiMBI SsiAI SsiBI Ssu211I Ssu212I Ssu220I R1.Ssu2479I R2.Ssu2479I R1.Ssu4109I R2.Ssu4109I R1.Ssu4961I R2.Ssu4961I R1.Ssu8074I R2.Ssu8074I R1.Ssu11318I R2.Ssu11318I R1.SsuDAT1I R2.SsuDAT1I Sth368I TrsKTI TrsSI TrsTI TruII Tsp133I Uba4I Uba59I Uba1101I Uba1177I Uba1182I Uba1183I Uba1204I Uba1259I Uba1317I Uba1323I Uba1366I UbaN1I Vha44I)</option>
+                    <option value='CATG'>CviAII - CATG (NlaIII FaeI FatI FatII Hin1II Hin8II HpyCH4I Hsp92II)</option>
+                    <option value='GANTC'>CviBI - GANTC (HinfI CviCI CviDI CviEI CviFI CviGI FnuAI HhaII HpyIV HpyAIV Hpy87AI HpyF2II HpyF10II HpyF18I HpyF38I HpyF44I HpyF55II HpyF60I HpyF71III HpyF72III NcaI NovII NsiHI SscL1I)</option>
+                    <option value='RGCY'>CviJI - RGCY (CviKI-1 CviKI CviLI CviMI CviNI CviOI)</option>
+                    <option value='CTNAG'>DdeI - CTNAG (Bpa36II BscPI Bst295I BstDEI BstJZ301I HpyCH4II HpyF3I HpyF4II HpyF5I HpyF6III HpyF7I HpyF9II HpyF11I HpyF13II HpyF19I HpyF21I HpyF22II HpyF24II HpyF25I HpyF27I HpyF30II HpyF32I HpyF34I HpyF37I HpyF41II HpyF59I HpyF60II HpyF64V HpyF66II HpyF67I HpyF68II HpyF70I HpyF72II HpyHI HpyHPK5I)</option>
+                    <option value='GGCGCC'>DinI - GGCGCC (NarI BbeI BbeAI R1.BbrUI BinSII Eco78I EgeI EheI KasI McaAI MchI Mly113I MsaI NamI NdaI NunII PatAI PluTI PmnI SfoI SseAI SspDI)</option>
+                    <option value='AGTACT'>DpaI - AGTACT (ScaI Acc113I AflIV Asp763I AssI BmcAI Bpa34I BshHI BsoSI BstMI Eco255I LlaDI NmeSI PinI RflFII Uba1094I Uba1158I VchO49I ZrmI)</option>
+                    <option value='RGGNCCY'>DraII - RGGNCCY (EcoO109I Kaz48kI PssI Uba1326I VneAI)</option>
+                    <option value='GACNNNNNNGTC'>DrdI - GACNNNNNNGTC (AasI DseDI TrsSII)</option>
+                    <option value='CCRYGG'>DsaI - CCRYGG (BstDSI BtgI TspBI)</option>
+                    <option value='CCGCGG'>Eae46I - CCGCGG (SacII AosIII Asp32HI BacI Bac465I BloMGI BscTI Bsp12I Cfr37I Cfr41I Cfr42I Cfr43I Cfr45II CscI Cte1I DrdAI DrdBI DrdCI DrdEI DrdFI Dsp1I EccI Ecl1I Ecl28I Ecl37I Eco55I Eco92I Eco96I Eco99I Eco100I Eco104I Eco134I Eco135I Eco151I Eco158I Eco182I Eco196I Eco208I Eco29kI Ese3I Ese6I FscI GalI GceI GceGLI Kpn19I Kpn378I KspI Mpr154I MraI NgoAIII NgoDIII NgoGIII NgoJIII NgoKIII NgoMIII NgoPIII NlaDIII NlaSI Pae7I Pae17I Pae36I Pae42I Pae43I Pae44I PaeAI PaeQI Pae5kI Pae14kI Pfl1108II RaqI SaaI SabI SakI SboI SchZI SenPT14bI SenpCI SexBI SexCI SfrI Sfr303I Sfr382I SgrBI ShyI SpuI SseII SsmII Ssm5II Ssp1725I SstII StaI TglI TtoI Uba66I Uba77I Uba90I Uba1093I Uba1095I Uba1111I Uba1113I Uba1126I Uba1187I Uba1229I Uba1234I Uba1244I Uba1306I Uba1364I Uba1369I UbaHKAI)</option>
+                    <option value='GGTNACC'>Eci125I - GGTNACC (BstEII AcrII AspAI Bse59I Bse64I BseT9I BseT10I BsiKI Bsp1591I Bst31I BstDI BstPI BstT9I BstT10I Cfr7I Cfr19I EcaI Eco91I EcoO65I EcoO128I KoxI NspSAII PspEI SciAI Uba1291I)</option>
+                    <option value='AGCGCT'>Eco47III - AGCGCT (AfeI AitI Aor51HI FunI)</option>
+                    <option value='GCCGGC'>Eco56I - GCCGGC (NaeI Afa24RI AmeII AniMI ApeAI AprI BheI CcoI Esp5I MauAI MisI Mlu9273II MroNI NbaI NbrI NgoAIV NgoMIV NmuI NmuFI NspWI NtaSII PdiI PglI Psp61I RluI RrhJ1I SacAI SalCI SaoI SauAI SauBMKI SauHPI SauLPI SauNI SauSI SceIII SghWII SkaI Slu1777I Smo40529I SrlI Srl77DI SspCI Uba1122I KroI)</option>
+                    <option value='TCGA'>EsaBC3I - TCGA (TaqI CviSIII HpyV Hpy26II HpyF14III HpyF16I HpyF23I HpyF24I HpyF26III HpyF30I HpyF35I HpyF40II HpyF42IV HpyF45I HpyF49I HpyF52I HpyF59III HpyF62II HpyF64I HpyF65II HpyF66IV HpyF71I HpyF73II HpyJP26II PpaAII Taq20I Tbr51I TfiA3I TfiTok6A1I TflI Tsc4aI Tsp32I Tsp32II Tsp358I Tsp505I Tsp510I TspNI Tth24I TthHB8I TthRQI)</option>
+                    <option value='YATR'>FaiI - YATR</option>
+                    <option value='CATG'>FatI - CATG (NlaIII CviAII FaeI FatII Hin1II Hin8II HpyCH4I Hsp92II)</option>
+                    <option value='TGCGCA'>FdiII - TGCGCA (MstI AcaIII Acc16I AosI ApcTR183I AviII Bco6I BsaTI ClcII CliII FspI GspAII NsbI NspHIII NspLI NspMI PamI Pun14627I)</option>
+                    <option value='GGNCC'>FmuI - GGNCC (AsuI AhaB1I ApuI AspS9I AvcI Bac36I Bal228I BavAII BavBII Bce22I Bfi105I BmgT120I BpsI BsaSI Bse54I BshKI BsiZI Bsp1894I BspBII BspF4I Bsu54I Bsu5044I CcuI CdiAI CdiCD6I Cfr4I Cfr8I Cfr13I Cfr23I Cfr33I Cfr45I Cfr46I Cfr47I Cfr52I Cfr54I CfrNI Eco39I Eco47II Eco196II Eco201I GseI Hin5II HpyF66I HpyF71II HpyF73IV MaeK81II MhoI MjaII Msp24I MthBI NlaDII NmuEII NmuSI NspIV Nsp7121I NspLII Pde12I Pph1579I Pph1773I PseI PspI PspPI Sau2I Sau5I Sau13I Sau14I Sau17I Sau32I Sau33I Sau96I Sau557I SauBI SdyI SelAI TdeIII Uba1099I Uba1134I Uba1160I Uba1164I UnbI VchO66I VchO85I VchO90I VpaK15I VpaK25I VpaK9AI VpaK19AI VpaK19BI VpaKutAI VpaKutBI VpaKutJI)</option>
+                    <option value='GATC'>FnuCI - GATC (MboI Asi256I AspMDI AsuMBI Bce243I Bfi57I BfiSHI BfuCI Bme12I Bme2494I BsaPI BscFI BsmXII BspI Bsp9I Bsp18I Bsp49I Bsp51I Bsp52I Bsp54I Bsp57I Bsp58I Bsp59I Bsp60I Bsp61I Bsp64I Bsp65I Bsp66I Bsp67I Bsp72I Bsp74I Bsp76I Bsp91I Bsp105I Bsp122I Bsp135I Bsp136I Bsp138I Bsp143I Bsp147I Bsp2095I BspAI BspFI BspJI BspJ64I BspKMI BspKT6I BsrMI BsrPII BssGII BssMI Bst19II Bst1274I BstEIII BstENII BstKTI BstMBI BstXII BtcI Bth84I Bth211I Bth213I Bth221I Bth945I Bth1140I Bth1141I Bth1786I Bth1997I BthCanI BtkII Btu33I Btu34I Btu36I Btu37I Btu39I Btu41I CacI CcoP31I CcoP76I CcoP84I CcoP95II CcoP219I CcyI CdiCD6II ChaI Cin1467I CjeP338I CpaPI CpfI CpfAI Csp5I Cte1179I Cte1180I CtyI CviAI CviHI DpnII EsaLHCI FnuAII FnuEI Gst1588II HacI HpyAIII HpyHPK5II Kzo9I LlaAI LlaDCHI LlaKR2I Lsp1109II Mel3JI Mel5JI Mel7JI Mel4OI Mel5OI Mel2TI Mel5TI MeuI MgoI MjaIII MkrAI MmeII Mmu5I MmuP2I MnoIII MosI Msp67II MspBI MthI Mth1047I MthAI NciAI NdeII NflI NflAII NflBI NlaII NlaDI NmeCI NphI NsiAI NspAI NsuI PbrTI Pei9403I PfaI Pph288I RalF40I Rlu1I SalAI SalHI Sau15I Sau6782I Sau3AI SauCI SauDI SauEI SauFI SauGI SauMI SinMI SmiMBI SsiAI SsiBI Ssu211I Ssu212I Ssu220I R1.Ssu2479I R2.Ssu2479I R1.Ssu4109I R2.Ssu4109I R1.Ssu4961I R2.Ssu4961I R1.Ssu8074I R2.Ssu8074I R1.Ssu11318I R2.Ssu11318I R1.SsuDAT1I R2.SsuDAT1I Sth368I TrsKTI TrsSI TrsTI TruII Tsp133I Uba4I Uba59I Uba1101I Uba1177I Uba1182I Uba1183I Uba1204I Uba1259I Uba1317I Uba1323I Uba1366I UbaN1I Vha44I)</option>
+                    <option value='GGCC'>FnuDI - GGCC (HaeIII AcaIV Afl83II Asp742I AspTIII AvrBI Bal475I Bal3006I BanAI Bce71I Bco33I BecAII Bfi458I BhaII Bim19II BliI BluII Bme46I Bme74I Bme361I BmeU1594I Bpa36I BsaRI BscQI BseI Bse9I Bse126I BseQI BshI BshAI BshBI BshCI BshDI BshEI BshFI BsiAI BsiDI BsiHI BsnI Bsp23I Bsp44II Bsp137I Bsp211I Bsp226I Bsp881I Bsp1261I Bsp1593I Bsp2013I Bsp2362I Bsp2500I BspANI BspBDG2I BspBRI BspBSE18I BspBake1I BspCHE15I BspGHA1I BspH106II BspKI BspLRI BspRI BssCI BstCI BstJI Bsu1076I Bsu1114I BsuRI BteI CbeI ClmI CltI Csp2I DsaII EsaBC4I EsaWC1I FinSI HhgI Hpy178VII HpyF10V HpyF26II HpyF29I HpyF33II HpyF42I HpyF46V HpyF49IV HpyF53I HpyF57I HpyF63I HpyF69II HpyF72I HpyF73III MchAII MfoAI MniI MnnII MthTI NgoAII NgoCII NgoNII NgoPII NgoSII NgoTII NlaI NspLKI OchI PaiI PalI Pde133I PflKI PhoI PlaI Ple214I PpuI Pru2I Psb9879I Psp29I SagI SbvI SfaI SplIII SuaI SulI Tsp132I Tsp266I Tsp273II Tsp281I Tsp560I TspZNI TteAI TtnI Tvu2HI Uba9I Uba54I Uba61I Uba1097I Uba1140I Uba1146I Uba1147I Uba1150I Uba1152I Uba1153I Uba1155I Uba1169I Uba1174I Uba1175I Uba1176I Uba1178I Uba1179I Uba1207I Uba1208I Uba1209I Uba1210I Uba1214I Uba1223I Uba1228I Uba1230I Uba1231I Uba1235I Uba1288I Uba1292I Uba1293I Uba1319I Uba1322I Uba1336I Uba1377I Uba1388I Uba1392I Uba1395I Uba1408I Uba1418I Uba1422I Uba1429I Uba1449I Uba1450I UbaN2I UbaN8I Uth549I Uth555I Uth557I Van91III VhaI Vha1168I VniI)</option>
+                    <option value='GCGC'>FnuDIII - GCGC (HhaI AspLEI BbtI BcaI BspLAI BstHHI CcoP95I CfoI Csp1470I Hin6I Hin7I HinGUI HinP1I HinS1I HinS2I Hpy99III HpyF10I HsoI HspAI Mho2965I MnnIV NgoEII SciNI)</option>
+                    <option value='GGCCGGCC'>FseI - GGCCGGCC (RigI)</option>
+                    <option value='RTGCGCAY'>FspAI - RTGCGCAY</option>
+                    <option value='GCGC'>GlaI - GCGC</option>
+                    <option value='WGGCCW'>HaeI - WGGCCW</option>
+                    <option value='RGCGCY'>HaeII - RGCGCY (AccB2I BfoI Bme142I BsmHI Bsp143II Bst16I Bst1473II BstH2I Btu34II HinHI LpnI NgoAI NgoBI NgoCI NgoGI NgoJI NgoMI NgoWI)</option>
+                    <option value='TGGCCANNNNNNNNNNN'>HauII - TGGCCANNNNNNNNNNN (BalI MlsI Mlu31I MluNI Mox20I MscI Msp16I Msp20I)</option>
+                    <option value='CATG'>Hin1II - CATG (NlaIII CviAII FaeI FatI FatII Hin8II HpyCH4I Hsp92II)</option>
+                    <option value='GCGC'>Hin6I - GCGC (HhaI AspLEI BbtI BcaI BspLAI BstHHI CcoP95I CfoI Csp1470I FnuDIII Hin7I HinGUI HinP1I HinS1I HinS2I Hpy99III HpyF10I HsoI HspAI Mho2965I MnnIV NgoEII SciNI)</option>
+                    <option value='GTYRAC'>HindII - GTYRAC (ChuEII Hin1160II Hin1161II HinJCI HincII MnnI)</option>
+                    <option value='GTTAAC'>HpaI - GTTAAC (BsaKI BseII BstEZ359I BstHPI KspAI MwhI SsrI Uba1408II)</option>
+                    <option value='TCNGA'>Hpy188I - TCNGA (Hpy166I HpyF11II HpyF12II HpyF15II HpyF17I HpyF19II HpyF27II HpyF28I HpyF33I HpyF42III HpyF46IV HpyF50II HpyF61I HpyF64III)</option>
+                    <option value='TCNNGA'>Hpy188III - TCNNGA (Hpy178III HpyCH4VI HpyF16II HpyF19III HpyF22III HpyF44IV HpyGI HpyNSH57II)</option>
+                    <option value='GTNNAC'>Hpy8I - GTNNAC (MjaIV Hpy166II HpyBII HpyF7III HpyF14II HpyF46III HpyF49III HpyF50I)</option>
+                    <option value='CGWCG'>Hpy99I - CGWCG (HpyF61III)</option>
+                    <option value='ACGT'>HpyCH4IV - ACGT (MaeII HpyF13III HpyF35II HpyF74II HpySE526I TaiI TscI Tsp49I TspIDSI TspWAM8AI TtmI)</option>
+                    <option value='TGCA'>HpyF44III - TGCA (CviRI Hpy26I HpyCH4V HpyF36III HpyF38II HpyF45II HpyF48III HpyF49V HpyF67II HpyGII HpyJP26I)</option>
+                    <option value='GGGWCCC'>KflI - GGGWCCC (SanDI Sse1825I)</option>
+                    <option value='GAATTC'>Kpn49kI - GAATTC (EcoRI Bci528I Eco82I Eco159I Eco228I Eco237I Eco252I FunII HalI Hal22I Ppu111I RsrI Srl32DII Srl55DI SsoI Uba58I Van91II VchN100I VchO2I)</option>
+                    <option value='CCSGG'>Kpn49kII - CCSGG (CauII AhaI AseII Asp1I AsuC2I BcnI BpuMI Bsp7I Bsp8I Bsp55I BspF105I BspJ67I EciDI Eco121I Eco179I Eco190I Eco1831I EcoHI HgiS21I HgiS22I Hin3I Mgl14481I NciI Pae181I RshII SflHK10695I SflHK11086I SflHK11087I SflHK11572I SflHK115731I Ssp2I Tmu1I Uba41I Uba42I Uba1280I Uba1318I Uba1347I Uba1370I Uba1372I Uba1376I Uba1378I Uba1389I Uba1401I Uba1423I Uba1424I UbaN11I)</option>
+                    <option value='GGTACC'>KpnI - GGTACC (Acc65I AhaB8I Asp718I BspJ106I Eco149I Esp19I KpnK14I MvsI MvsAI MvsBI MvsCI MvsDI MvsEI NmiI Sau10I SthI SthAI SthBI SthCI SthDI SthEI SthFI SthGI SthHI SthJI SthKI SthLI SthMI SthNI Uba76I Uba85I Uba86I Uba87I Uba1201I)</option>
+                    <option value='ACCWGGT'>MabI - ACCWGGT (SexAI CsiI)</option>
+                    <option value='GTNAC'>MaeIII - GTNAC</option>
+                    <option value='GATC'>MalI - GATC (DpnI CfuI FtnUIV Mph1103II NanII NgoDXIV NmeAII NmeBL859I NmuDI NmuEI NsuDI SbgI TdeI)</option>
+                    <option value='CGCGCGCG'>MauBI - CGCGCGCG</option>
+                    <option value='GCGCGC'>McaTI - GCGCGC (BsePI BscEI BsoPI BsrHI BssBI BssHII BstBZ153I CfrJ5I Eco143I Eco152I Esp7I Esp8I Kpn30I PauI PteI TtmII Uba69I)</option>
+                    <option value='GCGGCCGC'>MchAI - GCGGCCGC (NotI CciNI CsiBI CspBI)</option>
+                    <option value='CAATTG'>MfeI - CAATTG (MunI)</option>
+                    <option value='RGATCY'>MflI - RGATCY (XhoII AitII AitAI Asp17I Asp22I Asp1HI Asp6HI Asp8HI Asp14HI Asp21HI BloHI BpuGI BscSI BstX2I BstYI DsaIII MspNII PsuI Tru201I Uba1432I)</option>
+                    <option value='TGGCCA'>Mlu31I - TGGCCA (BalI HauII MlsI MluNI Mox20I MscI Msp16I Msp20I)</option>
+                    <option value='TCGCGA'>MluB2I - TCGCGA (NruI AmaSI Bsp68I BtuMI Mlu9273I PspDI RruI SalDI Sbo13I Sna3286I SpoI Uba1117I Uba1386I VchO70I)</option>
+                    <option value='AATT'>MluCI - AATT (TspEI Sse9I TasI TseCI Tsp509I)</option>
+                    <option value='GGCGCC'>Mly113I - GGCGCC (NarI BbeI BbeAI R1.BbrUI BinSII DinI Eco78I EgeI EheI KasI McaAI MchI MsaI NamI NdaI NunII PatAI PluTI PmnI SfoI SseAI SspDI)</option>
+                    <option value='CGCCGGCG'>MreI - CGCCGGCG (Sse232I)</option>
+                    <option value='TCCGGA'>MroI - TCCGGA (BspMII AccIII Aor13HI Bbf7411I BbvAIII Bla7920I BlfI BseAI BsiGI BsiMI BsiOI Bsp13I Bsp228I Bsp233I Bsp508I BspEI BspH226I BstZ1I BstZ3I Bsu22I Bsu23I CauB3I Cfr57I EspHK26I Kpn2I PinBII PtaI Tsp507I Tsp514I Uba1136I Uba1279I Uba1375I Uba1425I)</option>
+                    <option value='CMGCKG'>MspA1I - CMGCKG (NspBII)</option>
+                    <option value='GGYRCC'>MspB4I - GGYRCC (HgiCI AccB1I BanI BbvBI Bme05I BshNI BspT107I Eco50I Eco64I Eco168I Eco169I Eco171I Eco173I Eco195I Esp1I Esp6I Esp9I Esp10I Esp11I Esp12I Esp13I Esp14I Esp15I Esp21I Esp22I Esp25I HgiHI PfaAI Pph14I SspM1III Uba1127I Vsp2246I)</option>
+                    <option value='CCGG'>MspI - CCGG (HpaII Asp748I Bco27I BsaZI BshMI BsiSI Bsp5I Bsp47I Bsp48I Bsp116I Bsp1591II Bst40I Bsu1192I BsuFI CboI CceI FinII FpsJI HapII Hin2I Hin5I HpyVIII Hpy299IX HpyF43I MniII MnoI Msp199I NflHII Pde137I Pme35I SecII SfaGUI SmoLI Sth134I Sth302II Uba1128I Uba1141I Uba1267I Uba1338I Uba1355I Uba1439I UbaN13I)</option>
+                    <option value='GCNNNNNNNGC'>MwoI - GCNNNNNNNGC (Bce4I Bce1247I BceCI BspWI BstMWI HpyF10VI)</option>
+                    <option value='CCATGG'>NcoI - CCATGG (AteI Bse19I Bsp19I NspSAIII Pam7686I)</option>
+                    <option value='CYCGRG'>Nli3877I - CYCGRG (AvaI AcrI Ama87I AquI AspBI AspDI AvrI BcoI BmeT110I Bse15I BsiHKCI BsoBI BspLU4I BstBAII BstNSII Bst7QI BstSI BstZ4I Eco88I Eco27kI EspHK29I Gst1588I NliI NmuAI NspIII NspDI NspEI NspSAI OfoI PlaAI PunAI Uba1205II Uba1436I Uba1440I UbaN6II Umi5I)</option>
+                    <option value='GGNCC'>Nsp7121I - GGNCC (AsuI AhaB1I ApuI AspS9I AvcI Bac36I Bal228I BavAII BavBII Bce22I Bfi105I BmgT120I BpsI BsaSI Bse54I BshKI BsiZI Bsp1894I BspBII BspF4I Bsu54I Bsu5044I CcuI CdiAI CdiCD6I Cfr4I Cfr8I Cfr13I Cfr23I Cfr33I Cfr45I Cfr46I Cfr47I Cfr52I Cfr54I CfrNI Eco39I Eco47II Eco196II Eco201I FmuI GseI Hin5II HpyF66I HpyF71II HpyF73IV MaeK81II MhoI MjaII Msp24I MthBI NlaDII NmuEII NmuSI NspIV NspLII Pde12I Pph1579I Pph1773I PseI PspI PspPI Sau2I Sau5I Sau13I Sau14I Sau17I Sau32I Sau33I Sau96I Sau557I SauBI SdyI SelAI TdeIII Uba1099I Uba1134I Uba1160I Uba1164I UnbI VchO66I VchO85I VchO90I VpaK15I VpaK25I VpaK9AI VpaK19AI VpaK19BI VpaKutAI VpaKutBI VpaKutJI)</option>
+                    <option value='CACNNNNGTG'>OliI - CACNNNNGTG (AleI)</option>
+                    <option value='GTAC'>PabI - GTAC (RsaI AfaI Asp16HI Asp17HI Asp18HI Asp29HI CcoP73I Csp6I CviQI CviRII Hpy303I Hpy312I Hpy401I Hpy421I Hpy423I Hpy471I Hpy501I HpyBI HpyF10IV HpyF13IV HpyF21II HpyF31I HpyF36II HpyF44V HpyF52III HpyF53II HpyF59II HpyF65III HpyF66III HpyHII HpyNSH57I MjaV PlaAII RsaNI)</option>
+                    <option value='TTAATTAA'>PacI - TTAATTAA</option>
+                    <option value='AGATCT'>Pae2kI - AGATCT (BglII BseB631II NcrI NspMACI Pae18kI)</option>
+                    <option value='CCCWGGG'>PasI - CCCWGGG</option>
+                    <option value='WCGNNNNNNNCGW'>PcsI - WCGNNNNNNNCGW</option>
+                    <option value='GAANNNNTTC'>PdmI - GAANNNNTTC (XmnI Asp700I BbvAI MroXI Psc2I SynII)</option>
+                    <option value='CATATG'>PfaAII - CATATG (NdeI FauNDI TrsKTIII)</option>
+                    <option value='TCCNGGA'>PfoI - TCCNGGA</option>
+                    <option value='GTAC'>PlaAII - GTAC (RsaI AfaI Asp16HI Asp17HI Asp18HI Asp29HI CcoP73I Csp6I CviQI CviRII Hpy303I Hpy312I Hpy401I Hpy421I Hpy423I Hpy471I Hpy501I HpyBI HpyF10IV HpyF13IV HpyF21II HpyF31I HpyF36II HpyF44V HpyF52III HpyF53II HpyF59II HpyF65III HpyF66III HpyHII HpyNSH57I MjaV PabI RsaNI)</option>
+                    <option value='TTCGAA'>PlaII - TTCGAA (AsuII AcaI AcpI Afl83I Asp10HI AviI BimI Bim19I Bpu14I BpuHI BsiCI Bsp82I Bsp90I Bsp101I Bsp102I Bsp104I Bsp119I Bsp148I Bsp151I Bsp241I BspH22I BspH103I BspH106I BspLAII BspT104I BstBI CbiI Csp45I Csp68KII FspII LspI MlaI Mva16I NspV Nsp29132I NspBI NspFI NspJI OspI PpaAI Psc27I Psc28I Rma376I Rma523I SfuI Sgr1839I Ssp1I Ssp14I Ssp34I Ssp42I Ssp43I Ssp45I Ssp47I Ssp48I Ssp152I SspRFI SviI Uba1385I Uba1452I)</option>
+                    <option value='GTTTAAAC'>PmeI - GTTTAAAC (MssI)</option>
+                    <option value='GGGCCC'>PpeI - GGGCCC (ApaI Bsp120I EciEI Psp30I PspOMI Uba1156I Uba1157I Uba1165I Uba1202I Uba1241I Uba1368I)</option>
+                    <option value='ATGCAT'>Ppu10I - ATGCAT (AvaIII Asi372I BfrBI BfrCI Csp68KIII EcoT22I Mph1103I NsiI PinBI PxyJKI SepI SmuCI SrlII SspD5II Uba1353I Uba1367I Uba1384I Zsp2I)</option>
+                    <option value='TTATAA'>PsiI - TTATAA (AanI)</option>
+                    <option value='GGWCC'>Psp03I - GGWCC (AvaII AflI Asp697I Asp745I AspBII AspDII BamNII BceSII BcuAI Bme18I Bme216I BmpI Bsp71I Bsp100I Bsp128I Bsp132I Bsp133I Bsp1260I BspF53I BspJ105I BsrAI Bst4QI BthAI BtiI CauI CliI ClmII Csp68KI DsaIV EagMI Eco47I ErpI FdiI FspMSI FssI GspAI HgiBI HgiCII HgiEI HgiHIII HgiJI Hsp2I Kzo49I Mae7806III MfoI MliI MspAI MspNI NliII Nli3877II NmuAII NspDII NspGI NspHII NspKI Pfl19I PolI SfnI Sgh1835I SinI SinAI SinBI SinCI SinDI SinEI SinFI SinGI SinHI SinJI SmuEI SynI TruI Tru28I Tsp301I Uba48I Uba62I Uba1131I Uba1249I Uba1272I Uba1278I Uba1304I Uba1314I Uba1373I Uba1413I Uba1438I UbaN15I Uth554I VpaK11I VpaK65I VpaK7AI VpaK11AI VpaK13AI VpaK11BI VpaK11CI VpaK11DI)</option>
+                    <option value='RGGWCCY'>Psp5II - RGGWCCY (PpuMI AspBHII Mlu1106I Pfl27I PpuXI PspPPI)</option>
+                    <option value='CCWGG'>PspGI - CCWGG (EcoRII Acc38I AcuII AeuI AglI AjnI AorI ApaORI ApyI Asp2HI AtuII Atu1I AtuBI BciBII BciT130I BinSI Bme2095I BptI BsaNI Bse16I Bse17I Bse24I BseBI BshGI BsiLI BsiUI BsiVI BsoGI Bsp44I Bsp56I Bsp103I Bsp317I BspH43I BspNI BspSI Bst1I Bst2I Bst38I Bst100I BstGII BstM6I BstNI BstOI Bst7QII Bst2UI BthDI BthEI CbrI Cdi27I Cfr5I Cfr11I Cfr20I Cfr22I Cfr24I Cfr25I Cfr27I Cfr28I Cfr29I Cfr30I Cfr31I Cfr35I Cfr58I CfrS37I CthII Dde51507I EagKI EcaII EclII Ecl66I Ecl136I Ecl137II EclS39I Ecl37kII Ecl54kI Ecl57kI Ecl1zII Eco38I Eco40I Eco41I Eco60I Eco61I Eco67I Eco70I Eco71I Eco128I Eco170I Eco193I Eco206I Eco207I Eco254I Eco256I Efa1KI Ese6II Esp2I Esp24I EspHK7I EspHK22I EspHK30I Fsp1604I HhdI Kox165I Kpn10I Kpn13I Kpn14I Kpn16I KspHK12I KspHK14I Lla497I Mlu2300I MphI MpsI MvaI Pca17AI Psp6I Psp39I Sau16I Scg2I SelPI SflHK1794I SflHK2374I SflHK2731I SflHK6873I SflHK7234I SflHK7462I SflHK8401I SflHK10790I Sfl2aI Sfl2bI Sgr20I SleI SniI SslI SspAI Sth117I Sth302I Sth455I TaqXI TspAI Uba11I Uba13I Uba20I Uba81I Uba82I Uba1114I Uba1118I Uba1120I Uba1121I Uba1125I Uba1171I Uba1181I Uba1185I Uba1189I Uba1193I Uba1218I Uba1243I Uba1410I Uba1428I UbaN11II UbaN16I ZanI)</option>
+                    <option value='GGNNCC'>PspN4I - GGNNCC (NlaIV AspNI BcrI BmiI BsaEI BscBI Bsp29I BspLI BssI HpyF44II HpyF73I NgoBV NgoGV NgoMV Rlu3I Uba1305I Uba1445I)</option>
+                    <option value='GGGCCC'>PspOMI - GGGCCC (ApaI Bsp120I EciEI PpeI Psp30I Uba1156I Uba1157I Uba1165I Uba1202I Uba1241I Uba1368I)</option>
+                    <option value='VCTCGAGB'>PspXI - VCTCGAGB</option>
+                    <option value='RGGNCCY'>PssI - RGGNCCY (DraII EcoO109I Kaz48kI Uba1326I VneAI)</option>
+                    <option value='GACNNNGTC'>PsyI - GACNNNGTC (Tth111I AspI AtsI BgiI FsuI NtaI PflFI SmaAII SpaPI SplII SplAII TelI TrsKTII TspI TteI TtrI)</option>
+                    <option value='GTAC'>RsaNI - GTAC (RsaI AfaI Asp16HI Asp17HI Asp18HI Asp29HI CcoP73I Csp6I CviQI CviRII Hpy303I Hpy312I Hpy401I Hpy421I Hpy423I Hpy471I Hpy501I HpyBI HpyF10IV HpyF13IV HpyF21II HpyF31I HpyF36II HpyF44V HpyF52III HpyF53II HpyF59II HpyF65III HpyF66III HpyHII HpyNSH57I MjaV PabI PlaAII)</option>
+                    <option value='GCATGC'>RspLKI - GCATGC (SphI Asp5HI BbuI BfuAII BscOI Bsp121I BtgAII CglAI PaeI PaeCI PfaAIII SpaHI SpaXI Uba1162I Uba1226I VchO68I)</option>
+                    <option value='CGGWCCG'>Rsr2I - CGGWCCG (RsrII CpoI CspI)</option>
+                    <option value='GAGCTC'>SacI - GAGCTC (BpuAmI Ecl136II Ecl137I EcoICRI Eco53kI MxaI NasSI Pfl18I Psp124BI ScoI Sgr13350I Ssm4I Ssm5I SstI UcoMSI)</option>
+                    <option value='GTCGAC'>SalI - GTCGAC (Acs1371I Acs1372I Acs1373I Acs1421I Acs1422I BbrUII BspMKI BstZ16I BtgAI CglAII HgiCIII HgiDII KoyI NopI Psp32I Psp33I Psp89I RflFI RheI RhpI RrhI Rrh4273I RroI RtrI Rtr63I Uba89I XamI XciI)</option>
+                    <option value='AGGCCT'>SarI - AGGCCT (StuI AatI AehII Asp78I AspMI ChyI Eco147I Eco1524I GdiI GobAI NtaSI PceI PluI Pme55I Ppu13I Sru30DI SseBI SsvI SteI Uba40I Uba1170I Uba1180I Uba1217I Uba1239I Uba1371I Uba1403I Uba1419I VchO44I)</option>
+                    <option value='GCCGGC'>SauHPI - GCCGGC (NaeI Afa24RI AmeII AniMI ApeAI AprI BheI CcoI Eco56I Esp5I MauAI MisI Mlu9273II MroNI NbaI NbrI NgoAIV NgoMIV NmuI NmuFI NspWI NtaSII PdiI PglI Psp61I RluI RrhJ1I SacAI SalCI SaoI SauAI SauBMKI SauLPI SauNI SauSI SceIII SghWII SkaI Slu1777I Smo40529I SrlI Srl77DI SspCI Uba1122I)</option>
+                    <option value='CTCGAG'>SciI - CTCGAG (XhoI AbrI AehI AerAI AhyAI AlwFII Asp15I Asp47I Asp703I BadI BbfI BbiIII BluI Bsp92I Bsp129I Bsp139I Bsp140I Bsp141I Bsp142I BspAAI BssHI BstHI BstLI BstVI BsuMI R1.BsuMI R2.BsuMI R3.BsuMI BthI CcrI CjaI DdeII DrdDI Eae2I EscI MavI McaI MecI MhaI MlaAI MpuI MrhI MscAI MsiI Msp23II OcoI PaeR7I PanI Pfl67I PflNI PflWI Psp4I PspNI Sal1974I Sau3239I SauLPII Sbi68I Sca1827I Sci1831I SciBI ScuI SdiAI SexI Sfr274I Sfu1762I SgaI SgoI Sgr1841I Shy1766I SlaI SluI Sol10179I SpaI Sph1719I SrifpI Ssp4I StaAI StrI Sve194I TliI Uba1130I Uba1148I Uba1154I Uba1166I Uba1237I Uba1248I Uba1271I Uba1298I Uba1335I Uba1397I Uba1448I XpaI)</option>
+                    <option value='GGCCNNNNNGGCC'>SdiI - GGCCNNNNNGGCC (SfiI)</option>
+                    <option value='CGCG'>SelI - CGCG (FnuDII AccII Bce31293I BceBI BceRI BepI Bpu95I Bsh1236I Bsp50I Bsp70I Bsp123I BspFNI BspJ76I BstFNI BstUI Bsu1192II Bsu1193I Bsu1532I Bsu6633I BsuEII BtkI Cpa1150I CpaAI Csp68KVI EsaBS9I FalII FauBII FspMI Hin1056I HpyF14I HpyF15I HpyF26I HpyF52II HpyF64IV MvaAI MvnI PflAI SceAI ThaI TmaI TneDI Uba1321I Uba1404I Uba1405I Uba1446I)</option>
+                    <option value='ASST'>SetI - ASST</option>
+                    <option value='GCGATCGC'>SfaAI - GCGATCGC (SgfI AsiSI RgaI)</option>
+                    <option value='CNNGNNNNNNNNN'>SgeI - CNNGNNNNNNNNN</option>
+                    <option value='CRCCGGYG'>SgrAI - CRCCGGYG (PsuNI SvoI)</option>
+                    <option value='CGTCGACG'>SgrDI - CGTCGACG</option>
+                    <option value='GGCGCGCC'>SgsI - GGCGCGCC (AscI PalAI)</option>
+                    <option value='ATTTAAAT'>SmiI - ATTTAAAT (SwaI BstRZ246I BstSWI MspSWI)</option>
+                    <option value='CAYNNNNRTG'>SmiMI - CAYNNNNRTG (MslI RseI)</option>
+                    <option value='CTYRAG'>SmlI - CTYRAG (Sau90I Sau93I Sau98I Sau96mI SmoI)</option>
+                    <option value='GTGCAC'>SnoI - GTGCAC (ApaLI AaqI Alw44I AmeI Bsp146I DaqI Pfl23I Pfr12I PliI ScoNI Uba1203I Uba1387I VneI)</option>
+                    <option value='CTCGAG'>Sol10179I - CTCGAG (XhoI AbrI AehI AerAI AhyAI AlwFII Asp15I Asp47I Asp703I BadI BbfI BbiIII BluI Bsp92I Bsp129I Bsp139I Bsp140I Bsp141I Bsp142I BspAAI BssHI BstHI BstLI BstVI BsuMI R1.BsuMI R2.BsuMI R3.BsuMI BthI CcrI CjaI DdeII DrdDI Eae2I EscI MavI McaI MecI MhaI MlaAI MpuI MrhI MscAI MsiI Msp23II OcoI PaeR7I PanI Pfl67I PflNI PflWI Psp4I PspNI Sal1974I Sau3239I SauLPII Sbi68I Sca1827I SciI Sci1831I SciBI ScuI SdiAI SexI Sfr274I Sfu1762I SgaI SgoI Sgr1841I Shy1766I SlaI SluI SpaI Sph1719I SrifpI Ssp4I StaAI StrI Sve194I TliI Uba1130I Uba1148I Uba1154I Uba1166I Uba1237I Uba1248I Uba1271I Uba1298I Uba1335I Uba1397I Uba1448I XpaI)</option>
+                    <option value='GCCCGGGC'>SrfI - GCCCGGGC</option>
+                    <option value='TTTAAA'>SruI - TTTAAA (AhaIII DraI PauAII Srl19I Srl61DI Srl76DI)</option>
+                    <option value='CCTGCAGG'>Sse8387I - CCTGCAGG (SbfI SdaI)</option>
+                    <option value='AGGWCCT'>Sse8647I - AGGWCCT</option>
+                    <option value='CCNGG'>SsoII - CCNGG (ScrFI Bme1390I BmrFI BsaCI BsoI Bsp53I Bsp73I Bsp548I BssKI BstMZ611I BstSCI DsaV Ecl18kI Eco43I Eco51II Eco80I Eco85I Eco93I Eco153I Eco200I Eco13kI Eco21kI Eco137kI HpyNI Kpn2kI LlaMI Msp67I MspR9I SdeAII StyD4I Uba17I Uba1391I)</option>
+                    <option value='GACGTC'>Ssp5230I - GACGTC (AatII AspJI Ppu1253I ZraI)</option>
+                    <option value='GGCGCC'>SspDI - GGCGCC (NarI BbeI BbeAI R1.BbrUI BinSII DinI Eco78I EgeI EheI KasI McaAI MchI Mly113I MsaI NamI NdaI NunII PatAI PluTI PmnI SfoI SseAI)</option>
+                    <option value='AATATT'>SspI - AATATT</option>
+                    <option value='CCGG'>Sth302II - CCGG (HpaII Asp748I Bco27I BsaZI BshMI BsiSI Bsp5I Bsp47I Bsp48I Bsp116I Bsp1591II Bst40I Bsu1192I BsuFI CboI CceI FinII FpsJI HapII Hin2I Hin5I HpyVIII Hpy299IX HpyF43I MniII MnoI MspI Msp199I NflHII Pde137I Pme35I SecII SfaGUI SmoLI Sth134I Uba1128I Uba1141I Uba1267I Uba1338I Uba1355I Uba1439I UbaN13I)</option>
+                    <option value='CGTACG'>SunI - CGTACG (SplI BpuB5I BsiWI BsmWI BvuBI MaeK81I Pfl23II PfuNI PpuAI PspLI SmaAI SplAI SspKI)</option>
+                    <option value='ACGT'>TaiI - ACGT (MaeII HpyCH4IV HpyF13III HpyF35II HpyF74II HpySE526I TscI Tsp49I TspIDSI TspWAM8AI TtmI)</option>
+                    <option value='WGTACW'>TatI - WGTACW</option>
+                    <option value='GAWTC'>TfiI - GAWTC (PfeI)</option>
+                    <option value='TTAA'>Tru9I - TTAA (MseI SaqAI Tru1I)</option>
+                    <option value='GTSAC'>TseFI - GTSAC (Tsp45I Hpy8II Hpy51I Hpy99II HpyF1I HpyF4I HpyF6II HpyF9I HpyF13I HpyF25II HpyF31II HpyF34II HpyF35IV HpyF36I HpyF40III HpyF48I HpyF49II HpyF51I HpyF62III NmuCI)</option>
+                    <option value='TCGA'>Tsp32II - TCGA (TaqI CviSIII EsaBC3I HpyV Hpy26II HpyF14III HpyF16I HpyF23I HpyF24I HpyF26III HpyF30I HpyF35I HpyF40II HpyF42IV HpyF45I HpyF49I HpyF52I HpyF59III HpyF62II HpyF64I HpyF65II HpyF66IV HpyF71I HpyF73II HpyJP26II PpaAII Taq20I Tbr51I TfiA3I TfiTok6A1I TflI Tsc4aI Tsp32I Tsp358I Tsp505I Tsp510I TspNI Tth24I TthHB8I TthRQI)</option>
+                    <option value='ACNGT'>Tsp4CI - ACNGT (Bst4CI HpyCH4III HpyF5II HpyF9III HpyF12I HpyF20I HpyF22I HpyF35III HpyF40I HpyF41I HpyF42II HpyF46I HpyF48II HpyF51II HpyF54I HpyF55I HpyF56I HpyF58I HpyF62I HpyF64II HpyF65I HpyF68I HpyF69I HpyF74I TaaI)</option>
+                    <option value='CASTGNN'>TspRI - CASTGNN (TscAI)</option>
+                    <option value='CAGCTG'>UbaM39I - CAGCTG (PvuII BamGI BavI BavAI BavBI Bsp153AI BspM39I BspO4I Bth2350I Cfr6I DmaI EclI GspI MziI NmeRI Pae17kI Psp3I Psp5I Pun14627II Pvu84II PvuHKUI SbaI SciAII SmaAIV Sol3335I SpaPIII SplAIV Uba1227I Uba1245I Uba153AI)</option>
+                    <option value='GGNCC'>UnbI - GGNCC (AsuI AhaB1I ApuI AspS9I AvcI Bac36I Bal228I BavAII BavBII Bce22I Bfi105I BmgT120I BpsI BsaSI Bse54I BshKI BsiZI Bsp1894I BspBII BspF4I Bsu54I Bsu5044I CcuI CdiAI CdiCD6I Cfr4I Cfr8I Cfr13I Cfr23I Cfr33I Cfr45I Cfr46I Cfr47I Cfr52I Cfr54I CfrNI Eco39I Eco47II Eco196II Eco201I FmuI GseI Hin5II HpyF66I HpyF71II HpyF73IV MaeK81II MhoI MjaII Msp24I MthBI NlaDII NmuEII NmuSI NspIV Nsp7121I NspLII Pde12I Pph1579I Pph1773I PseI PspI PspPI Sau2I Sau5I Sau13I Sau14I Sau17I Sau32I Sau33I Sau96I Sau557I SauBI SdyI SelAI TdeIII Uba1099I Uba1134I Uba1160I Uba1164I VchO66I VchO85I VchO90I VpaK15I VpaK25I VpaK9AI VpaK19AI VpaK19BI VpaKutAI VpaKutBI VpaKutJI)</option>
+                    <option value='CCANNNNNTGG'>Van91I - CCANNNNNTGG (PflMI AccB7I AcpII Asp10HII BasI Esp1396I PflBI)</option>
+                    <option value='GGWCC'>VpaK11AI - GGWCC (AvaII AflI Asp697I Asp745I AspBII AspDII BamNII BceSII BcuAI Bme18I Bme216I BmpI Bsp71I Bsp100I Bsp128I Bsp132I Bsp133I Bsp1260I BspF53I BspJ105I BsrAI Bst4QI BthAI BtiI CauI CliI ClmII Csp68KI DsaIV EagMI Eco47I ErpI FdiI FspMSI FssI GspAI HgiBI HgiCII HgiEI HgiHIII HgiJI Hsp2I Kzo49I Mae7806III MfoI MliI MspAI MspNI NliII Nli3877II NmuAII NspDII NspGI NspHII NspKI Pfl19I PolI Psp03I SfnI Sgh1835I SinI SinAI SinBI SinCI SinDI SinEI SinFI SinGI SinHI SinJI SmuEI SynI TruI Tru28I Tsp301I Uba48I Uba62I Uba1131I Uba1249I Uba1272I Uba1278I Uba1304I Uba1314I Uba1373I Uba1413I Uba1438I UbaN15I Uth554I VpaK11I VpaK65I VpaK7AI VpaK13AI VpaK11BI VpaK11CI VpaK11DI)</option>
+                    <option value='CCTNNNNNAGG'>XagI - CCTNNNNNAGG (EcoNI Bpu1268I BsoEI BstENI BstWI Uba1289I Uba1290I Uba1308I Uba1309I Uba1310I)</option>
+                    <option value='TCTAGA'>XbaI - TCTAGA (BspAAII BspLU11II BsrXI Msp23I UbaN19I)</option>
+                    <option value='CCANNNNNNNNNTGG'>XcmI - CCANNNNNNNNNTGG</option>
+                    <option value='CCCGGG'>XcyI - CCCGGG (SmaI AhyI Cfr9I CfrJ4I CphBI EaeAI EclRI KteAI Pac25I PaeBI PspAI PspALI TspMI Uba1220I Uba1393I XmaI XmaCI)</option>
+                    <option value='CGGCCG'>XmaIII - CGGCCG (AaaI BseX3I BsoDI BstZI EagI EclXI Eco52I SenPT16I TauII Tsp504I)</option>
+                    <option value='GTMKAC'>XmiI - GTMKAC (AccI DsaVI FblI OmiBII)</option>
+                    <option value='CTAG'>XspI - CTAG (MaeI BfaI CchI FgoI FisI FspBI MjaI MthFI MthZI RmaI Rma485I Rma486I Rma490I Rma495I Rma496I Rma497I Rma500I Rma501I Rma503I Rma506I Rma509I Rma510I Rma515I Rma516I Rma517I Rma518I Rma519I Rma522I SspMI UbaN5I)</option>
+                    <option value='GACGTC'>ZraI - GACGTC (AatII AspJI Ppu1253I Ssp5230I)</option>
+                </param>
+
+            </when>
+            <when value="user">
+                <param name="pattern" type="text" value="" label="Search pattern" help="For example GGATCC for BamHI.">
+                    <validator type="regex" message="Only letters are allowed.">^[a-zA-Z]+$</validator>
+                </param>
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data format="bed" name="output" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="input" value="find_subsequences_input1.fasta" ftype="fasta"/>
+            <param name="pattern" value="atcg"/>
+            <param name="pattern_conditional_select" value="user"/>
+            <output name="output" file="find_subsequences_simple_result1.bed" ftype="bed"/>
+        </test>
+        <test>
+            <param name="input" value="find_subsequences_input1.fasta" ftype="fasta"/>
+            <param name="pattern" value="AGCT"/>
+            <param name="pattern_conditional_select" value="predefined"/>
+            <output name="output" file="find_subsequences_simple_result2.bed" ftype="bed"/>
+        </test>
+        <test>
+            <param name="input" value="find_subsequences_input1.fasta" ftype="fasta"/>
+            <param name="pattern" value="atnncg"/>
+            <param name="pattern_conditional_select" value="user"/>
+            <output name="output" file="find_subsequences_advanced_result1.bed" ftype="bed"/>
+        </test>
+    </tests>
+    <help>
+<![CDATA[
+
+**What it does**
+
+Searches for a subsequence in a larger nucleotide sequence. For example to get all restriction enzymes for BamHI.
+
+You can use ambiguous values using the standard `nucleotide ambiguity code <http://www.dnabaser.com/articles/IUPAC%20ambiguity%20codes.html>`_.
+
+This tool is searching on both strands.
+
+]]>
+    </help>
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btp163</citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/find_subsequences_advanced_result1.bed	Fri Mar 20 06:23:17 2015 -0400
@@ -0,0 +1,2 @@
+forward_advanced	9	15	forward_advanced		+
+reverse_advanced	9	15	reverse_advanced		-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/find_subsequences_input1.fasta	Fri Mar 20 06:23:17 2015 -0400
@@ -0,0 +1,11 @@
+>forward_simple
+ACCTGTAGCATCGGGGCTCGTA
+
+>reverse_simple
+AAAATTTAGCGATTGTAGTGTAGATAGTA
+
+>forward_advanced
+AAAAAAAAAATGGCGTTTTTTTTTT
+
+>reverse_advanced
+AAAAAAAAATAGGGCTTTTTTTTTTT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/find_subsequences_simple_result1.bed	Fri Mar 20 06:23:17 2015 -0400
@@ -0,0 +1,3 @@
+forward_simple	9	13	forward_simple		+
+forward_simple	5	9	forward_simple		-
+reverse_simple	6	10	reverse_simple		-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Fri Mar 20 06:23:17 2015 -0400
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<tool_dependency>
+  <package name="biopython" version="1.65">
+      <repository changeset_revision="dc595937617c" name="package_biopython_1_65" owner="biopython" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+</tool_dependency>