— — — — — — — — — — — — — — — |
use vars qw (@EXPORT_OK %EXPORT_TAGS @RE_available ); @EXPORT_OK = qw(@RE_available) ;
%EXPORT_TAGS = ( std => [ qw(@RE_available) ] );
my %RE = (
'AasI' => 'GACNNNNNNGTC 7' ,
'AatI' => 'AGGCCT 3' ,
'AatII' => 'GACGTC 5' ,
'AauI' => 'TGTACA 1' ,
'AccI' => 'GTMKAC 2' ,
'AccII' => 'CGCG 2' ,
'AccIII' => 'TCCGGA 1' ,
'Acc16I' => 'TGCGCA 3' ,
'Acc65I' => 'GGTACC 1' ,
'Acc113I' => 'AGTACT 3' ,
'AccB1I' => 'GGYRCC 1' ,
'AccB7I' => 'CCANNNNNTGG 7' ,
'AclI' => 'AACGTT 2' ,
'AcsI' => 'RAATTY 1' ,
'AcvI' => 'CACGTG 3' ,
'AcyI' => 'GRCGYC 2' ,
'AdeI' => 'CACNNNGTG 6' ,
'AfaI' => 'GTAC 2' ,
'AfeI' => 'AGCGCT 3' ,
'AflI' => 'GGWCC 1' ,
'AflII' => 'CTTAAG 1' ,
'AflIII' => 'ACRYGT 1' ,
'AgeI' => 'ACCGGT 1' ,
'AhaIII' => 'TTTAAA 3' ,
'AhdI' => 'GACNNNNNGTC 6' ,
'AhlI' => 'ACTAGT 1' ,
'AleI' => 'CACNNNNGTG 5' ,
'AluI' => 'AGCT 2' ,
'Alw21I' => 'GWGCWC 5' ,
'Alw44I' => 'GTGCAC 1' ,
'AlwNI' => 'CAGNNNCTG 6' ,
'Ama87I' => 'CYCGRG 1' ,
'AocI' => 'CCTNAGG 2' ,
'Aor51HI' => 'AGCGCT 3' ,
'ApaI' => 'GGGCCC 5' ,
'ApaBI' => 'GCANNNNNTGC 8' ,
'ApaLI' => 'GTGCAC 1' ,
'ApoI' => 'RAATTY 1' ,
'AscI' => 'GGCGCGCC 2' ,
'AseI' => 'ATTAAT 2' ,
'AsiAI' => 'ACCGGT 1' ,
'AsiSI' => 'GCGATCGC 5' ,
'AsnI' => 'ATTAAT 2' ,
'AspI' => 'GACNNNGTC 4' ,
'Asp700I' => 'GAANNNNTTC 5' ,
'Asp718I' => 'GGTACC 1' ,
'AspEI' => 'GACNNNNNGTC 6' ,
'AspHI' => 'GWGCWC 5' ,
'AspLEI' => 'GCGC 3' ,
'AspS9I' => 'GGNCC 1' ,
'AsuI' => 'GGNCC 1' ,
'AsuII' => 'TTCGAA 2' ,
'AsuC2I' => 'CCSGG 2' ,
'AsuNHI' => 'GCTAGC 1' ,
'AvaI' => 'CYCGRG 1' ,
'AvaII' => 'GGWCC 1' ,
'AviII' => 'TGCGCA 3' ,
'AvrII' => 'CCTAGG 1' ,
'AxyI' => 'CCTNAGG 2' ,
'BalI' => 'TGGCCA 3' ,
'BamHI' => 'GGATCC 1' ,
'BanI' => 'GGYRCC 1' ,
'BanII' => 'GRGCYC 5' ,
'BanIII' => 'ATCGAT 2' ,
'BbeI' => 'GGCGCC 5' ,
'BbrPI' => 'CACGTG 3' ,
'BbuI' => 'GCATGC 5' ,
'Bbv12I' => 'GWGCWC 5' ,
'BclI' => 'TGATCA 1' ,
'BcnI' => 'CCSGG 2' ,
'BcoI' => 'CYCGRG 1' ,
'BcuI' => 'ACTAGT 1' ,
'BetI' => 'WCCGGW 1' ,
'BfaI' => 'CTAG 1' ,
'BfmI' => 'CTRYAG 1' ,
'BfrI' => 'CTTAAG 1' ,
'BfrBI' => 'ATGCAT 3' ,
'BfuCI' => 'GATC 0' ,
'BglI' => 'GCCNNNNNGGC 7' ,
'BglII' => 'AGATCT 1' ,
'BlnI' => 'CCTAGG 1' ,
'BloHII' => 'CTGCAG 5' ,
'BlpI' => 'GCTNAGC 2' ,
'Bme18I' => 'GGWCC 1' ,
'Bme1390I' => 'CCNGG 2' ,
'Bme1580I' => 'GKGCMC 5' ,
'BmtI' => 'GCTAGC 5' ,
'BmyI' => 'GDGCHC 5' ,
'BoxI' => 'GACNNNNGTC 5' ,
'Bpu14I' => 'TTCGAA 2' ,
'Bpu1102I' => 'GCTNAGC 2' ,
'Bsa29I' => 'ATCGAT 2' ,
'BsaAI' => 'YACGTR 3' ,
'BsaBI' => 'GATNNNNATC 5' ,
'BsaHI' => 'GRCGYC 2' ,
'BsaJI' => 'CCNNGG 1' ,
'BsaOI' => 'CGRYCG 4' ,
'BsaWI' => 'WCCGGW 1' ,
'BscI' => 'ATCGAT 2' ,
'Bsc4I' => 'CCNNNNNNNGG 7' ,
'BscBI' => 'GGNNCC 3' ,
'BscFI' => 'GATC 0' ,
'Bse8I' => 'GATNNNNATC 5' ,
'Bse21I' => 'CCTNAGG 2' ,
'Bse118I' => 'RCCGGY 1' ,
'BseAI' => 'TCCGGA 1' ,
'BseBI' => 'CCWGG 2' ,
'BseCI' => 'ATCGAT 2' ,
'BseDI' => 'CCNNGG 1' ,
'BseJI' => 'GATNNNNATC 5' ,
'BseLI' => 'CCNNNNNNNGG 7' ,
'BsePI' => 'GCGCGC 1' ,
'BseSI' => 'GKGCMC 5' ,
'BseX3I' => 'CGGCCG 1' ,
'BshI' => 'GGCC 2' ,
'Bsh1236I' => 'CGCG 2' ,
'Bsh1285I' => 'CGRYCG 4' ,
'BshFI' => 'GGCC 2' ,
'BshNI' => 'GGYRCC 1' ,
'BshTI' => 'ACCGGT 1' ,
'BsiBI' => 'GATNNNNATC 5' ,
'BsiCI' => 'TTCGAA 2' ,
'BsiEI' => 'CGRYCG 4' ,
'BsiHKAI' => 'GWGCWC 5' ,
'BsiHKCI' => 'CYCGRG 1' ,
'BsiLI' => 'CCWGG 2' ,
'BsiMI' => 'TCCGGA 1' ,
'BsiQI' => 'TGATCA 1' ,
'BsiSI' => 'CCGG 1' ,
'BsiWI' => 'CGTACG 1' ,
'BsiXI' => 'ATCGAT 2' ,
'BsiYI' => 'CCNNNNNNNGG 7' ,
'BsiZI' => 'GGNCC 1' ,
'BslI' => 'CCNNNNNNNGG 7' ,
'BsoBI' => 'CYCGRG 1' ,
'Bsp13I' => 'TCCGGA 1' ,
'Bsp19I' => 'CCATGG 1' ,
'Bsp68I' => 'TCGCGA 3' ,
'Bsp106I' => 'ATCGAT 2' ,
'Bsp119I' => 'TTCGAA 2' ,
'Bsp120I' => 'GGGCCC 1' ,
'Bsp143I' => 'GATC 0' ,
'Bsp143II' => 'RGCGCY 5' ,
'Bsp1286I' => 'GDGCHC 5' ,
'Bsp1407I' => 'TGTACA 1' ,
'Bsp1720I' => 'GCTNAGC 2' ,
'BspA2I' => 'CCTAGG 1' ,
'BspCI' => 'CGATCG 4' ,
'BspDI' => 'ATCGAT 2' ,
'BspEI' => 'TCCGGA 1' ,
'BspHI' => 'TCATGA 1' ,
'BspLI' => 'GGNNCC 3' ,
'BspLU11I' => 'ACATGT 1' ,
'BspMII' => 'TCCGGA 1' ,
'BspTI' => 'CTTAAG 1' ,
'BspT104I' => 'TTCGAA 2' ,
'BspT107I' => 'GGYRCC 1' ,
'BspXI' => 'ATCGAT 2' ,
'BsrBRI' => 'GATNNNNATC 5' ,
'BsrFI' => 'RCCGGY 1' ,
'BsrGI' => 'TGTACA 1' ,
'BssAI' => 'RCCGGY 1' ,
'BssECI' => 'CCNNGG 1' ,
'BssHI' => 'CTCGAG 1' ,
'BssHII' => 'GCGCGC 1' ,
'BssKI' => 'CCNGG 0' ,
'BssNAI' => 'GTATAC 3' ,
'BssT1I' => 'CCWWGG 1' ,
'Bst98I' => 'CTTAAG 1' ,
'Bst1107I' => 'GTATAC 3' ,
'BstACI' => 'GRCGYC 2' ,
'BstAPI' => 'GCANNNNNTGC 7' ,
'BstBI' => 'TTCGAA 2' ,
'BstBAI' => 'YACGTR 3' ,
'Bst4CI' => 'ACNGT 3' ,
'BstC8I' => 'GCNNGC 3' ,
'BstDEI' => 'CTNAG 1' ,
'BstDSI' => 'CCRYGG 1' ,
'BstEII' => 'GGTNACC 1' ,
'BstENI' => 'CCTNNNNNAGG 5' ,
'BstENII' => 'GATC 0' ,
'BstFNI' => 'CGCG 2' ,
'BstH2I' => 'RGCGCY 5' ,
'BstHHI' => 'GCGC 3' ,
'BstHPI' => 'GTTAAC 3' ,
'BstKTI' => 'GATC 3' ,
'BstMAI' => 'CTGCAG 5' ,
'BstMCI' => 'CGRYCG 4' ,
'BstMWI' => 'GCNNNNNNNGC 7' ,
'BstNI' => 'CCWGG 2' ,
'BstNSI' => 'RCATGY 5' ,
'BstOI' => 'CCWGG 2' ,
'BstPI' => 'GGTNACC 1' ,
'BstPAI' => 'GACNNNNGTC 5' ,
'BstSCI' => 'CCNGG 0' ,
'BstSFI' => 'CTRYAG 1' ,
'BstSNI' => 'TACGTA 3' ,
'BstUI' => 'CGCG 2' ,
'Bst2UI' => 'CCWGG 2' ,
'BstXI' => 'CCANNNNNNTGG 8' ,
'BstX2I' => 'RGATCY 1' ,
'BstYI' => 'RGATCY 1' ,
'BstZI' => 'CGGCCG 1' ,
'BstZ17I' => 'GTATAC 3' ,
'Bsu15I' => 'ATCGAT 2' ,
'Bsu36I' => 'CCTNAGG 2' ,
'BsuRI' => 'GGCC 2' ,
'BsuTUI' => 'ATCGAT 2' ,
'BtgI' => 'CCRYGG 1' ,
'BthCI' => 'GCNGC 4' ,
'Cac8I' => 'GCNNGC 3' ,
'CaiI' => 'CAGNNNCTG 6' ,
'CauII' => 'CCSGG 2' ,
'CciNI' => 'GCGGCCGC 2' ,
'CelII' => 'GCTNAGC 2' ,
'CfoI' => 'GCGC 3' ,
'CfrI' => 'YGGCCR 1' ,
'Cfr9I' => 'CCCGGG 1' ,
'Cfr10I' => 'RCCGGY 1' ,
'Cfr13I' => 'GGNCC 1' ,
'Cfr42I' => 'CCGCGG 4' ,
'ChaI' => 'GATC 4' ,
'ClaI' => 'ATCGAT 2' ,
'CpoI' => 'CGGWCCG 2' ,
'CspI' => 'CGGWCCG 2' ,
'Csp6I' => 'GTAC 1' ,
'Csp45I' => 'TTCGAA 2' ,
'CspAI' => 'ACCGGT 1' ,
'CviAII' => 'CATG 1' ,
'CviJI' => 'RGCY 2' ,
'CviRI' => 'TGCA 2' ,
'CviTI' => 'RGCY 2' ,
'CvnI' => 'CCTNAGG 2' ,
'DdeI' => 'CTNAG 1' ,
'DpnI' => 'GATC 2' ,
'DpnII' => 'GATC 0' ,
'DraI' => 'TTTAAA 3' ,
'DraII' => 'RGGNCCY 2' ,
'DraIII' => 'CACNNNGTG 6' ,
'DrdI' => 'GACNNNNNNGTC 7' ,
'DsaI' => 'CCRYGG 1' ,
'DseDI' => 'GACNNNNNNGTC 7' ,
'EaeI' => 'YGGCCR 1' ,
'EagI' => 'CGGCCG 1' ,
'Eam1105I' => 'GACNNNNNGTC 6' ,
'Ecl136II' => 'GAGCTC 3' ,
'EclHKI' => 'GACNNNNNGTC 6' ,
'EclXI' => 'CGGCCG 1' ,
'Eco24I' => 'GRGCYC 5' ,
'Eco32I' => 'GATATC 3' ,
'Eco47I' => 'GGWCC 1' ,
'Eco47III' => 'AGCGCT 3' ,
'Eco52I' => 'CGGCCG 1' ,
'Eco72I' => 'CACGTG 3' ,
'Eco81I' => 'CCTNAGG 2' ,
'Eco88I' => 'CYCGRG 1' ,
'Eco91I' => 'GGTNACC 1' ,
'Eco105I' => 'TACGTA 3' ,
'Eco130I' => 'CCWWGG 1' ,
'Eco147I' => 'AGGCCT 3' ,
'EcoHI' => 'CCSGG 0' ,
'EcoICRI' => 'GAGCTC 3' ,
'EcoNI' => 'CCTNNNNNAGG 5' ,
'EcoO65I' => 'GGTNACC 1' ,
'EcoO109I' => 'RGGNCCY 2' ,
'EcoRI' => 'GAATTC 1' ,
'EcoRII' => 'CCWGG 0' ,
'EcoRV' => 'GATATC 3' ,
'EcoT14I' => 'CCWWGG 1' ,
'EcoT22I' => 'ATGCAT 5' ,
'EcoT38I' => 'GRGCYC 5' ,
'EgeI' => 'GGCGCC 3' ,
'EheI' => 'GGCGCC 3' ,
'ErhI' => 'CCWWGG 1' ,
'EsaBC3I' => 'TCGA 2' ,
'EspI' => 'GCTNAGC 2' ,
'FatI' => 'CATG 0' ,
'FauNDI' => 'CATATG 2' ,
'FbaI' => 'TGATCA 1' ,
'FblI' => 'GTMKAC 2' ,
'FmuI' => 'GGNCC 4' ,
'FnuDII' => 'CGCG 2' ,
'Fnu4HI' => 'GCNGC 2' ,
'FriOI' => 'GRGCYC 5' ,
'FseI' => 'GGCCGGCC 6' ,
'FspI' => 'TGCGCA 3' ,
'FspAI' => 'RTGCGCAY 4' ,
'Fsp4HI' => 'GCNGC 2' ,
'FunI' => 'AGCGCT 3' ,
'FunII' => 'GAATTC 1' ,
'HaeI' => 'WGGCCW 3' ,
'HaeII' => 'RGCGCY 5' ,
'HaeIII' => 'GGCC 2' ,
'HapII' => 'CCGG 1' ,
'HgiAI' => 'GWGCWC 5' ,
'HgiCI' => 'GGYRCC 1' ,
'HgiJII' => 'GRGCYC 5' ,
'HhaI' => 'GCGC 3' ,
'Hin1I' => 'GRCGYC 2' ,
'Hin6I' => 'GCGC 1' ,
'HinP1I' => 'GCGC 1' ,
'HincII' => 'GTYRAC 3' ,
'HindII' => 'GTYRAC 3' ,
'HindIII' => 'AAGCTT 1' ,
'HinfI' => 'GANTC 1' ,
'HpaI' => 'GTTAAC 3' ,
'HpaII' => 'CCGG 1' ,
'Hpy8I' => 'GTNNAC 3' ,
'Hpy99I' => 'CGWCG 5' ,
'Hpy178III' => 'TCNNGA 2' ,
'Hpy188I' => 'TCNGA 3' ,
'Hpy188III' => 'TCNNGA 2' ,
'HpyCH4I' => 'CATG 3' ,
'HpyCH4III' => 'ACNGT 3' ,
'HpyCH4IV' => 'ACGT 1' ,
'HpyCH4V' => 'TGCA 2' ,
'HpyF10VI' => 'GCNNNNNNNGC 8' ,
'Hsp92I' => 'GRCGYC 2' ,
'Hsp92II' => 'CATG 4' ,
'HspAI' => 'GCGC 1' ,
'ItaI' => 'GCNGC 2' ,
'KasI' => 'GGCGCC 1' ,
'KpnI' => 'GGTACC 5' ,
'Kpn2I' => 'TCCGGA 1' ,
'KspI' => 'CCGCGG 4' ,
'Ksp22I' => 'TGATCA 1' ,
'KspAI' => 'GTTAAC 3' ,
'Kzo9I' => 'GATC 0' ,
'LpnI' => 'RGCGCY 3' ,
'LspI' => 'TTCGAA 2' ,
'MabI' => 'ACCWGGT 1' ,
'MaeI' => 'CTAG 1' ,
'MaeII' => 'ACGT 1' ,
'MaeIII' => 'GTNAC 0' ,
'MamI' => 'GATNNNNATC 5' ,
'MboI' => 'GATC 0' ,
'McrI' => 'CGRYCG 4' ,
'MfeI' => 'CAATTG 1' ,
'MflI' => 'RGATCY 1' ,
'MhlI' => 'GDGCHC 5' ,
'MlsI' => 'TGGCCA 3' ,
'MluI' => 'ACGCGT 1' ,
'MluNI' => 'TGGCCA 3' ,
'Mly113I' => 'GGCGCC 2' ,
'Mph1103I' => 'ATGCAT 5' ,
'MroI' => 'TCCGGA 1' ,
'MroNI' => 'GCCGGC 1' ,
'MroXI' => 'GAANNNNTTC 5' ,
'MscI' => 'TGGCCA 3' ,
'MseI' => 'TTAA 1' ,
'MslI' => 'CAYNNNNRTG 5' ,
'MspI' => 'CCGG 1' ,
'Msp20I' => 'TGGCCA 3' ,
'MspA1I' => 'CMGCKG 3' ,
'MspCI' => 'CTTAAG 1' ,
'MspR9I' => 'CCNGG 2' ,
'MssI' => 'GTTTAAAC 4' ,
'MstI' => 'TGCGCA 3' ,
'MunI' => 'CAATTG 1' ,
'MvaI' => 'CCWGG 2' ,
'MvnI' => 'CGCG 2' ,
'MwoI' => 'GCNNNNNNNGC 7' ,
'NaeI' => 'GCCGGC 3' ,
'NarI' => 'GGCGCC 2' ,
'NciI' => 'CCSGG 2' ,
'NcoI' => 'CCATGG 1' ,
'NdeI' => 'CATATG 2' ,
'NdeII' => 'GATC 0' ,
'NgoAIV' => 'GCCGGC 1' ,
'NgoMIV' => 'GCCGGC 1' ,
'NheI' => 'GCTAGC 1' ,
'NlaIII' => 'CATG 4' ,
'NlaIV' => 'GGNNCC 3' ,
'Nli3877I' => 'CYCGRG 5' ,
'NmuCI' => 'GTSAC 0' ,
'NotI' => 'GCGGCCGC 2' ,
'NruI' => 'TCGCGA 3' ,
'NruGI' => 'GACNNNNNGTC 6' ,
'NsbI' => 'TGCGCA 3' ,
'NsiI' => 'ATGCAT 5' ,
'NspI' => 'RCATGY 5' ,
'NspIII' => 'CYCGRG 1' ,
'NspV' => 'TTCGAA 2' ,
'NspBII' => 'CMGCKG 3' ,
'OliI' => 'CACNNNNGTG 5' ,
'PacI' => 'TTAATTAA 5' ,
'PaeI' => 'GCATGC 5' ,
'PaeR7I' => 'CTCGAG 1' ,
'PagI' => 'TCATGA 1' ,
'PalI' => 'GGCC 2' ,
'PauI' => 'GCGCGC 1' ,
'PceI' => 'AGGCCT 3' ,
'PciI' => 'ACATGT 1' ,
'PdiI' => 'GCCGGC 3' ,
'PdmI' => 'GAANNNNTTC 5' ,
'Pfl23II' => 'CGTACG 1' ,
'PflBI' => 'CCANNNNNTGG 7' ,
'PflFI' => 'GACNNNGTC 4' ,
'PflMI' => 'CCANNNNNTGG 7' ,
'PfoI' => 'TCCNGGA 1' ,
'PinAI' => 'ACCGGT 1' ,
'Ple19I' => 'CGATCG 4' ,
'PmaCI' => 'CACGTG 3' ,
'PmeI' => 'GTTTAAAC 4' ,
'PmlI' => 'CACGTG 3' ,
'Ppu10I' => 'ATGCAT 1' ,
'PpuMI' => 'RGGWCCY 2' ,
'PpuXI' => 'RGGWCCY 2' ,
'PshAI' => 'GACNNNNGTC 5' ,
'PshBI' => 'ATTAAT 2' ,
'PsiI' => 'TTATAA 3' ,
'Psp03I' => 'GGWCC 4' ,
'Psp5II' => 'RGGWCCY 2' ,
'Psp6I' => 'CCWGG 0' ,
'Psp1406I' => 'AACGTT 2' ,
'PspAI' => 'CCCGGG 1' ,
'Psp124BI' => 'GAGCTC 5' ,
'PspEI' => 'GGTNACC 1' ,
'PspGI' => 'CCWGG 0' ,
'PspLI' => 'CGTACG 1' ,
'PspN4I' => 'GGNNCC 3' ,
'PspOMI' => 'GGGCCC 1' ,
'PspPI' => 'GGNCC 1' ,
'PspPPI' => 'RGGWCCY 2' ,
'PssI' => 'RGGNCCY 5' ,
'PstI' => 'CTGCAG 5' ,
'PsuI' => 'RGATCY 1' ,
'PsyI' => 'GACNNNGTC 4' ,
'PvuI' => 'CGATCG 4' ,
'PvuII' => 'CAGCTG 3' ,
'RcaI' => 'TCATGA 1' ,
'RsaI' => 'GTAC 2' ,
'RsrII' => 'CGGWCCG 2' ,
'Rsr2I' => 'CGGWCCG 2' ,
'SacI' => 'GAGCTC 5' ,
'SacII' => 'CCGCGG 4' ,
'SalI' => 'GTCGAC 1' ,
'SanDI' => 'GGGWCCC 2' ,
'SatI' => 'GCNGC 2' ,
'SauI' => 'CCTNAGG 2' ,
'Sau96I' => 'GGNCC 1' ,
'Sau3AI' => 'GATC 0' ,
'SbfI' => 'CCTGCAGG 6' ,
'ScaI' => 'AGTACT 3' ,
'SciI' => 'CTCGAG 3' ,
'ScrFI' => 'CCNGG 2' ,
'SdaI' => 'CCTGCAGG 6' ,
'SduI' => 'GDGCHC 5' ,
'SecI' => 'CCNNGG 1' ,
'SelI' => 'CGCG 0' ,
'SexAI' => 'ACCWGGT 1' ,
'SfcI' => 'CTRYAG 1' ,
'SfeI' => 'CTRYAG 1' ,
'SfiI' => 'GGCCNNNNNGGCC 8' ,
'SfoI' => 'GGCGCC 3' ,
'Sfr274I' => 'CTCGAG 1' ,
'Sfr303I' => 'CCGCGG 4' ,
'SfuI' => 'TTCGAA 2' ,
'SgfI' => 'GCGATCGC 5' ,
'SgrAI' => 'CRCCGGYG 2' ,
'SgrBI' => 'CCGCGG 4' ,
'SinI' => 'GGWCC 1' ,
'SlaI' => 'CTCGAG 1' ,
'SmaI' => 'CCCGGG 3' ,
'SmiI' => 'ATTTAAAT 4' ,
'SmiMI' => 'CAYNNNNRTG 5' ,
'SmlI' => 'CTYRAG 1' ,
'SnaBI' => 'TACGTA 3' ,
'SpaHI' => 'GCATGC 5' ,
'SpeI' => 'ACTAGT 1' ,
'SphI' => 'GCATGC 5' ,
'SplI' => 'CGTACG 1' ,
'SrfI' => 'GCCCGGGC 4' ,
'Sse9I' => 'AATT 0' ,
'Sse232I' => 'CGCCGGCG 2' ,
'Sse8387I' => 'CCTGCAGG 6' ,
'Sse8647I' => 'AGGWCCT 2' ,
'SseBI' => 'AGGCCT 3' ,
'SspI' => 'AATATT 3' ,
'SspBI' => 'TGTACA 1' ,
'SstI' => 'GAGCTC 5' ,
'SstII' => 'CCGCGG 4' ,
'StuI' => 'AGGCCT 3' ,
'StyI' => 'CCWWGG 1' ,
'SunI' => 'CGTACG 1' ,
'SwaI' => 'ATTTAAAT 4' ,
'TaaI' => 'ACNGT 3' ,
'TaiI' => 'ACGT 4' ,
'TaqI' => 'TCGA 1' ,
'TasI' => 'AATT 0' ,
'TatI' => 'WGTACW 1' ,
'TauI' => 'GCSGC 4' ,
'TelI' => 'GACNNNGTC 4' ,
'TfiI' => 'GAWTC 1' ,
'ThaI' => 'CGCG 2' ,
'TliI' => 'CTCGAG 1' ,
'Tru1I' => 'TTAA 1' ,
'Tru9I' => 'TTAA 1' ,
'TscI' => 'ACGT 4' ,
'TseI' => 'GCWGC 1' ,
'Tsp45I' => 'GTSAC 0' ,
'Tsp509I' => 'AATT 0' ,
'Tsp4CI' => 'ACNGT 3' ,
'TspEI' => 'AATT 0' ,
'Tth111I' => 'GACNNNGTC 4' ,
'TthHB8I' => 'TCGA 1' ,
'UnbI' => 'GGNCC 0' ,
'Van91I' => 'CCANNNNNTGG 7' ,
'Vha464I' => 'CTTAAG 1' ,
'VneI' => 'GTGCAC 1' ,
'VpaK11AI' => 'GGWCC 0' ,
'VpaK11BI' => 'GGWCC 1' ,
'VspI' => 'ATTAAT 2' ,
'XagI' => 'CCTNNNNNAGG 5' ,
'XapI' => 'RAATTY 1' ,
'XbaI' => 'TCTAGA 1' ,
'XceI' => 'RCATGY 5' ,
'XcmI' => 'CCANNNNNNNNNTGG 8' ,
'XhoI' => 'CTCGAG 1' ,
'XhoII' => 'RGATCY 1' ,
'XmaI' => 'CCCGGG 1' ,
'XmaIII' => 'CGGCCG 1' ,
'XmaCI' => 'CCCGGG 1' ,
'XmaJI' => 'CCTAGG 1' ,
'XmiI' => 'GTMKAC 2' ,
'XmnI' => 'GAANNNNTTC 5' ,
'XspI' => 'CTAG 1' ,
'ZhoI' => 'ATCGAT 2' ,
'ZraI' => 'GACGTC 3' ,
'Zsp2I' => 'ATGCAT 5' ,
);
@RE_available = sort keys %RE ;
sub new {
my ( $class , @args ) = @_ ;
my $self = $class ->SUPER::new( @args );
$self -> warn ( "Use of Bio::Tools::RestrictionEnzyme is deprecated" .
"Use Bio::Restriction classes instead" );
my ( $name , $make ) = $self ->_rearrange([ qw(NAME MAKE) ], @args );
$name && $self ->name( $name );
my %data ;
if ( defined $make && $make eq 'custom' ) {
%data = $self ->_make_custom( $name );
} else {
%data = $self ->_make_standard( $name );
}
$self ->{ '_seq' } = new Bio::PrimarySeq( %data ,
-VERBOSE => $self ->verbose,
-alphabet => 'dna' ,
);
return $self ;
}
sub _make_standard {
my ( $self , $name ) = @_ ;
$name =~ s/^\s+|\s+$//g;
$self ->is_available( $name ) ||
$self ->throw( "Unavailable or undefined enzyme: $name (Note: CASE SENSITIVE)\n" .
"Currently available enzymes: \n@RE_available\n" );
my @data = split ( ' ' , $RE { $name });
my ( %dat );
$dat {-SEQ} = $data [0];
$dat {-NAME} = $dat {-ID}= $name ;
$self ->{ '_cuts_after' } = $data [1];
return %dat ;
}
sub _make_custom {
my ( $self , $name ) = @_ ;
$name =~ s/\s+//g;
my @parts = split '--' , $name ;
my ( %dat );
$dat {-NAME} = $dat {-ID} = $parts [0];
$self ->name( $parts [0]);
$parts [1] || return $self ->throw( "Undefined recognition site for $parts[0]." ,
"Use this syntax: EcoRV--GAT^ATC" );
my $cut_index = index $parts [1], '^' ;
if ( $cut_index <0) { $cut_index = 0;
$self -> warn ( "Unknown cut position for $parts[0]. Assuming position 0\n" .
"Use carat to specify cut position (e.g., G^AATTC)" ); }
$self ->{ '_cuts_after' } = $cut_index ;
$parts [1] =~ s/\^//g;
$dat {-SEQ} = $parts [1];
return %dat ;
}
sub cuts_after {
my $self = shift ;
if ( @_ ) { my $num = shift ;
if ( $num == 0 and $num ne '0' ) {
$self ->throw( "The cuts_after position be an integer ($num)" );
}
$self ->{ '_cuts_after' } = $num ;
}
$self ->{ '_cuts_after' };
}
sub site {
my $self = shift ;
my $seq = $self ->seq;
my $cuts_after = $self ->cuts_after;
if ( $cuts_after > 0) {
if ( $cuts_after >= $seq -> length ) {
return $seq ->seq. '^' ;
} else {
return $seq ->subseq(1, $self ->cuts_after). '^' . $seq ->subseq( $self ->cuts_after+1, $seq -> length );
}
} else {
return $seq ->seq;
}
}
sub seq { my $self = shift ; $self ->{ '_seq' }; }
sub string { my $self = shift ; $self ->{ '_seq' }->seq; }
sub revcom { my $self = shift ; $self ->{ '_seq' }->revcom->seq(); }
sub cut_seq {
my ( $self , $seqObj ) = @_ ;
if ( ! ref ( $seqObj ) ||
! $seqObj ->isa( 'Bio::PrimarySeqI' ) ) {
$self ->throw( "Can't cut sequence. Missing or invalid object" .
"seqObj: $seqObj" );
}
my $cuts_after = $self ->{ '_cuts_after' };
my ( $site_3prime_seq , $site_5prime_seq );
my $reSeq = $self ->seq;
if ( $cuts_after == 0) {
$site_3prime_seq = '' ;
$site_5prime_seq = $reSeq ->seq();
} elsif ( $cuts_after == $reSeq -> length ) {
$site_3prime_seq = $reSeq ->seq();
$site_5prime_seq = '' ;
} else {
$site_3prime_seq = $reSeq ->subseq(1, $self ->{ '_cuts_after' });
$site_5prime_seq = $reSeq ->subseq( $self ->{ '_cuts_after' }+1, $reSeq -> length );
}
$self ->debug( "3' site: $site_3prime_seq\n5' site: $site_5prime_seq\n" );
my ( @re_frags );
my $seq = uc $self ->_expanded_string;
if (! $self ->palindromic and $self ->name ne 'N' ) {
my $revseq = $self ->_expanded_string( $reSeq ->revcom->seq() );
$seq .= '|' . uc ( $revseq );
}
$self ->debug(__PACKAGE__, ": site seq: $seq\n" );
$self ->debug(__PACKAGE__, ": splitting " , $reSeq ->seq, "\n" );
@re_frags = split (/ $seq /i, $seqObj ->seq);
$self ->debug(__PACKAGE__, ": cut_seq, " , scalar ( @re_frags ), " fragments.\n" );
my ( $i );
my $numFrags = scalar @re_frags ;
for ( $i =0; $i < $numFrags ; $i ++) {
$i < $#re_frags and $re_frags [ $i ] = $re_frags [ $i ]. $site_3prime_seq ;
$i > 0 and $re_frags [ $i ] = $site_5prime_seq . $re_frags [ $i ];
}
@re_frags ;
}
sub cut_locations {
my ( $self , $seqobj ) = @_ ;
my $site = $self ->_expanded_string;
my $seq = $seqobj ->seq;
study ( $seq );
my @locations ;
while ( $seq =~ /( $site )/ig ) {
push @locations , length ($`);
}
return \ @locations ;
}
sub _expanded_string {
my ( $self , $str ) = @_ ;
$str ||= $self ->string;
if ( $self ->name ne 'N' ) {
$str =~ s/N|X/\./g;
$str =~ s/R/\[AG\]/g;
$str =~ s/Y/\[CT\]/g;
$str =~ s/S/\[GC\]/g;
$str =~ s/W/\[AT\]/g;
$str =~ s/M/\[AC\]/g;
$str =~ s/K/\[TG\]/g;
$str =~ s/B/\[CGT\]/g;
$str =~ s/D/\[AGT\]/g;
$str =~ s/H/\[ACT\]/g;
$str =~ s/V/\[ACG\]/g;
}
return $str ;
}
sub annotate_seq {
my ( $self , $seqObj ) = @_ ;
my $site = $self ->_expanded_string;
my $seq = $seqObj ->seq;
$seq =~ s| $site |<b> $site </b>|g;
return $seq ;
}
sub palindromic {
my $self = shift ;
$self ->string eq $self ->revcom;
}
sub is_available {
my ( $self , $name ) = @_ ;
exists $RE { $name };
}
sub available {
my ( $self , $name ) = @_ ;
$self -> warn ( 'available() is deprecated; use is_available() instead' );
$self ->is_available( $name );
}
sub name{
my ( $obj , $value ) = @_ ;
if ( defined $value ) {
$obj ->{ 'name' } = $value ;
}
return $obj ->{ 'name' };
}
sub available_list {
my ( $self , $size ) = @_ ;
$size ||= 'all' ;
$size eq 'all' and return @RE_available ;
my ( @data , @names );
foreach ( @RE_available ) {
@data = split /\s/, $RE { $_ };
if ( length $data [0] == $size ) {
push @names , $_ ;
}
}
@names ;
}
1;
|