Source Code Listing for resten.inc
<?php
// RestEn.inc - contains definition of RestEn (restriction endonucleases) class.
function parse_args($args)
{
$arguments = array();
preg_match_all("/\'[a-zA-Z0-9]*\'=>\'[^\']+\'/", $args, $match);
foreach($match[0] as $assign_string)
{
$temp = preg_split("/=>/", $assign_string);
$argname = $temp[0];
$argvalue = $temp[1];
$argname = eregi_replace("'", "", $argname);
$argvalue = eregi_replace("'", "", $argvalue);
$arguments[$argname] = $argvalue;
}
return $arguments;
}
$RestEn_DB = array(
'AasI' => array('GACNNNNNNGTC', 7),
'AatI' => array('AGGCCT', 3),
'AatII' => array('GACGTC', 5),
"AauI" => array("TGTACA", 1),
'AccI' => array('GTMKAC', 2),
"AccII" => array("CGCG", 2),
"AccIII" => array("TCCGGA",1),
'Acc16I' => array('TGCGCA', 3),
"Acc65I" => array("GGTACC", 1),
'Acc113I' => array('AGTACT', 3),
"AccB1I" => array("GGYRCC", 1),
'AccB7I' => array('CCANNNNNTGG', 7),
"AclI" => array("AACGTT", 2),
"AcsI" => array("RAATTY", 1),
'AcvI' => array('CACGTG', 3),
'AcyI' => array('GRCGYC', 2),
'AdeI' => array('CACNNNGTG', 6),
'AfaI' => array('GTAC', 2),
'AfeI' => array('AGCGCT', 3),
'AflI' => array('GGWCC', 1),
'AflII' => array('CTTAAG', 1),
'AflIII' => array('ACRYGT', 1),
'AgeI' => array('ACCGGT', 1),
'AhaIII' => array('TTTAAA', 3),
'AhdI' => array('GACNNNNNGTC', 6),
'AhlI' => array('ACTAGT', 1),
'AleI' => array('CACNNNNGTG', 5),
'AluI' => array('AGCT', 2),
'Alw21I' => array('GWGCWC', 5),
'Alw44I' => array('GTGCAC', 1),
'AlwNI' => array('CAGNNNCTG', 6),
'Ama87I' => array('CYCGRG', 1),
'AocI' => array('CCTNAGG', 2),
'Aor51HI' => array('AGCGCT', 3),
'ApaI' => array('GGGCCC', 5),
'ApaBI' => array('GCANNNNNTGC', 8),
'ApaLI' => array('GTGCAC', 1),
'ApoI' => array('RAATTY', 1),
'AscI' => array('GGCGCGCC', 2),
'AseI' => array('ATTAAT', 2),
'AsiAI' => array('ACCGGT', 1),
'AsiSI' => array('GCGATCGC', 5),
'AsnI' => array('ATTAAT', 2),
'AspI' => array('GACNNNGTC', 4),
'Asp700I' => array('GAANNNNTTC', 5),
'Asp718I' => array('GGTACC', 1),
'AspEI' => array('GACNNNNNGTC', 6),
'AspHI' => array('GWGCWC', 5),
'AspLEI' => array('GCGC', 3),
'AspS9I' => array('GGNCC', 1),
'AsuI' => array('GGNCC', 1),
'AsuII' => array('TTCGAA', 2),
'AsuC2I' => array('CCSGG', 2),
'AsuNHI' => array('GCTAGC', 1),
'AvaI' => array('CYCGRG', 1),
'AvaII' => array('GGWCC', 1),
'AviII' => array('TGCGCA', 3),
'AvrII' => array('CCTAGG', 1),
'AxyI' => array('CCTNAGG', 2),
'BalI' => array('TGGCCA', 3),
'BamHI' => array('GGATCC', 1),
'BanI' => array('GGYRCC', 1),
'BanII' => array('GRGCYC', 5),
'BanIII' => array('ATCGAT', 2),
'BbeI' => array('GGCGCC', 5),
'BbrPI' => array('CACGTG', 3),
'BbuI' => array('GCATGC', 5),
'Bbv12I' => array('GWGCWC', 5),
'BclI' => array('TGATCA', 1),
'BcnI' => array('CCSGG', 2),
'BcoI' => array('CYCGRG', 1),
'BcuI' => array('ACTAGT', 1),
'BetI' => array('WCCGGW', 1),
'BfaI' => array('CTAG', 1),
'BfmI' => array('CTRYAG', 1),
'BfrI' => array('CTTAAG', 1),
'BfrBI' => array('ATGCAT', 3),
'BfuCI' => array('GATC', 0),
'BglI' => array('GCCNNNNNGGC', 7),
'BglII' => array('AGATCT', 1),
'BlnI' => array('CCTAGG', 1),
'BloHII' => array('CTGCAG', 5),
'BlpI' => array('GCTNAGC', 2),
'Bme18I' => array('GGWCC', 1),
'Bme1390I' => array('CCNGG', 2),
'Bme1580I' => array('GKGCMC', 5),
'BmtI' => array('GCTAGC', 5),
'BmyI' => array('GDGCHC', 5),
'BoxI' => array('GACNNNNGTC', 5),
'Bpu14I' => array('TTCGAA', 2),
'Bpu1102I' => array('GCTNAGC', 2),
'Bsa29I' => array('ATCGAT', 2),
'BsaAI' => array('YACGTR', 3),
'BsaBI' => array('GATNNNNATC', 5),
'BsaHI' => array('GRCGYC', 2),
'BsaJI' => array('CCNNGG', 1),
'BsaOI' => array('CGRYCG', 4),
'BsaWI' => array('WCCGGW', 1),
'BscI' => array('ATCGAT', 2),
'Bsc4I' => array('CCNNNNNNNGG', 7),
'BscBI' => array('GGNNCC', 3),
'BscFI' => array('GATC', 0),
'Bse8I' => array('GATNNNNATC', 5),
'Bse21I' => array('CCTNAGG', 2),
'Bse118I' => array('RCCGGY', 1),
'BseAI' => array('TCCGGA', 1),
'BseBI' => array('CCWGG', 2),
'BseCI' => array('ATCGAT', 2),
'BseDI' => array('CCNNGG', 1),
'BseJI' => array('GATNNNNATC', 5),
'BseLI' => array('CCNNNNNNNGG', 7),
'BsePI' => array('GCGCGC', 1),
'BseSI' => array('GKGCMC', 5),
'BseX3I' => array('CGGCCG', 1),
'BshI' => array('GGCC', 2),
'Bsh1236I' => array('CGCG', 2),
'Bsh1285I' => array('CGRYCG', 4),
'BshFI' => array('GGCC', 2),
'BshNI' => array('GGYRCC', 1),
'BshTI' => array('ACCGGT', 1),
'BsiBI' => array('GATNNNNATC', 5),
'BsiCI' => array('TTCGAA', 2),
'BsiEI' => array('CGRYCG', 4),
'BsiHKAI' => array('GWGCWC', 5),
'BsiHKCI' => array('CYCGRG', 1),
'BsiLI' => array('CCWGG', 2),
'BsiMI' => array('TCCGGA', 1),
'BsiQI' => array('TGATCA', 1),
'BsiSI' => array('CCGG', 1),
'BsiWI' => array('CGTACG', 1),
'BsiXI' => array('ATCGAT', 2),
'BsiYI' => array('CCNNNNNNNGG', 7),
'BsiZI' => array('GGNCC', 1),
'BslI' => array('CCNNNNNNNGG', 7),
'BsoBI' => array('CYCGRG', 1),
'Bsp13I' => array('TCCGGA', 1),
'Bsp19I' => array('CCATGG', 1),
'Bsp68I' => array('TCGCGA', 3),
'Bsp106I' => array('ATCGAT', 2),
'Bsp119I' => array('TTCGAA', 2),
'Bsp120I' => array('GGGCCC', 1),
'Bsp143I' => array('GATC', 0),
'Bsp143II' => array('RGCGCY', 5),
'Bsp1286I' => array('GDGCHC', 5),
'Bsp1407I' => array('TGTACA', 1),
'Bsp1720I' => array('GCTNAGC', 2),
'BspA2I' => array('CCTAGG', 1),
'BspCI' => array('CGATCG', 4),
'BspDI' => array('ATCGAT', 2),
'BspEI' => array('TCCGGA', 1),
'BspHI' => array('TCATGA', 1),
'BspLI' => array('GGNNCC', 3),
'BspLU11I' => array('ACATGT', 1),
'BspMII' => array('TCCGGA', 1),
'BspTI' => array('CTTAAG', 1),
'BspT104I' => array('TTCGAA', 2),
'BspT107I' => array('GGYRCC', 1),
'BspXI' => array('ATCGAT', 2),
'BsrBRI' => array('GATNNNNATC', 5),
'BsrFI' => array('RCCGGY', 1),
'BsrGI' => array('TGTACA', 1),
'BssAI' => array('RCCGGY', 1),
'BssECI' => array('CCNNGG', 1),
'BssHI' => array('CTCGAG', 1),
'BssHII' => array('GCGCGC', 1),
'BssKI' => array('CCNGG', 0),
'BssNAI' => array('GTATAC', 3),
'BssT1I' => array('CCWWGG', 1),
'Bst98I' => array('CTTAAG', 1),
'Bst1107I' => array('GTATAC', 3),
'BstACI' => array('GRCGYC', 2),
'BstAPI' => array('GCANNNNNTGC', 7),
'BstBI' => array('TTCGAA', 2),
'BstBAI' => array('YACGTR', 3),
'Bst4CI' => array('ACNGT', 3),
'BstC8I' => array('GCNNGC', 3),
'BstDEI' => array('CTNAG', 1),
'BstDSI' => array('CCRYGG', 1),
'BstEII' => array('GGTNACC', 1),
'BstENI' => array('CCTNNNNNAGG', 5),
'BstENII' => array('GATC', 0),
'BstFNI' => array('CGCG', 2),
'BstH2I' => array('RGCGCY', 5),
'BstHHI' => array('GCGC', 3),
'BstHPI' => array('GTTAAC', 3),
'BstKTI' => array('GATC', 3),
'BstMAI' => array('CTGCAG', 5),
'BstMCI' => array('CGRYCG', 4),
'BstMWI' => array('GCNNNNNNNGC', 7),
'BstNI' => array('CCWGG', 2),
'BstNSI' => array('RCATGY', 5),
'BstOI' => array('CCWGG', 2),
'BstPI' => array('GGTNACC', 1),
'BstPAI' => array('GACNNNNGTC', 5),
'BstSCI' => array('CCNGG', 0),
'BstSFI' => array('CTRYAG', 1),
'BstSNI' => array('TACGTA', 3),
'BstUI' => array('CGCG', 2),
'Bst2UI' => array('CCWGG', 2),
'BstXI' => array('CCANNNNNNTGG', 8),
'BstX2I' => array('RGATCY', 1),
'BstYI' => array('RGATCY', 1),
'BstZI' => array('CGGCCG', 1),
'BstZ17I' => array('GTATAC', 3),
'Bsu15I' => array('ATCGAT', 2),
'Bsu36I' => array('CCTNAGG', 2),
'BsuRI' => array('GGCC', 2),
'BsuTUI' => array('ATCGAT', 2),
'BtgI' => array('CCRYGG', 1),
'BthCI' => array('GCNGC', 4),
'Cac8I' => array('GCNNGC', 3),
'CaiI' => array('CAGNNNCTG', 6),
'CauII' => array('CCSGG', 2),
'CciNI' => array('GCGGCCGC', 2),
'CelII' => array('GCTNAGC', 2),
'CfoI' => array('GCGC', 3),
'CfrI' => array('YGGCCR', 1),
'Cfr9I' => array('CCCGGG', 1),
'Cfr10I' => array('RCCGGY', 1),
'Cfr13I' => array('GGNCC', 1),
'Cfr42I' => array('CCGCGG', 4),
'ChaI' => array('GATC', 4),
'ClaI' => array('ATCGAT', 2),
'CpoI' => array('CGGWCCG', 2),
'CspI' => array('CGGWCCG', 2),
'Csp6I' => array('GTAC', 1),
'Csp45I' => array('TTCGAA', 2),
'CspAI' => array('ACCGGT', 1),
'CviAII' => array('CATG', 1),
'CviJI' => array('RGCY', 2),
'CviRI' => array('TGCA', 2),
'CviTI' => array('RGCY', 2),
'CvnI' => array('CCTNAGG', 2),
'DdeI' => array('CTNAG', 1),
'DpnI' => array('GATC', 2),
'DpnII' => array('GATC', 0),
'DraI' => array('TTTAAA', 3),
'DraII' => array('RGGNCCY', 2),
'DraIII' => array('CACNNNGTG', 6),
'DrdI' => array('GACNNNNNNGTC', 7),
'DsaI' => array('CCRYGG', 1),
'DseDI' => array('GACNNNNNNGTC', 7),
'EaeI' => array('YGGCCR', 1),
'EagI' => array('CGGCCG', 1),
'Eam1105I' => array('GACNNNNNGTC', 6),
'Ecl136II' => array('GAGCTC', 3),
'EclHKI' => array('GACNNNNNGTC', 6),
'EclXI' => array('CGGCCG', 1),
'Eco24I' => array('GRGCYC', 5),
'Eco32I' => array('GATATC', 3),
'Eco47I' => array('GGWCC', 1),
'Eco47III' => array('AGCGCT', 3),
'Eco52I' => array('CGGCCG', 1),
'Eco72I' => array('CACGTG', 3),
'Eco81I' => array('CCTNAGG', 2),
'Eco88I' => array('CYCGRG', 1),
'Eco91I' => array('GGTNACC', 1),
'Eco105I' => array('TACGTA', 3),
'Eco130I' => array('CCWWGG', 1),
'Eco147I' => array('AGGCCT', 3),
'EcoHI' => array('CCSGG', 0),
'EcoICRI' => array('GAGCTC', 3),
'EcoNI' => array('CCTNNNNNAGG', 5),
'EcoO65I' => array('GGTNACC', 1),
'EcoO109I' => array('RGGNCCY', 2),
'EcoRI' => array('GAATTC', 1),
'EcoRII' => array('CCWGG', 0),
'EcoRV' => array('GATATC', 3),
'EcoT14I' => array('CCWWGG', 1),
'EcoT22I' => array('ATGCAT', 5),
'EcoT38I' => array('GRGCYC', 5),
'EgeI' => array('GGCGCC', 3),
'EheI' => array('GGCGCC', 3),
'ErhI' => array('CCWWGG', 1),
'EsaBC3I' => array('TCGA', 2),
'EspI' => array('GCTNAGC', 2),
'FatI' => array('CATG', 0),
'FauNDI' => array('CATATG', 2),
'FbaI' => array('TGATCA', 1),
'FblI' => array('GTMKAC', 2),
'FmuI' => array('GGNCC', 4),
'FnuDII' => array('CGCG', 2),
'Fnu4HI' => array('GCNGC', 2),
'FriOI' => array('GRGCYC', 5),
'FseI' => array('GGCCGGCC', 6),
'FspI' => array('TGCGCA', 3),
'FspAI' => array('RTGCGCAY', 4),
'Fsp4HI' => array('GCNGC', 2),
'FunI' => array('AGCGCT', 3),
'FunII' => array('GAATTC', 1),
'HaeI' => array('WGGCCW', 3),
'HaeII' => array('RGCGCY', 5),
'HaeIII' => array('GGCC', 2),
'HapII' => array('CCGG', 1),
'HgiAI' => array('GWGCWC', 5),
'HgiCI' => array('GGYRCC', 1),
'HgiJII' => array('GRGCYC', 5),
'HhaI' => array('GCGC', 3),
'Hin1I' => array('GRCGYC', 2),
'Hin6I' => array('GCGC', 1),
'HinP1I' => array('GCGC', 1),
'HincII' => array('GTYRAC', 3),
'HindII' => array('GTYRAC', 3),
'HindIII' => array('AAGCTT', 1),
'HinfI' => array('GANTC', 1),
'HpaI' => array('GTTAAC', 3),
'HpaII' => array('CCGG', 1),
'Hpy8I' => array('GTNNAC', 3),
'Hpy99I' => array('CGWCG', 5),
'Hpy178III' => array('TCNNGA', 2),
'Hpy188I' => array('TCNGA', 3),
'Hpy188III' => array('TCNNGA', 2),
'HpyCH4I' => array('CATG', 3),
'HpyCH4III' => array('ACNGT', 3),
'HpyCH4IV' => array('ACGT', 1),
'HpyCH4V' => array('TGCA', 2),
'HpyF10VI' => array('GCNNNNNNNGC', 8),
'Hsp92I' => array('GRCGYC', 2),
'Hsp92II' => array('CATG', 4),
'HspAI' => array('GCGC', 1),
'ItaI' => array('GCNGC', 2),
'KasI' => array('GGCGCC', 1),
'KpnI' => array('GGTACC', 5),
'Kpn2I' => array('TCCGGA', 1),
'KspI' => array('CCGCGG', 4),
'Ksp22I' => array('TGATCA', 1),
'KspAI' => array('GTTAAC', 3),
'Kzo9I' => array('GATC', 0),
'LpnI' => array('RGCGCY', 3),
'LspI' => array('TTCGAA', 2),
'MabI' => array('ACCWGGT', 1),
'MaeI' => array('CTAG', 1),
'MaeII' => array('ACGT', 1),
'MaeIII' => array('GTNAC', 0),
'MamI' => array('GATNNNNATC', 5),
'MboI' => array('GATC', 0),
'McrI' => array('CGRYCG', 4),
'MfeI' => array('CAATTG', 1),
'MflI' => array('RGATCY', 1),
'MhlI' => array('GDGCHC', 5),
'MlsI' => array('TGGCCA', 3),
'MluI' => array('ACGCGT', 1),
'MluNI' => array('TGGCCA', 3),
'Mly113I' => array('GGCGCC', 2),
'Mph1103I' => array('ATGCAT', 5),
'MroI' => array('TCCGGA', 1),
'MroNI' => array('GCCGGC', 1),
'MroXI' => array('GAANNNNTTC', 5),
'MscI' => array('TGGCCA', 3),
'MseI' => array('TTAA', 1),
'MslI' => array('CAYNNNNRTG', 5),
'MspI' => array('CCGG', 1),
'Msp20I' => array('TGGCCA', 3),
'MspA1I' => array('CMGCKG', 3),
'MspCI' => array('CTTAAG', 1),
'MspR9I' => array('CCNGG', 2),
'MssI' => array('GTTTAAAC', 4),
'MstI' => array('TGCGCA', 3),
'MunI' => array('CAATTG', 1),
'MvaI' => array('CCWGG', 2),
'MvnI' => array('CGCG', 2),
'MwoI' => array('GCNNNNNNNGC', 7),
'NaeI' => array('GCCGGC', 3),
'NarI' => array('GGCGCC', 2),
'NciI' => array('CCSGG', 2),
'NcoI' => array('CCATGG', 1),
'NdeI' => array('CATATG', 2),
'NdeII' => array('GATC', 0),
'NgoAIV' => array('GCCGGC', 1),
'NgoMIV' => array('GCCGGC', 1),
'NheI' => array('GCTAGC', 1),
'NlaIII' => array('CATG', 4),
'NlaIV' => array('GGNNCC', 3),
'Nli3877I' => array('CYCGRG', 5),
'NmuCI' => array('GTSAC', 0),
'NotI' => array('GCGGCCGC', 2),
'NruI' => array('TCGCGA', 3),
'NruGI' => array('GACNNNNNGTC', 6),
'NsbI' => array('TGCGCA', 3),
'NsiI' => array('ATGCAT', 5),
'NspI' => array('RCATGY', 5),
'NspIII' => array('CYCGRG', 1),
'NspV' => array('TTCGAA', 2),
'NspBII' => array('CMGCKG', 3),
'OliI' => array('CACNNNNGTG', 5),
'PacI' => array('TTAATTAA', 5),
'PaeI' => array('GCATGC', 5),
'PaeR7I' => array('CTCGAG', 1),
'PagI' => array('TCATGA', 1),
'PalI' => array('GGCC', 2),
'PauI' => array('GCGCGC', 1),
'PceI' => array('AGGCCT', 3),
'PciI' => array('ACATGT', 1),
'PdiI' => array('GCCGGC', 3),
'PdmI' => array('GAANNNNTTC', 5),
'Pfl23II' => array('CGTACG', 1),
'PflBI' => array('CCANNNNNTGG', 7),
'PflFI' => array('GACNNNGTC', 4),
'PflMI' => array('CCANNNNNTGG', 7),
'PfoI' => array('TCCNGGA', 1),
'PinAI' => array('ACCGGT', 1),
'Ple19I' => array('CGATCG', 4),
'PmaCI' => array('CACGTG', 3),
'PmeI' => array('GTTTAAAC', 4),
'PmlI' => array('CACGTG', 3),
'Ppu10I' => array('ATGCAT', 1),
'PpuMI' => array('RGGWCCY', 2),
'PpuXI' => array('RGGWCCY', 2),
'PshAI' => array('GACNNNNGTC', 5),
'PshBI' => array('ATTAAT', 2),
'PsiI' => array('TTATAA', 3),
'Psp03I' => array('GGWCC', 4),
'Psp5II' => array('RGGWCCY', 2),
'Psp6I' => array('CCWGG', 0),
'Psp1406I' => array('AACGTT', 2),
'PspAI' => array('CCCGGG', 1),
'Psp124BI' => array('GAGCTC', 5),
'PspEI' => array('GGTNACC', 1),
'PspGI' => array('CCWGG', 0),
'PspLI' => array('CGTACG', 1),
'PspN4I' => array('GGNNCC', 3),
'PspOMI' => array('GGGCCC', 1),
'PspPI' => array('GGNCC', 1),
'PspPPI' => array('RGGWCCY', 2),
'PssI' => array('RGGNCCY', 5),
'PstI' => array('CTGCAG', 5),
'PsuI' => array('RGATCY', 1),
'PsyI' => array('GACNNNGTC', 4),
'PvuI' => array('CGATCG', 4),
'PvuII' => array('CAGCTG', 3),
'RcaI' => array('TCATGA', 1),
'RsaI' => array('GTAC', 2),
'RsrII' => array('CGGWCCG', 2),
'Rsr2I' => array('CGGWCCG', 2),
'SacI' => array('GAGCTC', 5),
'SacII' => array('CCGCGG', 4),
'SalI' => array('GTCGAC', 1),
'SanDI' => array('GGGWCCC', 2),
'SatI' => array('GCNGC', 2),
'SauI' => array('CCTNAGG', 2),
'Sau96I' => array('GGNCC', 1),
'Sau3AI' => array('GATC', 0),
'SbfI' => array('CCTGCAGG', 6),
'ScaI' => array('AGTACT', 3),
'SciI' => array('CTCGAG', 3),
'ScrFI' => array('CCNGG', 2),
'SdaI' => array('CCTGCAGG', 6),
'SduI' => array('GDGCHC', 5),
'SecI' => array('CCNNGG', 1),
'SelI' => array('CGCG', 0),
'SexAI' => array('ACCWGGT', 1),
'SfcI' => array('CTRYAG', 1),
'SfeI' => array('CTRYAG', 1),
'SfiI' => array('GGCCNNNNNGGCC', 8),
'SfoI' => array('GGCGCC', 3),
'Sfr274I' => array('CTCGAG', 1),
'Sfr303I' => array('CCGCGG', 4),
'SfuI' => array('TTCGAA', 2),
'SgfI' => array('GCGATCGC', 5),
'SgrAI' => array('CRCCGGYG', 2),
'SgrBI' => array('CCGCGG', 4),
'SinI' => array('GGWCC', 1),
'SlaI' => array('CTCGAG', 1),
'SmaI' => array('CCCGGG', 3),
'SmiI' => array('ATTTAAAT', 4),
'SmiMI' => array('CAYNNNNRTG', 5),
'SmlI' => array('CTYRAG', 1),
'SnaBI' => array('TACGTA', 3),
'SpaHI' => array('GCATGC', 5),
'SpeI' => array('ACTAGT', 1),
'SphI' => array('GCATGC', 5),
'SplI' => array('CGTACG', 1),
'SrfI' => array('GCCCGGGC', 4),
'Sse9I' => array('AATT', 0),
'Sse232I' => array('CGCCGGCG', 2),
'Sse8387I' => array('CCTGCAGG', 6),
'Sse8647I' => array('AGGWCCT', 2),
'SseBI' => array('AGGCCT', 3),
'SspI' => array('AATATT', 3),
'SspBI' => array('TGTACA', 1),
'SstI' => array('GAGCTC', 5),
'SstII' => array('CCGCGG', 4),
'StuI' => array('AGGCCT', 3),
'StyI' => array('CCWWGG', 1),
'SunI' => array('CGTACG', 1),
'SwaI' => array('ATTTAAAT', 4),
'TaaI' => array('ACNGT', 3),
'TaiI' => array('ACGT', 4),
'TaqI' => array('TCGA', 1),
'TasI' => array('AATT', 0),
'TatI' => array('WGTACW', 1),
'TauI' => array('GCSGC', 4),
'TelI' => array('GACNNNGTC', 4),
'TfiI' => array('GAWTC', 1),
'ThaI' => array('CGCG', 2),
'TliI' => array('CTCGAG', 1),
'Tru1I' => array('TTAA', 1),
'Tru9I' => array('TTAA', 1),
'TscI' => array('ACGT', 4),
'TseI' => array('GCWGC', 1),
'Tsp45I' => array('GTSAC', 0),
'Tsp509I' => array('AATT', 0),
'Tsp4CI' => array('ACNGT', 3),
'TspEI' => array('AATT', 0),
'Tth111I' => array('GACNNNGTC', 4),
'TthHB8I' => array('TCGA', 1),
'UnbI' => array('GGNCC', 0),
'Van91I' => array('CCANNNNNTGG', 7),
'Vha464I' => array('CTTAAG', 1),
'VneI' => array('GTGCAC', 1),
'VpaK11AI' => array('GGWCC', 0),
'VpaK11BI' => array('GGWCC', 1),
'VspI' => array('ATTAAT', 2),
'XagI' => array('CCTNNNNNAGG', 5),
'XapI' => array('RAATTY', 1),
'XbaI' => array('TCTAGA', 1),
'XceI' => array('RCATGY', 5),
'XcmI' => array('CCANNNNNNNNNTGG', 8),
'XhoI' => array('CTCGAG', 1),
'XhoII' => array('RGATCY', 1),
'XmaI' => array('CCCGGG', 1),
'XmaIII' => array('CGGCCG', 1),
'XmaCI' => array('CCCGGG', 1),
'XmaJI' => array('CCTAGG', 1),
'XmiI' => array('GTMKAC', 2),
'XmnI' => array('GAANNNNTTC', 5),
'XspI' => array('CTAG', 1),
'ZhoI' => array('ATCGAT', 2),
'ZraI' => array('GACGTC', 3),
'Zsp2I' => array('ATGCAT', 5)
);
[ Frames ] [ No Frames ] [ Top ] [ Bottom ]
class RestEn
{ // OPENS RestEn Class
var $name;
var $pattern;
var $cutpos;
var $length;
[ Frames ] [ No Frames ] [ Top ] [ Bottom ]
function CutSeq($seq, $options = "N")
{ // OPENS function CutSeq
if ($options == "N")
{ // OPENS if ($options == "N")
// patpos() returns: ( "PAT1" => (0, 12), "PAT2" => (7, 29, 53) )
$patpos_r = $seq->patpos($this->pattern, "I");
$frag = array();
foreach($patpos_r as $patkey => $pos_r)
{
$ctr = 0;
foreach($pos_r as $currindex)
{
$ctr++;
if ($ctr == 1)
{
// 1st fragment is everything to the left of the 1st occurrence of pattern
$frag[] = substr($seq->sequence, 0, $currindex + $this->cutpos);
$previndex = $currindex;
continue;
}
if (($currindex - $previndex) >= $this->cutpos)
{
$newcount = $currindex - $previndex;
$frag[] = substr($seq->sequence, $previndex + $this->cutpos, $newcount);
$previndex = $currindex;
}
else continue;
}
// The last (right-most) fragment.
$frag[] = substr($seq->sequence, $previndex + $this->cutpos);
}
return $frag;
} // CLOSES if ($options == "N")
elseif ($options == "O")
{ // OPENS elseif ($options == "O")
$pos_r = $seq->patposo($this->pattern, "I", $this->cutpos);
$ctr = 0;
foreach($pos_r as $currindex)
{
$ctr++;
if ($ctr == 1)
{
$frag[] = substr($seq->sequence, 0, $currindex + $this->cutpos);
$previndex = $currindex;
continue;
}
if (($currindex - $previndex) >= $this->cutpos)
{
$newcount = $currindex - $previndex;
$frag[] = substr($seq->sequence, $previndex + $this->cutpos, $newcount);
$previndex = $currindex;
}
else continue;
}
// The last (right-most) fragment.
$frag[] = substr($seq->sequence, $previndex + $this->cutpos);
return $frag;
} // CLOSES elseif ($options == "O")
} // CLOSES function CutSeq
[ Top ] [ Bottom ]
function RestEn($args){
global $RestEn_DB;
$arguments = parse_args($args);
if ($arguments["make"] == "custom")
{
$this->name = $arguments["name"];
$this->pattern = $arguments["pattern"];
$this->cutpos = $arguments["cutpos"];
$this->length = strlen($this->pattern);
$inner = array();
$inner[] = $arguments["pattern"];
$inner[] = $arguments["cutpos"];
$RestEn_DB[$this->name] = $inner;
}
else
{
// Look for given endonuclease in the RestEn_DB array.
$this->name = $arguments["name"];
$temp = $this->GetPattern($this->name);
if ($temp == FALSE)
die("Cannot find entry in restriction endonuclease database.");
else
{
$this->pattern = $temp;
$this->cutpos = $this->GetCutPos($this->name);
$this->length = strlen($this->pattern);
}
}
}
[ Top ] [ Bottom ]
function GetPattern($RestEn_Name){
global $RestEn_DB;
return $RestEn_DB[$RestEn_Name][0];
}
[ Top ] [ Bottom ]
function GetCutPos($RestEn_Name)
{
global $RestEn_DB;
return $RestEn_DB[$RestEn_Name][1];
}
[ Top ] [ Bottom ]
function GetLength($RestEn_Name = ""){
global $RestEn_DB;
if ($RestEn_Name == "") return strlen($this->pattern);
else return strlen($RestEn_DB[$RestEn_Name][0]);
}
[ Top ] [ Bottom ]
function FindRestEn($pattern = "", $cutpos = "", $plen = "")
{ // OPENS function FindRestEn().
global $RestEn_DB;
// 5 Cases: pattern only, cutpos only, patternlength only
// pattern and cutpos, cutpos and patternlength
$RestEn_List = array();
// Case 1: Pattern only
if (($pattern != "") and ($cutpos == "") and ($plen == ""))
{
foreach($RestEn_DB as $key => $value)
if ($value[0] == $pattern)
$RestEn_List[] = $key;
return $RestEn_List;
}
// Case 2: Cutpos only
if (($pattern == "") and ($cutpos != "") and ($plen == ""))
{ // OPENS if (($pattern == "") and ($cutpos != "") and ($plen == ""))
$firstchar = substr($cutpos, 0, 1);
$first2chars = substr($cutpos, 0, 2);
if (gettype($cutpos) == "string")
{ // OPENS if (gettype($cutpos) == "string")
if (preg_match("/^<\d+$/", $cutpos))
{
foreach($RestEn_DB as $key => $value)
if ($value[1] < (int) substr($cutpos,1))
$RestEn_List[] = $key;
return $RestEn_List;
}
elseif (preg_match("/^>\d+$/", $cutpos))
{
foreach($RestEn_DB as $key => $value)
if ($value[1] > (int) substr($cutpos,1))
$RestEn_List[] = $key;
return $RestEn_List;
}
elseif (preg_match("/^>=\d+$/", $cutpos))
{
foreach($RestEn_DB as $key => $value)
if ($value[1] >= (int) substr($cutpos,2))
$RestEn_List[] = $key;
return $RestEn_List;
}
elseif (preg_match("/^<=\d+$/", $cutpos))
{
foreach($RestEn_DB as $key => $value)
if ($value[1] <= (int) substr($cutpos,2))
$RestEn_List[] = $key;
return $RestEn_List;
}
elseif (preg_match("/^=\d+$/", $cutpos))
{
foreach($RestEn_DB as $key => $value)
if ($value[1] == substr($cutpos,1))
$RestEn_List[] = $key;
return $RestEn_List;
}
else die("Malformed cutpos parameter.");
} // CLOSES if (gettype($cutpos) == "string")
elseif (gettype($cutpos) == "integer")
{
foreach($RestEn_DB as $key => $value)
if ($value[1] == $cutpos)
$RestEn_List[] = $key;
return $RestEn_List;
}
} // CLOSES if (($pattern == "") and ($cutpos != "") and ($plen == ""))
// Case 3: Patternlength only
if (($pattern == "") and ($cutpos == "") and ($plen != ""))
{
foreach($RestEn_DB as $key => $value)
if (strlen($value[0]) == $plen)
$RestEn_List[] = $key;
return $RestEn_List;
}
// Case 4: Pattern and cutpos only
if (($pattern != "") and ($cutpos != "") and ($plen == ""))
{
foreach($RestEn_DB as $key => $value)
if (($value[0] == $pattern) and ($value[1] == $cutpos))
$RestEn_List[] = $key;
return $RestEn_List;
}
// Case 5: Cutpos and plen only.
if (($pattern == "") and ($cutpos != "") and ($plen != ""))
{
foreach($RestEn_DB as $key => $value)
if (($value[1] == $cutpos) and (strlen($value[0]) == $plen))
$RestEn_List[] = $key;
return $RestEn_List;
}
die("Invalid combination of function parameters.");
} // CLOSES function FindRestEn().
} // CLOSES RestEn Class
?>
Back to Top. Back to Home Page.
|