// author Joseba Bikandi
// license GNU GPL v2
// http://www.biophp.org/minitools/restriction_digest
error_reporting(1);
// Limit the length of input text to avoid overusage of CPU
$maxtext=1000000;
// IF VENDORS FOR ENDONUCLEASES ARE REQUETED (pe. ?endo=EcoRI), RESPOND AND DIE
// Two functions (in the bottom) are used to respond
if ($_GET["endo"]){
// Get array of companies selling each endonuclease
$vendors=endonuclease_vendors();
// get array of endonucleases requested
$endonuclease=preg_split("/,/",$_GET["endo"]);
// start printing results
print "
Vendors for ".$_GET["endo"]."\n\n";
print "\n";
if (strpos($_GET["endo"],",")>0){print "All endonucleases bellow are isoschizomers
\n";}
// print vendor for each endonuclease (uses a function)
foreach ($endonuclease as $enzyme){
show_vendors ($vendors[$enzyme],$enzyme);
}
print "\n";
die(); // die
}
// IF NO DATA IS POSTED, PRINT THE FORM AND DIE
// the form is within a function
if (!$_POST){print_form(); die();}
// WHEN DATA IS POSTED, YOU WILL GET HERE
// Obtain sequence
$text= $_POST["sequence"];
// apply limit
if (strlen($text)>$maxtext){die ("Error:
The maximum length of input string accepted is $maxtext characters");}
// Extract sequences, which will be stored in an array
$sequence = extract_sequences($text);
// Obtain the other parameters related to endonucleases
$minimun=$_POST["minimum"];
$retype=$_POST["retype"];
$defined_sq=$_POST["defined"];
$wre=$_POST["wre"];
// We will get info for endonucleases. The info is included within 3 different functions in the bottom (for Type II, IIb and IIs enzymes)
// Type II endonucleases are always used
$enzymes_array=get_array_of_Type_II_endonucleases();
// if TypeIIs endonucleases are requested, get them
if (($_POST["IIs"]==1 and $defined_sq!=1) or $wre){$enzymes_array=array_merge ($enzymes_array,get_array_of_Type_IIs_endonucleases());asort($enzymes_array);}
// if TypeIIb endonucleases are requested, get them
if (($_POST["IIb"]==1 and $defined_sq!=1) or $wre){$enzymes_array=array_merge ($enzymes_array,get_array_of_Type_IIb_endonucleases());asort($enzymes_array);}
// Remove from the list of endonucleases the ones
// not matching the criteria in the form: $minimun, $retype and $defined_sq
$enzymes_array=reduce_enzymes_array($enzymes_array,$minimun,$retype,$defined_sq,$wre);
//print "";print_r($enzymes_array);
// RESTRICTION DIGEST OF SEQUENCE
foreach($sequence as $number =>$val){
$digestion[$number]=restriction_digest($enzymes_array,$sequence[$number]["seq"]);
}
//print "";print_r($digestion);
// START PRINTING OUT THE RESPONSE PAGE
print "Restriction enzyme digest of DNA";
// PRINT TABLE IN THE TOP WITH SEQUENCE
// show sequence in the top when requested (showcode==1)
if ($_POST["showcode"]==1){
print "";
foreach($sequence as $key => $val){
$seq=$sequence[$key]["seq"];
if ($sequence[$key]["name"]!=""){print ">".$sequence[$key]["name"]." |
\n";}
print "Lengh of code: ".strlen($seq)."\nG+C=".floor((substr_count($seq,"G")+substr_count($seq,"C"))*100/strlen($seq))."%\n\n";
$s=0;
$rtop=chunk_split($seq,10,' ');
while ($s<=strlen($rtop)){
$rline=substr ($rtop, $s, 110);
print "$rline ";
$s=$s+110;
if (strlen($rline)==110){print $s/1.1;}
print "\n";
}
print " |
\n";
}
print "
\n";
}
// OUTPUT RESTRICTION RESULTS: Start table
print "\n";
print "\n";
print "Restriction enzyme | ";
if (sizeof($sequence)==1){
print "Cuts | Positions | \n";
}else{
foreach ($sequence as $key => $val){
$counter=$key+1;
print "Seq. ".$counter." | ";
}
}
print "";
// OUTPUT RESTRICTION RESULTS: one line per restriction enzyme
if (sizeof($sequence)==1){
// Only one input sequence available
foreach($digestion[0] as $enzyme => $val){
print "\n";
print "".$enzymes_array[$enzyme][0]." ";
print " ".$enzymes_array[$enzyme][1]." | ";
if (strpos($enzyme,"#")>0){$ncuts=sizeof($digestion[0][$enzyme]["cuts"])*2;}else{$ncuts=sizeof($digestion[0][$enzyme]["cuts"]);}
print "".$ncuts." | ";
foreach ($digestion[0][$enzyme]["cuts"] as $pos => $v){
if (strpos($enzyme,"#")>0){
$second_cut=$pos+$enzymes_array[$enzyme][3]-$enzymes_array[$enzyme][4];
print "$pos/$second_cut\n";
}else{
print "$pos\n";
}
}
print " | ";
}
}else{
// Two or more sequence available
foreach($enzymes_array as $enzyme =>$val){
$checker=0;
if ($_POST["onlydiff"]!=1 or $wre){
// Show all restriction results, when endonuclease cuts at least one sequence
foreach($sequence as $number =>$val2){
if (sizeof($digestion[$number][$enzyme]["cuts"])>0){$checker=1;}
}
}else{
// Show restriction results when they are different
$temp_data=sizeof($digestion[0][$enzyme]["cuts"]);
if ($temp_data>0){$temp_array=$digestion[0][$enzyme]["cuts"];}
foreach($sequence as $number =>$val2){
if ($number==0){continue;}
$temp_data2=sizeof($digestion[$number][$enzyme]["cuts"]);
if ($temp_data!=$temp_data2){$checker=1;break;}
if ($temp_data2>0){
$temp_array=array_diff($temp_array,$digestion[$number][$enzyme]["cuts"]);
if (sizeof($temp_array)>0){$checker=1;break;}
}
}
}
if ($checker==0){continue;}
print "\n";
print "".$enzymes_array[$enzyme][0]." ";
print " ".$enzymes_array[$enzyme][1]." | ";
foreach($sequence as $number =>$val2){
if(!$digestion[$number][$enzyme]){print " | ";continue;}
print "";
foreach ($digestion[$number][$enzyme]["cuts"] as $pos => $nothing){
if (strpos($enzyme,"#")>0){
$second_cut=$pos+$enzymes_array[$enzyme][3]-$enzymes_array[$enzyme][4];
print "$pos/$second_cut\n";
}else{
print "$pos\n";
}
}
print " | ";
}
print " ";
}
}
// OUTPUT RESTRICTION RESULTS: end of table
print " |
";
//#########################################################################
//######################### FUNCTIONS #############################
//#########################################################################
// ################### Print form
function print_form (){
?>
Restriction enzyme digest of DNA
}
function reduce_enzymes_array($enzymes_array,$minimun,$retype,$defined_sq,$wre){
// if $wre => all endonucleases but the selected one must be removed
if ($wre){
foreach($enzymes_array as $key => $val){
if (strpos(" ,".$enzymes_array[$key][0].",",$wre)>0){
$new_array[$wre]=$enzymes_array[$key];return $new_array;
}
}
}
// remove endonucleases which do not match requeriments
foreach ($enzymes_array as $enzyme => $val){
// if retype==1 -> only Blund ends (continue for rest)
if ($retype==1 and $enzymes_array[$enzyme][5]!=0){continue;}
// if retype==2 -> only Overhang end (continue for rest)
if ($retype==2 and $enzymes_array[$enzyme][5]==0){continue;}
// Only endonucleases with which recognized in template a minimum of bases (continue for rest)
if ($minimun>$enzymes_array[$enzyme][6]){continue;}
// if defined sequence selected, no N (".") or "|" in pattern
if ($defined_sq==1){
if (strpos($enzymes_array[$enzyme][2],".")>0 or strpos($enzymes_array[$enzyme][2],"|")>0){continue;}
}
$enzymes_array2[$enzyme]=$enzymes_array[$enzyme];
}
return $enzymes_array2;
}
// ################### CALCULATE DIGESTION RESULTS
// will return an array like this
// $digestion[$enzyme]["cuts"] - with number of cuts within the sequence
//
//
function restriction_digest($enzymes_array,$sequence){
foreach ($enzymes_array as $enzyme => $val){
// this is to put together results for IIb endonucleases, which are computed as "enzyme_name" and "enzyme_name@"
$enzyme2=str_replace("@","",$enzyme);
// split sequence based on pattern from restriction enzyme
$fragments = preg_split("/".$enzymes_array[$enzyme][2]."/", $sequence,-1,PREG_SPLIT_DELIM_CAPTURE);
reset ($fragments);
$maxfragments=sizeof($fragments);
// when sequence is cleaved ($maxfragments>1) start further calculations
if ($maxfragments>1){
$recognitionposition=strlen($fragments[0]);
$counter_cleavages=0;
$list_of_cleavages="";
// for each frament generated, calculate cleavage position,
// add it to a list, and add 1 to counter
for ($i=2;$i<$maxfragments; $i+=2){
$cleavageposition=$recognitionposition+$enzymes_array[$enzyme][4];
$digestion[$enzyme2]["cuts"][$cleavageposition]="";
// As overlapping may occur for many endonucleases,
// a subsequence starting in position 2 of fragment is calculate
$subsequence=substr($fragments[$i-1],1).$fragments[$i].substr($fragments[$i+1],0,40);
$subsequence=substr($subsequence,0,2*$enzymes_array[$enzyme][3]-2);
//Previous process is repeated
// split subsequence based on pattern from restriction enzyme
$fragments_subsequence = preg_split($enzymes_array[$enzyme][2],$subsequence);
// when subsequence is cleaved start further calculations
if (sizeof($fragments_subsequence)>1){
// for each fragment of subsequence, calculate overlapping cleavage position,
// add it to a list, and add 1 to counter
$overlapped_cleavage=$recognitionposition+1+strlen($fragments_subsequence[0])+$enzymes_array[$enzyme][4];
$digestion[$enzyme2]["cuts"][$overlapped_cleavage]="";
}
// this is a counter for position
$recognitionposition+=strlen($fragments[$i-1])+strlen($fragments[$i]);
}
}
}
return $digestion;
}
// Sequences in input text are transferred to an array
function extract_sequences($text){
if (substr_count($text,">")==0){
$sequence[0]["seq"] = preg_replace ("/\W|\d/", "", strtoupper ($text));
}else{
$arraysequences=preg_split("/>/", $text,-1,PREG_SPLIT_NO_EMPTY);
$counter=0;
foreach($arraysequences as $key =>$val){
$seq=substr($val,strpos($val,"\n"));
$seq = preg_replace ("/\W|\d/", "", strtoupper($seq));
if (strlen($seq)>0){
$sequence[$counter]["seq"] = $seq;
$sequence[$counter]["name"]=substr($val,0,strpos($val,"\n"));
$counter++;
}
}
}
return $sequence;
}
// ################### Array of endonucleases
function get_array_of_Type_II_endonucleases(){
// this array includes all endonucleases related information required in this script
// All enzymes with the same recognition pattern are grouped
// The following information is provided for each endonuclease
// "AasI" => array( First endonuclease of the list
// 0 => "AasI,DrdI,DseDI", All endonucleases recognizing the same pattern
// 1 => "GACNN_NN'NNGTC", Recognition pattern
// 2 => "(GAC......GTC)", Recognition pattern for computing
// 3 => 12, Length of all recognition pattern
// 4 => 7, Cleavage position in upper strand
// 5 => -2, Cleavage position in lower strand, relative to previous one
// 6 => 6 Number of non-N bases within recognition pattern
// ),
$enzymes_array = Array(
"AasI" => array("AasI,DrdI,DseDI","GACNN_NN'NNGTC","(GAC......GTC)",12,7,-2,6),
"AatI" => array("AatI,Eco147I,PceI,SseBI,StuI","AGG'CCT","(AGGCCT)",6,3,0,6),
"AatII" => array("AatII","G_ACGT'C","(GACGTC)",6,5,-4,6),
"AbsI" => array("AbsI","CC'TCGA_GG","(CCTCGAGG)",8,2,4,8),
"Acc16I" => array("Acc16I,AviII,FspI,NsbI","TGC'GCA","(TGCGCA)",6,3,0,6),
"Acc65I" => array("Acc65I,Asp718I","G'GTAC_C","(GGTACC)",6,1,4,6),
"AccB1I" => array("AccB1I,BanI,BshNI,BspT107I","G'GYRC_C","(GGCACC|GGCGCC|GGTACC|GGTGCC)",6,1,4,6),
"AccB7I" => array("AccB7I,BasI,PflMI,Van91I","CCAN_NNN'NTGG","(CCA.....TGG)",11,7,-3,6),
"AccBSI" => array("AccBSI,BsrBI,MbiI","CCG'CTC","(CCGCTC|GAGCGG)",6,3,0,6),
"AccI" => array("AccI,FblI,XmiI","GT'MK_AC","(GTCTAC|GTCGAC|GTATAC|GTAGAC)",6,2,2,6),
"AccII" => array("AccII,Bsh1236I,BspFNI,BstFNI,BstUI,MvnI","CG'CG","(CGCG)",4,2,0,4),
"AccIII" => array("AccIII,Aor13HI,BseAI,Bsp13I,BspEI,Kpn2I,MroI","T'CCGG_A","(TCCGGA)",6,1,4,6),
"AciI" => array("AciI,BspACI,SsiI","C'CG_C or G'CG_G","(CCGC|GCGG)",4,1,2,4),
"AclI" => array("AclI,Psp1406I","AA'CG_TT","(AACGTT)",6,2,2,6),
"AcoI" => array("AcoI,CfrI,EaeI","Y'GGCC_R","(CGGCCA|CGGCCG|TGGCCA|TGGCCG)",6,1,4,6),
"AcsI" => array("AcsI,ApoI,XapI","R'AATT_Y","(AAATTC|AAATTT|GAATTC|GAATTT)",6,1,4,6),
"AcvI" => array("AcvI,BbrPI,Eco72I,PmaCI,PmlI,PspCI","CAC'GTG","(CACGTG)",6,3,0,6),
"AcyI" => array("AcyI,BsaHI,BssNI,BstACI,Hin1I,Hsp92I","GR'CG_YC","(GACGCC|GACGTC|GGCGCC|GGCGTC)",6,2,2,6),
"AdeI" => array("AdeI,DraIII","CAC_NNN'GTG","(CAC...GTG)",9,6,-3,6),
"AfaI" => array("AfaI,RsaI","GT'AC","(GTAC)",4,2,0,4),
"AfeI" => array("AfeI,Aor51HI,Eco47III","AGC'GCT","(AGCGCT)",6,3,0,6),
"AfiI" => array("AfiI,Bsc4I,BseLI,BsiYI,BslI","CCNN_NNN'NNGG","(CC.......GG)",11,7,-3,4),
"AflII" => array("AflII,BfrI,BspTI,Bst98I,MspCI,Vha464I","C'TTAA_G","(CTTAAG)",6,1,4,6),
"AflIII" => array("AflIII","A'CRYG_T","(ACACGT|ACATGT|ACGCGT|ACGTGT)",6,1,4,6),
"AgeI" => array("AgeI,AsiGI,BshTI,CspAI,PinAI","A'CCGG_T","(ACCGGT)",6,1,4,6),
"AhdI" => array("AhdI,AspEI,BmeRI,DriI,Eam1105I,EclHKI","GACNN_N'NNGTC","(GAC.....GTC)",11,6,-1,6),
"AhlI" => array("AhlI,BcuI,SpeI","A'CTAG_T","(ACTAGT)",6,1,4,6),
"AjiI" => array("AjiI,BmgBI,BtrI","CAC'GTC","(CACGTC|GACGTG)",6,3,0,6),
"AjnI" => array("AjnI,EcoRII,Psp6I,PspGI","'CCWGG_","(CCAGG|CCTGG)",5,0,5,5),
"AleI" => array("AleI,OliI","CACNN'NNGTG","(CAC....GTG)",10,5,0,6),
"AluI" => array("AluI","AG'CT","(AGCT)",4,2,0,4),
"Alw21I" => array("Alw21I,BsiHKAI,Bbv12I","G_WGCW'C","(GAGCAC|GAGCTC|GTGCAC|GTGCTC)",6,5,-4,6),
"Alw44I" => array("Alw44I,ApaLI,VneI","G'TGCA_C","(GTGCAC)",6,1,4,6),
"AlwNI" => array("AlwNI,CaiI","CAG_NNN'CTG","(CAG...CTG)",9,6,-3,6),
"Ama87I" => array("Ama87I,AvaI,BmeT110I,BsiHKCI,BsoBI,Eco88I","C'YCGR_G","(CCCGAG|CCCGGG|CTCGAG|CTCGGG)",6,1,4,6),
"ApaI" => array("ApaI","G_GGCC'C","(GGGCCC)",6,5,-4,6),
"ApeKI" => array("ApeKI,TseI","G'CWG_C","(GCAGC|GCTGC)",5,1,3,5),
"AscI" => array("AscI,PalAI,SgsI","GG'CGCG_CC","(GGCGCGCC)",8,2,4,8),
"AseI" => array("AseI,PshBI,VspI","AT'TA_AT","(ATTAAT)",6,2,2,6),
"AsiSI" => array("AsiSI,RgaI,SgfI","GCG_AT'CGC","(GCGATCGC)",8,5,-2,8),
"Asp700I" => array("Asp700I,MroXI,PdmI,XmnI","GAANN'NNTTC","(GAA....TTC)",10,5,0,6),
"AspA2I" => array("AspA2I,AvrII,BlnI,XmaJI","C'CTAG_G","(CCTAGG)",6,1,4,6),
"AspI" => array("AspI,PflFI,PsyI,Tth111I","GACN'N_NGTC","(GAC...GTC)",9,4,1,6),
"AspLEI" => array("AspLEI,BstHHI,CfoI,HhaI","G_CG'C","(GCGC)",4,3,-2,4),
"AspS9I" => array("AspS9I,BmgT120I,Cfr13I,Sau96I","G'GNC_C","(GG.CC)",5,1,3,4),
"AssI" => array("AssI,BmcAI,ScaI,ZrmI","AGT'ACT","(AGTACT)",6,3,0,6),
"AsuC2I" => array("AsuC2I,BcnI,BpuMI,NciI","CC'S_GG","(CCGGG|CCCGG)",5,2,1,5),
"AsuNHI" => array("AsuNHI,BspOI,NheI","G'CTAG_C","(GCTAGC)",6,1,4,6),
"AvaII" => array("AvaII,Bme18I,Eco47I,SinI,VpaK11BI","G'GWC_C","(GGACC|GGTCC)",5,1,3,5),
"AxyI" => array("AxyI,Bse21I,Bsu36I,Eco81I","CC'TNA_GG","(CCT.AGG)",7,2,3,6),
"BalI" => array("BalI,MlsI,MluNI,MscI,Msp20I","TGG'CCA","(TGGCCA)",6,3,0,6),
"BamHI" => array("BamHI","G'GATC_C","(GGATCC)",6,1,4,6),
"BanII" => array("BanII,Eco24I,EcoT38I,FriOI","G_RGCY'C","(GAGCCC|GAGCTC|GGGCCC|GGGCTC)",6,5,-4,6),
"BanIII" => array("BanIII,Bsa29I,BseCI,BshVI,BspDI,BspXI,Bsu15I,BsuTUI,ClaI","AT'CG_AT","(ATCGAT)",6,2,2,6),
"BauI" => array("BauI","C'ACGA_G'","(CACGAG)",6,1,4,6),
"BbeI" => array("BbeI","G_GCGC'C","(GGCGCC)",6,5,-4,6),
"BbuI" => array("BbuI,PaeI,SphI","G_CATG'C","(GCATGC)",6,5,-4,6),
"BbvCI" => array("BbvCI","CC'TCA_GC or GC'TGA_GG","(CCTCAGC|GCTGAGG)",7,2,3,7),
"BclI" => array("BclI,FbaI,Ksp22I","T'GATC_A","(TGATCA)",6,1,4,6),
"BfaI" => array("BfaI,FspBI,MaeI,XspI","C'TA_G","(CTAG)",4,1,2,4),
"BfmI" => array("BfmI,BstSFI,SfcI","C'TRYA_G","(CTACAG|CTATAG|CTGCAG|CTGTAG)",6,1,4,6),
"BfrBI" => array("BfrBI","ATG'CAT","(ATGCAT)",6,3,0,6),
"BfuCI" => array("BfuCI,Bsp143I,BssMI,BstMBI,DpnII,Kzo9I,MboI,NdeII,Sau3AI","'GATC_","(GATC)",4,0,4,4),
"BglI" => array("BglI","GCCN_NNN'NGGC","(GCC.....GGC)",11,7,-3,6),
"BglII" => array("BglII","A'GATC_T","(AGATCT)",6,1,4,6),
"BisI" => array("BisI,BlsI,Fnu4HI,Fsp4HI,GluI,ItaI,SatI","GC'N_GC","(GC.GC)",5,2,1,4),
"BlpI" => array("BlpI,Bpu1102I,Bsp1720I,CelII","GC'TNA_GC","(GCT.AGC)",7,2,3,6),
"Bme1390I" => array("Bme1390I,MspR9I,ScrFI","CC'N_GG","(CC.GG)",5,2,1,4),
"Bme1580I" => array("Bme1580I,BseSI,BstSLI","G_KGCM'C","(GGGCAC|GGGCCC|GTGCAC|GTGCCC)",6,5,-4,6),
"BmiI" => array("BmiI,BspLI,NlaIV,PspN4I","GGN'NCC","(GG..CC)",6,3,0,4),
"BmrFI" => array("BmrFI,BssKI,BstSCI,StyD4I","'CCNGG_","(CC.GG)",5,0,5,4),
"BmtI" => array("BmtI","G_CTAG'C","(GCTAGC)",6,5,-4,6),
"BoxI" => array("BoxI,PshAI,BstPAI","GACNN'NNGTC","(GAC....GTC)",10,5,0,6),
"Bpu10I" => array("Bpu10I","CC'TNA_GC","(CCT.AGC|GCT.AGG)",7,2,3,6),
"Bpu14I" => array("Bpu14I,Bsp119I,BspT104I,BstBI,Csp45I,NspV,SfuI","TT'CG_AA","(TTCGAA)",6,2,2,6),
"BpvUI" => array("BpvUI,MvrI,PvuI,Ple19I","CG_AT'CG","(CGATCG)",6,4,-2,6),
"BsaAI" => array("BsaAI,BstBAI,Ppu21I","YAC'GTR","(CACGTA|CACGTG|TACGTA|TACGTG)",6,3,0,6),
"BsaBI" => array("BsaBI,Bse8I,BseJI,MamI","GATNN'NNATC","(GAT....ATC)",10,5,0,6),
"BsaJI" => array("BsaJI,BseDI,BssECI","C'CNNG_G","(CC..GG)",6,1,4,4),
"BsaWI" => array("BsaWI","W'CCGG_W","(ACCGGA|ACCGGT|TCCGGA|TCCGGT)",6,1,4,6),
"Bse118I" => array("Bse118I,BsrFI,BssAI,Cfr10I","R'CCGG_Y","(ACCGGC|ACCGGT|GCCGGC|GCCGGT)",6,1,4,6),
"BseBI" => array("BseBI,BstNI,BstOI,Bst2UI,MvaI","CC'W_GG","(CCAGG|CCTGG)",5,2,1,5),
"BsePI" => array("BsePI,BssHII,PauI","G'CGCG_C","(GCGCGC)",6,1,4,6),
"BseX3I" => array("BseX3I,BstZI,EagI,EclXI,Eco52I","C'GGCC_G","(CGGCCG)",6,1,4,6),
"BseYI" => array("BseYI","C'CCAG_C","(CCCAGC|GCTGGG)",6,1,4,6),
"Bsh1285I" => array("Bsh1285I,BsiEI,BstMCI","CG_RY'CG","(CGACCG|CGATCG|CGGCCG|CGGTCG)",6,4,-2,6),
"BshFI" => array("BshFI,BsnI,BspANI,BsuRI,HaeIII,PhoI","GG'CC","(GGCC)",4,2,0,4),
"BsiSI" => array("BsiSI,HapII,HpaII,MspI","C'CG_G","(CCGG)",4,1,2,4),
"BsiWI" => array("BsiWI,Pfl23II,PspLI","C'GTAC_G","(CGTACG)",6,1,4,6),
"Bsp120I" => array("Bsp120I,PspOMI","G'GGCC_C","(GGGCCC)",6,1,4,6),
"Bsp1286I" => array("Bsp1286I,MhlI,SduI","G_DGCH'C","(GAGCAC|GAGCTC|GAGCCC|GTGCAC|GTGCTC|GTGCCC|GGGCAC|GGGCTC|GGGCCC)",6,5,-4,6),
"Bsp1407I" => array("Bsp1407I,BsrGI,BstAUI","T'GTAC_A","(TGTACA)",6,1,4,6),
"Bsp19I" => array("Bsp19I,NcoI","C'CATG_G","(CCATGG)",6,1,4,6),
"Bsp68I" => array("Bsp68I,BtuMI,NruI","TCG'CGA","(TCGCGA)",6,3,0,6),
"BspHI" => array("BspHI,PagI,RcaI","T'CATG_A","(TCATGA)",6,1,4,6),
"BspLU11I" => array("BspLU11I,PciI,PscI","A'CATG_T","(ACATGT)",6,1,4,6),
"BspMAI" => array("BspMAI,PstI","C_TGCA'G","(CTGCAG)",6,5,-4,6),
"BssNAI" => array("BssNAI,Bst1107I,BstZ17I","GTA'TAC","(GTATAC)",6,3,0,6),
"BssSI" => array("BssSI,Bst2BI","C'ACGA_G or C'TCGT_G","(CACGAG|CTCGTG)",6,1,4,6),
"BssT1I" => array("BssT1I,StyI,Eco130I,EcoT14I,ErhI","C'CWWG_G","(CCAAGG|CCATGG|CCTAGG|CCTTGG)",6,1,4,6),
"Bst4CI" => array("Bst4CI,HpyCH4III,TaaI","AC_N'GT","(AC.GT)",5,3,-1,4),
"BstH2I" => array("BstH2I,HaeII","R_GCGC'Y","(AGCGCC|AGCGCT|GGCGCC|GGCGCT)",6,5,-4,6),
"BstAPI" => array("BstAPI","GCAN_NNN'NTGC","(GCA.....TGC)",11,7,-3,6),
"BstC8I" => array("BstC8I,Cac8I","GCN'NGC","(GC..GC)",6,3,0,4),
"BstDEI" => array("BstDEI,DdeI,HpyF3I","C'TNA_G","(CT.AG)",5,1,3,4),
"BstDSI" => array("BstDSI,BtgI","C'CRYG_G","(CCACGG|CCATGG|CCGCGG|CCGTGG)",6,1,4,6),
"BstEII" => array("BstEII,BstPI,Eco91I,EcoO65I,PspEI","G'GTNAC_C","(GGT.ACC)",7,1,5,6),
"BstENI" => array("BstENI,EcoNI,XagI","CCTNN'N_NNAGG","(CCT.....AGG)",11,5,1,6),
"BstKTI" => array("BstKTI","G_AT'C","(GATC)",4,3,2,4),
"BstMWI" => array("BstMWI,MwoI","GCNN_NNN'NNGC","(GC.......GC)",11,7,-3,4),
"BstNSI" => array("BstNSI,NspI,XceI","R_CATG'Y","(ACATGC|ACATGT|GCATGC|GCATGT)",6,5,-4,6),
"BstSNI" => array("BstSNI,Eco105I,SnaBI","TAC'GTA","(TACGTA)",6,3,0,6),
"BstX2I" => array("BstX2I,BstYI,MflI,PsuI,XhoII","R'GATC_Y","(AGATCC|AGATCT|GGATCC|GGATCT)",6,1,4,6),
"BstXI" => array("BstXI","CCAN_NNNN'NTGG","(CCA......TGG)",12,8,-4,6),
"CciNI" => array("CciNI,NotI","GC'GGCC_GC","(GCGGCCGC)",8,2,4,8),
"Cfr42I" => array("Cfr42I,KspI,SacII,Sfr303I,SgrBI,SstII","CC_GC'GG","(CCGCGG)",6,4,-2,6),
"Cfr9I" => array("Cfr9I,TspMI,XmaI,XmaCI","C'CCGG_G","(CCCGGG)",6,1,4,6),
"CpoI" => array("CpoI,CspI,RsrII,Rsr2I","CG'GWC_CG","(CGGACCG|CGGTCCG)",7,2,3,7),
"Csp6I" => array("Csp6I,CviQI,RsaNI","G'TA_C","(GTAC)",4,1,2,4),
"CviAII" => array("CviAII,FaeI,Hin1II,Hsp92II,NlaIII","_CATG'","(CATG)",4,4,-4,4),
"CviJI" => array("CviJI,CviKI-1","RG'CY","(AGCC|AGCT|GGCC|GGCT)",4,2,0,4),
"DinI" => array("DinI,Mly113I,NarI","GG'CG_CC","(GGCGCC)",6,2,2,6),
"DpnI" => array("DpnI,MalI","GA'TC","(GATC)",4,2,0,4),
"DraI" => array("DraI","TTT'AAA","(TTTAAA)",6,3,0,6),
"Ecl136II" => array("Ecl136II,EcoICRI","GAG'CTC","(GAGCTC)",6,3,0,6),
"Eco32I" => array("Eco32I,EcoRV","GAT'ATC","(GATATC)",6,3,0,6),
"EcoO109I" => array("EcoO109I,DraII","RG'GNC_CY","(AGG.CCC|AGG.CCT|GGG.CCC|GGG.CCT)",7,2,3,6),
"EcoRI" => array("EcoRI","G'AATT_C","(GAATTC)",6,1,4,6),
"EcoT22I" => array("EcoT22I,Mph1103I,NsiI,Zsp2I","A_TGCA'T","(ATGCAT)",6,5,-4,6),
"EgeI" => array("EgeI,EheI,SfoI","GGC'GCC","(GGCGCC)",6,3,0,6),
"FatI" => array("FatI","'CATG_","(CATG)",4,0,4,4),
"FauNDI" => array("FauNDI,NdeI","CA'TA_TG","(CATATG)",6,2,2,6),
"FseI" => array("FseI,RigI","GG_CCGG'CC","(GGCCGGCC)",8,6,-4,8),
"FspAI" => array("FspAI","RTGC'GCAY","(ATGCGCAC|ATGCGCAT|GTGCGCAC|GTGCGCAT)",8,4,0,8),
"GlaI" => array("GlaI","GC'GC","(GCGC)",4,2,0,4),
"Hin6I" => array("Hin6I,HinP1I,HspAI","G'CG_C","(GCGC)",4,1,2,4),
"HincII" => array("HincII,HindII","GTY'RAC","(GTCAAC|GTCGAC|GTTAAC|GTTGAC)",6,3,0,6),
"HindIII" => array("HindIII","A'AGCT_T","(AAGCTT)",6,1,4,6),
"HinfI" => array("HinfI","G'ANT_C","(GA.TC)",5,1,3,4),
"HpaI" => array("HpaI,KspAI","GTT'AAC","(GTTAAC)",6,3,0,6),
"Hpy188I" => array("Hpy188I","TC_N'GA","(TC.GA)",5,3,-1,4),
"Hpy188III" => array("Hpy188III","TC'NN_GA","(TC..GA)",6,2,2,4),
"Hpy8I" => array("Hpy8I","GTN'NAC","(GT..AC)",6,3,0,4),
"Hpy99I" => array("Hpy99I","_CGWCG'","(CGACG|CGTCG)",5,5,-5,5),
"HpyCH4IV" => array("HpyCH4IV,MaeII","A'CG_T","(ACGT)",4,1,2,4),
"HpyCH4V" => array("HpyCH4V","TG'CA","(TGCA)",4,2,0,4),
"HpyF10VI" => array("HpyF10VI","GCNN_NNN'NNGC","(GC.......GC)",11,7,-3,4),
"KasI" => array("KasI","G'GCGC_C","(GGCGCC)",6,1,4,6),
"KpnI" => array("KpnI","G_GTAC'C","(GGTACC)",6,5,-4,6),
"MabI" => array("MabI,SexAI","A'CCWGG_T","(ACCAGGT|ACCTGGT)",7,1,5,7),
"MaeIII" => array("MaeIII","'GTNAC_","(GT.AC)",5,0,5,4),
"MfeI" => array("MfeI,MunI","C'AATT_G","(CAATTG)",6,1,4,6),
"MluI" => array("MluI","A'CGCG_T","(ACGCGT)",6,1,4,6),
"MreI" => array("MreI","CG'CCGG_CG","(CGCCGGCG)",8,2,4,8),
"MroNI" => array("MroNI,NgoMIV","G'CCGG_C","(GCCGGC)",6,1,4,6),
"MseI" => array("MseI,Tru1I,Tru9I","T'TA_A","(TTAA)",4,1,2,4),
"MslI" => array("MslI,RseI,SmiMI","CAYNN'NNRTG","(CAC....ATG|CAC....GTG|CAT....ATG|CAT....GTG)",10,5,0,6),
"MspA1I" => array("MspA1I","CMG'CKG","(CAGCGG|CAGCTG|CCGCGG|CCGCTG)",6,3,0,6),
"MssI" => array("MssI,PmeI","GTTT'AAAC","(GTTTAAAC)",8,4,0,8),
"NaeI" => array("NaeI,PdiI","GCC'GGC","(GCCGGC)",6,3,0,6),
"NmuCI" => array("NmuCI,Tsp45I","'GTSAC_","(GTCAC|GTGAC)",5,0,5,5),
"PacI" => array("PacI","TTA_AT'TAA","(TTAATTAA)",8,5,-2,8),
"PaeR7I" => array("PaeR7I,Sfr274I,SlaI,StrI,TliI,XhoI","C'TCGA_G","(CTCGAG)",6,1,4,6),
"PasI" => array("PasI","CC'CWG_GG","(CCCAGGG|CCCTGGG)",7,2,3,7),
"PfeI" => array("TfiI,PfeI","G'AWT_C","(GAATC|GATTC)",5,1,3,5),
"PfoI" => array("PfoI","T'CCNGG_A","(TCC.GGA)",7,1,5,6),
"PpuMI" => array("PpuMI,Psp5II,PspPPI","RG'GWC_CY","(AGGACCC|AGGACCT|AGGTCCC|AGGTCCT|GGGACCC|GGGACCT|GGGTCCC|GGGTCCT)",7,2,3,7),
"PsiI" => array("PsiI","TTA'TAA","(TTATAA)",6,3,0,6),
"Psp124BI" => array("Psp124BI,SacI,SstI","G_AGCT'C","(GAGCTC)",6,5,-44,6),
"PspXI" => array("PspXI","VC'TCGA_GB","(ACTCGAGC|ACTCGAGG|ACTCGAGT|CCTCGAGC|CCTCGAGG|CCTCGAGT|GCTCGAGC|GCTCGAGG|GCTCGAGT)",8,2,4,8),
"PvuII" => array("PvuII","CAG'CTG","(CAGCTG)",6,3,0,6),
"SalI" => array("SalI","G'TCGA_C","(GTCGAC)",6,1,4,6),
"SanDI" => array("SanDI","GG'GWC_CC","(GGGACCC|GGGTCCC)",7,2,3,7),
"SbfI" => array("SbfI,SdaI,Sse8387I","CC_TGCA'GG","(CCTGCAGG)",8,6,-4,8),
"SetI" => array("SetI","_ASST'","(AGGT|AGCT|ACGT|ACCT)",4,4,-4,4),
"SfiI" => array("SfiI","GGCCN_NNN'NGGCC","(GGCC.....GGCC)",13,8,-3,8),
"SgrAI" => array("SgrAI","CR'CCGG_YG","(CACCGGCG|CACCGGTG|CGCCGGCG|CGCCGGTG)",8,2,4,8),
"SgrDI" => array("SgrDI","CG'TCGA_CG","(CGTCGACG)",8,2,4,8),
"SmaI" => array("SmaI","CCC'GGG","(CCCGGG)",6,3,0,6),
"SmiI" => array("SmiI,SwaI","ATTT'AAAT","(ATTTAAAT)",8,4,0,8),
"SmlI" => array("SmlI,SmoI","C'TYRA_G","(CTCAAG|CTCGAG|CTTAAG|CTTGAG)",6,1,4,6),
"SrfI" => array("SrfI","GCCC'GGGC","(GCCCGGGC)",8,4,0,8),
"Sse9I" => array("Sse9I,TasI,Tsp509I,TspEI","'AATT_","(AATT)",4,0,4,4),
"SspI" => array("SspI","AAT'ATT","(AATATT)",6,3,0,6),
"TaiI" => array("TaiI","_ACGT'","(ACGT)",4,4,-4,4),
"TaqI" => array("TaqI","T'CG_A","(TCGA)",4,1,2,4),
"TatI" => array("TatI","W'GTAC_W","(AGTACA|AGTACT|TGTACA|TGTACT)",6,1,4,6),
"TauI" => array("TauI","G_CSG'C","(GCCGC|GCGGC)",5,4,-3,5),
"TspRI" => array("TspRI","_NNCASTGNN'","(..CACTG..|..CAGTG..)",9,9,-9,5),
"XbaI" => array("XbaI","T'CTAG_A","(TCTAGA)",6,1,4,6),
"XcmI" => array("XcmI","CCANNNN_N'NNNNTGG","(CCA.........TGG)",15,8,-1,6),
"ZraI" => array("ZraI","GAC'GTC","(GACGTC)",6,3,0,6),
);
return $enzymes_array;
}
function get_array_of_Type_IIs_endonucleases(){
// Two lines for each endonuclease
$enzymes_array = Array(
"AarI" => array("AarI","CACCTGCNNNN'NNNN_","(CACCTGC........)",15,11,4,7),
"AarI@" => array("","","(........GCAGGTG)",15,0,4,7),
"Acc36I" => array("Acc36I,BfuAI,BspMI,BveI","ACCTGCNNNN'NNNN_","(ACCTGC........)",14,10,4,6),
"Acc36I@" => array("","","(........GCAGGT)",14,0,4,6),
"AclWI" => array("AclWI,AlwI,BspPI","GGATCNNNN'N_","(GGATC.....)",10,9,1,5),
"AclWI@" => array("","","(.....GATCC)",10,0,1,5),
"AcuI" => array("AcuI,Eco57I","R'AATT_Y","(CTGAAGNNNNNNNNNNNNNN_NN')",22,22,-2,6),
"AcuI@" => array("","","(................CTTCAG)",22,2,-2,6),
"Alw26I" => array("Alw26I,BsmAI,BstMAI","GTCTCN'NNNN_","(GTCTC.....)",10,6,4,5),
"Alw26I@" => array("","","(.....GAGAC)",10,0,4,5),
"AsuHPI" => array("AsuHPI,HphI","GTGANNNNNNN_N'","(GGTGA........)",13,13,-1,5),
"AsuHPI@" => array("","","(........TCACC)",13,1,-1,5),
"BbsI" => array("BbsI,BpiI,BpuAI,BstV2I","GAAGACNN'NNNN_","(GAAGAC......)",12,8,4,6),
"BbsI@" => array("","","(......GTCTTC)",12,0,4,6),
"BbvI" => array("BbvI,BseXI,BstV1I","GCAGCNNNNNNNN'NNNN_","(GCAGC............)",17,13,4,5),
"BbvI@" => array("","","(............GCTGC)",17,0,4,5),
"BccI" => array("BccI","CCATCNNNN'N_","(CCATC.....)",10,9,1,5),
"BccI@" => array("","","(.....GATGG)",10,0,1,5),
"BceAI" => array("BceAI","ACGGCNNNNNNNNNNNN'NN_","(ACGGC..............)",19,17,2,5),
"BceAI@" => array("","","(..............GCCGT)",19,0,2,5),
"BciVI" => array("BciVI,BfuI","GTATCCNNNNN_N'","(GTATCC......)",12,12,-1,6),
"BciVI@" => array("","","(......GGATAC)",12,1,-1,6),
"BfiI" => array("BfiI,BmrI,BmuI","ACTGGGNNNN_N'","(ACTGGG.....)",11,11,-1,6),
"BfiI@" => array("","","(.....CCCAGT)",11,1,-1,6),
"BpmI" => array("BpmI,GsuI","CTGGAGNNNNNNNNNNNNNN_NN'","(CTGGAG................)",22,22,-2,6),
"BpmI@" => array("","","(................CTCCAG)",22,2,-2,6),
"BpuEI" => array("BpuEI","CTTGAGNNNNNNNNNNNNNN_NN'","(CTTGAG................)",22,22,-2,6),
"BpuEI@" => array("","","(................CTCAAG)",22,2,-2,6),
"BsaI" => array("BsaI,Bso31I,BspTNI,Eco31I","GGTCTCN'NNNN_","(GGTCTC.....)",11,7,4,6),
"BsaI@" => array("","","(.....GAGACC)",11,0,4,6),
"BsaMI" => array("BsaMI,BsmI,Mva1269I,PctI","GAATG_CN'","(GAATGC.)",7,7,-2,6),
"BsaMI@" => array("","","(.GCATTC)",7,2,-2,6),
"Bse1I" => array("Bse1I,BseNI,BsrI,BsrSI","ACTG_GN'","(ACTGG.)",6,6,-2,5),
"Bse1I@" => array("","","(.CCAGT)",6,2,-2,5),
"Bse3DI" => array("Bse3DI,BseMI,BsrDI","GCAATG_NN'","(GCAATG..)",8,8,-2,6),
"Bse3DI@" => array("","","(..CATTGC)",8,2,-2,6),
"BseGI" => array("BseGI,BstF5I","GGATG_NN'","(GGATG..)",7,7,-2,5),
"BseGI@" => array("","","(..CATCC)",7,2,-2,5),
"BseMII" => array("BseMII","CTCAGNNNNNNNN_NN'","(CTCAG..........)",15,15,-2,5),
"BseMII@" => array("","","(..........CTGAG)",15,2,-2,5),
"BseRI" => array("BseRI","GAGGAGNNNNNNNN_NN'","(GAGGAG..........)",16,16,-2,6),
"BseRI@" => array("","","(..........CTCCTC)",16,2,-2,6),
"BsgI" => array("BsgI","GTGCAGNNNNNNNNNNNNNN_NN'","(GTGCAG................)",22,22,-2,6),
"BsgI@" => array("","","(................CTGCAC)",22,2,-2,6),
"BslFI" => array("BslFI,FaqI","GGGACNNNNNNNNNN'NNNN_","(GGGAC..............)",19,15,4,5),
"BslFI@" => array("","","(..............GTCCC)",19,0,4,5),
"BsmBI" => array("BsmBI,Esp3I","CGTCTCN'NNNN_","(CGTCTC.....)",11,7,4,6),
"BsmBI@" => array("","","(.....GAGACG)",11,0,4,6),
"BsmFI" => array("BsmFI","GGGACNNNNNNNNNN'NNNN_","(GGGAC..............)",19,15,4,5),
"BsmFI@" => array("","","(..............GTCCC)",19,0,4,5),
"BspCNI" => array("BspCNI","CTCAGNNNNNNN_NN'","(CTCAG.........)",14,14,-2,5),
"BspCNI@" => array("","","(.........CTGAG)",14,2,-2,5),
"BspQI" => array("BspQI,LguI,PciSI,SapI","GCTCTTCN'NNN_","(GCTCTTC....)",11,8,3,7),
"BspQI@" => array("","","(....GAAGAGC)",11,0,3,7),
"Bst6I" => array("Bst6I,Eam1104I,EarI,Ksp632I","CTCTTCN'NNN_","(CTCTTC....)",10,7,3,6),
"Bst6I@" => array("","","(....GAAGAG)",10,0,3,6),
"BtgZI" => array("BtgZI","GCGATGNNNNNNNNNN'NNNN_","(GCGATG..............)",20,16,4,6),
"BtgZI@" => array("","","(..............CATCGC)",20,0,4,6),
"BtsI" => array("BtsI","GCAGTG_NN'","(GCAGTG..)",8,8,-2,6),
"BtsI@" => array("","","(..CACTGC)",8,2,-2,6),
"EciI" => array("EciI","GGCGGANNNNNNNNN_NN'","(GGCGGA...........)",17,17,-2,6),
"EciI@" => array("","","(...........TCCGCC)",17,2,-2,6),
"Eco57MI" => array("Eco57MI","CTGRAGNNNNNNNNNNNNNN_NN'","(CTGAAG................|CTGGAG................)",22,22,-2,6),
"Eco57MI@" => array("","","(................CTCCAG|................CTTCAG)",22,2,-2,6),
"EcoP15I" => array("EcoP15I","CAGCAGNNNNNNNNNNNNNNNNNNNNNNNNN'NN_","(CAGCAG...........................)",33,31,2,6),
"EcoP15I@" => array("","","(...........................CTGCTG)",33,0,2,6),
"FauI" => array("FauI,SmuI","CCCGCNNNN'NN_","(CCCGC......)",11,9,2,5),
"FauI@" => array("","","(......GCGGG)",11,0,2,5),
"FokI" => array("FokI,BtsCI","GGATGNNNNNNNNN'NNNN_","(GGATG.............)",18,14,4,5),
"FokI@" => array("","","(.............CATCC)",18,0,4,5),
"HgaI" => array("HgaI,CseI","GACGCNNNNN'NNNNN_","(GACGC..........)",15,10,5,5),
"HgaI@" => array("","","(..........GCGTC)",15,0,5,5),
"HpyAV" => array("HpyAV","CCTTCNNNNN_N'","(GACGC..........)",11,11,-1,5),
"HpyAV@" => array("","","(......GAAGG)",11,1,-1,5),
"LweI" => array("LweI,SfaNI","GCATCNNNNN'NNNN_","(GCATC.........)",14,10,4,5),
"LweI@" => array("","","(.........GATGC)",14,0,4,5),
"MboII" => array("MboII","GAAGANNNNNNN_N'","(GAAGA........)",13,13,-1,5),
"MboII@" => array("","","(........TCTTC)",13,1,-1,5),
"MlyI" => array("MlyI,SchI","GAGTCNNNNN'","(GAGTC.....)",10,10,0,5),
"MlyI@" => array("","","(.....GACTC)",10,0,0,5),
"MmeAIII" => array("MmeAIII","TCCRACNNNNNNNNNNNNNNNNNN_NN'","(GCCGAG.....................)",27,27,-2,6),
"MmeAIII@" => array("","","(.....................CTCGGC)",27,2,-2,6),
"MmeI" => array("MmeI","TCCRACNNNNNNNNNNNNNNNNNN_NN'","(TCCAAC....................|TCCGAC....................)",26,26,-2,6),
"MmeI@" => array("","","(....................GTCGGA|....................GTTGGA)",26,2,-2,6),
"MnlI" => array("MnlI","CCTCNNNNNN_N'","(CCTC.......)",11,11,-1,4),
"MnlI@" => array("","","(.......GAGG)",11,1,-1,4),
"PleI" => array("PleI,PpsI","GAGTCNNNN'N_","(GAGTC.....)",10,9,1,5),
"PleI@" => array("","","(.....GACTC)",10,0,1,5),
"TaqII" => array("TaqII","GACCGANNNNNNNNN_NN' or CACCCANNNNNNNNN_NN'","(GACCGA...........|CACCCA...........)",17,17,-2,6),
"TaqII@" => array("","","(...........TCGGTC|...........TGGGTG)",17,2,-2,6),
"TsoI" => array("TsoI","TARCCANNNNNNNNN_NN'","(TAACCA...........|TAGCCA...........)",17,17,-2,6),
"TsoI@" => array("","","(...........TGGTTA|...........TGGCTA)",17,2,-2,6),
"TspDTI" => array("TspDTI","ATGAANNNNNNNNN_NN'","(ATGAA...........)",16,16,-2,5),
"TspDTI@" => array("","","(...........TTCAT)",16,2,-2,5),
"TspGWI" => array("TspGWI","ACGGANNNNNNNNN_NN'","(ACGGA...........)",16,16,-2,5),
"TspGWI@" => array("","","(...........TCCGT)",16,2,-2,5),
);
return $enzymes_array;
}
// ################### Array of endonucleases
function get_array_of_Type_IIb_endonucleases(){
$enzymes_array = Array(
"AjuI#" => array("AjuI","_NNNNN'NNNNNNNGAANNNNNNNTTGGNNNNNN_NNNNN_'\n Generates two cuts","(............GAA.......TTGG...........|...........CCAA.......TTC............)",37,5,-5,7),
"AlfI#" => array("AlfI","_NN'NNNNNNNNNNCGANNNNNNTGCNNNNNNNNNN_NN'\n Generates two cuts","(............CGA......TGC............|............GCA......TCG............)",36,2,-2,6),
"AloI#" => array("AloI","_NNNNN'NNNNNNNGAACNNNNNNTCCNNNNNNN_NNNNN'\n Generates two cuts","(............GAAC......TCC............|............GGA......GTTC............)",33,5,-5,7),
"BarI#" => array("BarI","_NNNNN'NNNNNNNGAAGNNNNNNTACNNNNNNN_NNNNN'\n Generates two cuts","(............GAAG......TAC............|............GTA......CTTC............)",37,5,-5,7),
"BaeI#" => array("BaeI","_NNNNN'NNNNNNNNNNACNNNNGTAYCNNNNNNN_NNNNN'\n Generates two cuts","(...............AC....GTACC............|...............AC....GTATC............|............GATAC....GT...............|............GGTAC....GT...............)",38,5,-5,7),
"BcgI#" => array("BcgI","_NN'NNNNNNNNNNCGANNNNNNTGCNNNNNNNNNN_NN'\n Generates two cuts","(............CGA......TGC............|............GCA......TCG............)",36,2,-2,6),
"BdaI#" => array("BdaI","_NN'NNNNNNNNNNTGANNNNNNTCANNNNNNNNNN_NN'\n Generates two cuts","(............TGA......TCA............)",36,2,-2,6),
"BsaXI#" => array("BsaXI","_NNN'NNNNNNNNNACNNNNNCTCCNNNNNNN_NNN'\n Generates two cuts","(............AC.....CTCC..........|..........GGAG.....GT............)",33,3,-3,6),
"CspCI#" => array("CspCI","_NN'NNNNNNNNNNNCAANNNNNGTGGNNNNNNNNNN_NN'\n Generates two cuts","(.............CAA.....GTGG............|............GCA.....TCG.............)",37,2,-2,7),
"Hin4I#" => array("Hin4I","_NNNNN'NNNNNNNNGAYNNNNNVTCNNNNNNNN_NNNNN'\n Generates two cuts","(.............GAC.....ATC.............|.............GAC.....CTC.............|.............GAC.....GTC.............|.............GAT.....ATC.............|.............GAT.....CTC.............|.............GAT.....GTC.............|.............GAG.....ATC.............|.............GAG.....ATC.............)",37,5,-5,6),
"PpiI#" => array("PpiI","_NNNNN'NNNNNNNGAACNNNNNCTCNNNNNNNN_NNNNN'\n Generates two cuts","(............GAAC.....CTC.............|.............GAG.....GTTC............)",37,5,-5,7),
"PsrI#" => array("PsrI","_NNNNN'NNNNNNNGAACNNNNNNTACNNNNNNN_NNNNN'\n Generates two cuts","(............GAAC......TAC............|............GTA......GTTC............)",35,5,-5,7),
"TstI#" => array("TstI","_NNNNN'NNNNNNNNCACNNNNNNTCCNNNNNNN_NNNNN'\n Generates two cuts","(.............CAC......TCC............|............GGA......GTG.............)",37,5,-5,7),
);
return $enzymes_array;
}
// This function return the list of sellers for all endonucleases included in this script
function endonuclease_vendors(){
$vendors=array(
"AarI"=>"F",
"AasI"=>"F",
"AatI"=>"O",
"AatII"=>"AFGIKMNORV",
"AbsI"=>"I",
"AccI"=>"ABGJKMNORSUWX",
"AccII"=>"AJK",
"AccIII"=>"GJKRW",
"Acc16I"=>"IV",
"Acc36I"=>"I",
"Acc65I"=>"FGINRVW",
"AccB1I"=>"IV",
"AccB7I"=>"IRV",
"AccBSI"=>"IV",
"AciI"=>"N",
"AclI"=>"INV",
"AclWI"=>"I",
"AcoI"=>"I",
"AcsI"=>"IMV",
"AcuI"=>"IN",
"AcvI"=>"QX",
"AcyI"=>"JM",
"AdeI"=>"F",
"AfaI"=>"AK",
"AfeI"=>"IN",
"AfiI"=>"V",
"AflII"=>"AJKNO",
"AflIII"=>"GMNSW",
"AgeI"=>"JNR",
"AhdI"=>"N",
"AhlI"=>"IV",
"AjiI"=>"F",
"AjnI"=>"I",
"AjuI"=>"F",
"AleI"=>"N",
"AlfI"=>"F",
"AloI"=>"F",
"AluI"=>"ABFGHIJKMNOQRSUVWXY",
"AluBI"=>"I",
"AlwI"=>"N",
"Alw21I"=>"F",
"Alw26I"=>"FR",
"Alw44I"=>"FJMORS",
"AlwNI"=>"N",
"Ama87I"=>"IV",
"Aor13HI"=>"K",
"Aor51HI"=>"AK",
"ApaI"=>"ABFGIJKMNOQRSUVWX",
"ApaLI"=>"AKNU",
"ApeKI"=>"N",
"ApoI"=>"N",
"AscI"=>"GNW",
"AseI"=>"JNO",
"AsiGI"=>"IV",
"AsiSI"=>"N",
"AspI"=>"M",
"Asp700I"=>"M",
"Asp718I"=>"M",
"AspA2I"=>"IV",
"AspEI"=>"M",
"AspLEI"=>"IV",
"AspS9I"=>"IV",
"AssI"=>"U",
"AsuC2I"=>"I",
"AsuHPI"=>"IV",
"AsuNHI"=>"IV",
"AvaI"=>"ABGJMNORSUWX",
"AvaII"=>"AGJKMNRSWY",
"AviII"=>"M",
"AvrII"=>"N",
"AxyI"=>"J",
"BaeI"=>"N",
"BalI"=>"AJKR",
"BamHI"=>"ABFGHIJKMNOQRSUVWXY",
"BanI"=>"NORU",
"BanII"=>"AGKMNOQRSWX",
"BanIII"=>"O",
"BarI"=>"I",
"BasI"=>"U",
"BauI"=>"F",
"BbeI"=>"AK",
"BbrPI"=>"MO",
"BbsI"=>"N",
"BbuI"=>"R",
"BbvI"=>"N",
"Bbv12I"=>"IV",
"BbvCI"=>"N",
"BccI"=>"N",
"BceAI"=>"N",
"BcgI"=>"N",
"BciVI"=>"N",
"BclI"=>"FGJMNORSUWY",
"BcnI"=>"FK",
"BcuI"=>"F",
"BdaI"=>"F",
"BfaI"=>"N",
"BfiI"=>"F",
"BfmI"=>"F",
"BfrI"=>"MO",
"BfuI"=>"F",
"BfuAI"=>"N",
"BfuCI"=>"N",
"BglI"=>"AFGHIJKMNOQRSUVWXY",
"BglII"=>"ABFGHIJKMNOQRSUVWXY",
"BisI"=>"I",
"BlnI"=>"AKMS",
"BlpI"=>"N",
"BlsI"=>"I",
"BmcAI"=>"V",
"Bme18I"=>"IV",
"Bme1390I"=>"F",
"Bme1580I"=>"N",
"BmeRI"=>"V",
"BmeT110I"=>"K",
"BmgBI"=>"N",
"BmgT120I"=>"K",
"BmiI"=>"V",
"BmrI"=>"N",
"BmrFI"=>"V",
"BmtI"=>"INV",
"BmuI"=>"I",
"BoxI"=>"F",
"BpiI"=>"F",
"BplI"=>"F",
"BpmI"=>"IN",
"Bpu10I"=>"FINV",
"Bpu14I"=>"IV",
"Bpu1102I"=>"AFK",
"BpuAI"=>"M",
"BpuEI"=>"N",
"BpuMI"=>"V",
"BpvUI"=>"V",
"BsaI"=>"N",
"Bsa29I"=>"I",
"BsaAI"=>"N",
"BsaBI"=>"N",
"BsaHI"=>"N",
"BsaJI"=>"N",
"BsaMI"=>"GR",
"BsaWI"=>"N",
"BsaXI"=>"N",
"Bsc4I"=>"I",
"Bse1I"=>"IV",
"Bse8I"=>"IV",
"Bse21I"=>"IV",
"Bse118I"=>"IV",
"BseAI"=>"CM",
"BseBI"=>"C",
"BseCI"=>"C",
"BseDI"=>"F",
"Bse3DI"=>"IV",
"BseGI"=>"F",
"BseJI"=>"F",
"BseLI"=>"F",
"BseMI"=>"F",
"BseMII"=>"F",
"BseNI"=>"F",
"BsePI"=>"IV",
"BseRI"=>"N",
"BseSI"=>"F",
"BseXI"=>"F",
"BseX3I"=>"IV",
"BseYI"=>"N",
"BsgI"=>"N",
"Bsh1236I"=>"F",
"Bsh1285I"=>"F",
"BshFI"=>"C",
"BshNI"=>"F",
"BshTI"=>"F",
"BshVI"=>"V",
"BsiEI"=>"N",
"BsiHKAI"=>"N",
"BsiHKCI"=>"QX",
"BsiSI"=>"C",
"BsiWI"=>"MNO",
"BsiYI"=>"M",
"BslI"=>"GNW",
"BslFI"=>"I",
"BsmI"=>"JMNOSW",
"BsmAI"=>"N",
"BsmBI"=>"N",
"BsmFI"=>"N",
"BsnI"=>"V",
"Bso31I"=>"IV",
"BsoBI"=>"N",
"Bsp13I"=>"IV",
"Bsp19I"=>"IV",
"Bsp68I"=>"F",
"Bsp119I"=>"F",
"Bsp120I"=>"F",
"Bsp143I"=>"F",
"Bsp1286I"=>"JKNR",
"Bsp1407I"=>"FK",
"Bsp1720I"=>"IV",
"BspACI"=>"I",
"BspANI"=>"X",
"BspCNI"=>"N",
"BspDI"=>"N",
"BspEI"=>"N",
"BspFNI"=>"I",
"BspHI"=>"N",
"BspLI"=>"F",
"BspLU11I"=>"M",
"BspMI"=>"N",
"BspMAI"=>"X",
"BspOI"=>"F",
"BspPI"=>"F",
"BspQI"=>"N",
"BspTI"=>"F",
"BspT104I"=>"K",
"BspT107I"=>"K",
"BspTNI"=>"QX",
"BspXI"=>"GW",
"BsrI"=>"N",
"BsrBI"=>"N",
"BsrDI"=>"N",
"BsrFI"=>"N",
"BsrGI"=>"N",
"BsrSI"=>"R",
"BssAI"=>"C",
"BssECI"=>"I",
"BssHII"=>"AJKMNOQRSX",
"BssKI"=>"N",
"BssMI"=>"V",
"BssNI"=>"V",
"BssNAI"=>"IV",
"BssSI"=>"N",
"BssT1I"=>"IV",
"Bst6I"=>"IV",
"Bst98I"=>"R",
"Bst1107I"=>"FKM",
"BstACI"=>"I",
"BstAPI"=>"IN",
"BstAUI"=>"IV",
"BstBI"=>"N",
"Bst2BI"=>"IV",
"BstBAI"=>"IV",
"Bst4CI"=>"IV",
"BstC8I"=>"I",
"BstDEI"=>"IV",
"BstDSI"=>"IV",
"BstEII"=>"GHJMNORSUW",
"BstENI"=>"IV",
"BstF5I"=>"IV",
"BstFNI"=>"IV",
"BstH2I"=>"IV",
"BstHHI"=>"IV",
"BstKTI"=>"I",
"BstMAI"=>"IV",
"BstMBI"=>"IV",
"BstMCI"=>"IV",
"BstMWI"=>"I",
"BstNI"=>"N",
"BstNSI"=>"IV",
"BstOI"=>"R",
"BstPI"=>"K",
"BstPAI"=>"IV",
"BstSCI"=>"I",
"BstSFI"=>"I",
"BstSLI"=>"I",
"BstSNI"=>"IV",
"BstUI"=>"N",
"Bst2UI"=>"IV",
"BstV1I"=>"I",
"BstV2I"=>"IV",
"BstXI"=>"AFGHIJKMNOQRVWX",
"BstX2I"=>"IV",
"BstYI"=>"N",
"BstZI"=>"R",
"BstZ17I"=>"N",
"Bsu15I"=>"F",
"Bsu36I"=>"NR",
"BsuRI"=>"FI",
"BsuTUI"=>"X",
"BtgI"=>"N",
"BtgZI"=>"N",
"BtrI"=>"IV",
"BtsI"=>"N",
"BtsCI"=>"N",
"BtuMI"=>"V",
"BveI"=>"F",
"Cac8I"=>"N",
"CaiI"=>"F",
"CciNI"=>"IV",
"CelII"=>"M",
"CfoI"=>"MRS",
"CfrI"=>"F",
"Cfr9I"=>"FO",
"Cfr10I"=>"FGKO",
"Cfr13I"=>"AFO",
"Cfr42I"=>"F",
"ClaI"=>"ABHKMNRSU",
"CpoI"=>"AFK",
"CseI"=>"F",
"CspI"=>"OR",
"Csp6I"=>"F",
"Csp45I"=>"OR",
"CspAI"=>"C",
"CspCI"=>"N",
"CviAII"=>"N",
"CviJI"=>"QX",
"CviKI-1"=>"N",
"CviQI"=>"N",
"DdeI"=>"BGMNORSW",
"DinI"=>"V",
"DpnI"=>"BEFGMNRSW",
"DpnII"=>"N",
"DraI"=>"ABFGIJKMNOQRSUVWXY",
"DraII"=>"GMW",
"DraIII"=>"GIMNVW",
"DrdI"=>"N",
"DriI"=>"I",
"DseDI"=>"IV",
"EaeI"=>"AKMN",
"EagI"=>"GNW",
"Eam1104I"=>"F",
"Eam1105I"=>"FK",
"EarI"=>"N",
"EciI"=>"N",
"Ecl136II"=>"F",
"EclHKI"=>"R",
"EclXI"=>"MS",
"Eco24I"=>"F",
"Eco31I"=>"F",
"Eco32I"=>"F",
"Eco47I"=>"FO",
"Eco47III"=>"FGMORW",
"Eco52I"=>"FKO",
"Eco57I"=>"F",
"Eco72I"=>"F",
"Eco81I"=>"AFKO",
"Eco88I"=>"F",
"Eco91I"=>"F",
"Eco105I"=>"FO",
"Eco130I"=>"F",
"Eco147I"=>"F",
"EcoICRI"=>"IRV",
"Eco57MI"=>"F",
"EcoNI"=>"N",
"EcoO65I"=>"K",
"EcoO109I"=>"AFJKN",
"EcoP15I"=>"N",
"EcoRI"=>"ABCFGHIJKMNOQRSUVWXY",
"EcoRII"=>"FJMOS",
"EcoRV"=>"ABCGHIJKMNOQRSUVWXY",
"EcoT14I"=>"K",
"EcoT22I"=>"AKO",
"EcoT38I"=>"J",
"EgeI"=>"I",
"EheI"=>"FO",
"ErhI"=>"IV",
"Esp3I"=>"F",
"FaeI"=>"I",
"FalI"=>"I",
"FaqI"=>"F",
"FatI"=>"IN",
"FauI"=>"IN",
"FauNDI"=>"IV",
"FbaI"=>"AK",
"FblI"=>"IV",
"Fnu4HI"=>"N",
"FokI"=>"AGIJKMNQRVWX",
"FriOI"=>"IV",
"FseI"=>"AN",
"FspI"=>"JNO",
"FspAI"=>"F",
"FspBI"=>"F",
"Fsp4HI"=>"I",
"GlaI"=>"I",
"GluI"=>"I",
"GsuI"=>"F",
"HaeII"=>"GJKMNORSW",
"HaeIII"=>"ABGHIJKMNOQRSUWXY",
"HapII"=>"AK",
"HgaI"=>"IN",
"HhaI"=>"ABFGJKNORUWY",
"Hin1I"=>"FKO",
"Hin1II"=>"F",
"Hin4I"=>"F",
"Hin6I"=>"F",
"HinP1I"=>"N",
"HincII"=>"ABFGHJKNOQRUWXY",
"HindII"=>"IMSV",
"HindIII"=>"ABCFGHIJKMNOQRSUVWXY",
"HinfI"=>"ABCFGHIJKMNOQRUVWXY",
"HpaI"=>"ABCGHIJKMNOQRSUVWX",
"HpaII"=>"BFGIMNOQRSUVWX",
"HphI"=>"FN",
"Hpy8I"=>"F",
"Hpy99I"=>"N",
"Hpy188I"=>"N",
"Hpy188III"=>"N",
"HpyAV"=>"N",
"HpyCH4III"=>"N",
"HpyCH4IV"=>"N",
"HpyCH4V"=>"N",
"HpyF3I"=>"F",
"HpyF10VI"=>"F",
"Hsp92I"=>"R",
"Hsp92II"=>"R",
"HspAI"=>"IV",
"ItaI"=>"M",
"KasI"=>"N",
"KpnI"=>"ABCFGHIJKMNOQRSUVWXY",
"Kpn2I"=>"F",
"KspI"=>"MS",
"Ksp22I"=>"IV",
"Ksp632I"=>"M",
"KspAI"=>"F",
"Kzo9I"=>"I",
"LguI"=>"F",
"LweI"=>"F",
"MabI"=>"I",
"MaeI"=>"M",
"MaeII"=>"M",
"MaeIII"=>"M",
"MalI"=>"I",
"MamI"=>"M",
"MbiI"=>"F",
"MboI"=>"ABCFGKNQRUWXY",
"MboII"=>"AFGIJKNOQRVWX",
"MfeI"=>"N",
"MflI"=>"K",
"MhlI"=>"IV",
"MlsI"=>"F",
"MluI"=>"ABFGHIJKMNOQRSUVWX",
"MluNI"=>"MS",
"MlyI"=>"N",
"Mly113I"=>"I",
"MmeI"=>"NX",
"MnlI"=>"FGINQVWX",
"Mph1103I"=>"F",
"MreI"=>"F",
"MroI"=>"MO",
"MroNI"=>"IV",
"MroXI"=>"IV",
"MscI"=>"BNO",
"MseI"=>"BN",
"MslI"=>"N",
"MspI"=>"AFGHIJKMNOQRSUVWXY",
"Msp20I"=>"IV",
"MspA1I"=>"INRV",
"MspCI"=>"C",
"MspR9I"=>"I",
"MssI"=>"F",
"MunI"=>"FKM",
"MvaI"=>"AFGKMOSW",
"Mva1269I"=>"F",
"MvnI"=>"M",
"MvrI"=>"U",
"MwoI"=>"N",
"NaeI"=>"ACKMNORU",
"NarI"=>"GJMNOQRUWX",
"NciI"=>"GJNORSW",
"NcoI"=>"ABCFGHJKMNOQRSUWXY",
"NdeI"=>"ABFGJKMNQRSWXY",
"NdeII"=>"GJMRSW",
"NgoMIV"=>"NR",
"NheI"=>"ABFGJKMNORSUW",
"NlaIII"=>"GNW",
"NlaIV"=>"GNW",
"NmeAIII"=>"N",
"NmuCI"=>"F",
"NotI"=>"ABCFGHJKMNOQRSUWXY",
"NruI"=>"ABCGIJKMNOQRSUWX",
"NsbI"=>"FK",
"NsiI"=>"BGHJMNRSUW",
"NspI"=>"MN",
"NspV"=>"JO",
"OliI"=>"F",
"PacI"=>"GNOW",
"PaeI"=>"F",
"PaeR7I"=>"N",
"PagI"=>"F",
"PalAI"=>"I",
"PasI"=>"F",
"PauI"=>"F",
"PceI"=>"IV",
"PciI"=>"IN",
"PciSI"=>"I",
"PctI"=>"IV",
"PdiI"=>"F",
"PdmI"=>"F",
"PfeI"=>"F",
"Pfl23II"=>"F",
"PflFI"=>"N",
"PflMI"=>"N",
"PfoI"=>"F",
"PhoI"=>"N",
"PinAI"=>"BM",
"PleI"=>"N",
"Ple19I"=>"I",
"PmaCI"=>"AK",
"PmeI"=>"GNW",
"PmlI"=>"N",
"PpiI"=>"F",
"PpsI"=>"I",
"Ppu21I"=>"F",
"PpuMI"=>"NO",
"PscI"=>"F",
"PshAI"=>"AKN",
"PshBI"=>"K",
"PsiI"=>"IN",
"Psp5II"=>"F",
"Psp6I"=>"I",
"Psp1406I"=>"FK",
"Psp124BI"=>"IV",
"PspCI"=>"IV",
"PspEI"=>"IV",
"PspGI"=>"N",
"PspLI"=>"I",
"PspN4I"=>"I",
"PspOMI"=>"INV",
"PspPPI"=>"I",
"PspXI"=>"IN",
"PsrI"=>"I",
"PstI"=>"ABCFGHIJKMNOQRSUVWXY",
"PsuI"=>"F",
"PsyI"=>"F",
"PvuI"=>"ABFGKMNOQRSUWXY",
"PvuII"=>"ABCFGHIJKMNORSUVWXY",
"RcaI"=>"M",
"RgaI"=>"I",
"RigI"=>"I",
"RsaI"=>"BCFGHIJMNOQRSVWXY",
"RsaNI"=>"I",
"RseI"=>"F",
"RsrII"=>"MNQX",
"Rsr2I"=>"IV",
"SacI"=>"AFGHJKMNOQRSUWX",
"SacII"=>"AGHJKNOQRWX",
"SalI"=>"ABCFGHIJKMNOQRSUVWXY",
"SanDI"=>"E",
"SapI"=>"N",
"SatI"=>"F",
"Sau96I"=>"GJMNOUW",
"Sau3AI"=>"AGHJKMNOQRSUWX",
"SbfI"=>"INV",
"ScaI"=>"ABCFGJKMNOQRSWX",
"SchI"=>"F",
"ScrFI"=>"JMNOS",
"SdaI"=>"F",
"SduI"=>"F",
"SetI"=>"I",
"SexAI"=>"MN",
"SfaNI"=>"INV",
"SfcI"=>"N",
"SfiI"=>"ACFGIJKMNOQRSUVWX",
"SfoI"=>"N",
"Sfr274I"=>"IV",
"Sfr303I"=>"IV",
"SfuI"=>"M",
"SgfI"=>"R",
"SgrAI"=>"MN",
"SgrBI"=>"C",
"SgrDI"=>"F",
"SgsI"=>"F",
"SinI"=>"GQRWX",
"SlaI"=>"C",
"SmaI"=>"ABCFGHIJKMNOQRSUVWXY",
"SmiI"=>"FIKV",
"SmiMI"=>"IV",
"SmlI"=>"N",
"SmoI"=>"F",
"SmuI"=>"F",
"SnaBI"=>"ACKMNR",
"SpeI"=>"ABGHJKMNOQRSUWX",
"SphI"=>"ABCGHIJKMNOQRSVWX",
"SrfI"=>"EO",
"Sse9I"=>"IV",
"Sse8387I"=>"AK",
"SseBI"=>"C",
"SsiI"=>"F",
"SspI"=>"ABCFGIJKMNOQRSUVWX",
"SstI"=>"BC",
"SstII"=>"B",
"StrI"=>"U",
"StuI"=>"ABJKMNQRSUX",
"StyI"=>"CJMNRS",
"StyD4I"=>"N",
"SwaI"=>"GJMNSW",
"TaaI"=>"F",
"TaiI"=>"F",
"TaqI"=>"ABCFGIJKMNOQRSUVWXY",
"TaqII"=>"QX",
"TasI"=>"F",
"TatI"=>"F",
"TauI"=>"F",
"TfiI"=>"N",
"TliI"=>"N",
"Tru1I"=>"F",
"Tru9I"=>"GIMRVW",
"TseI"=>"N",
"TsoI"=>"F",
"Tsp45I"=>"N",
"Tsp509I"=>"N",
"TspDTI"=>"X",
"TspEI"=>"O",
"TspGWI"=>"X",
"TspMI"=>"N",
"TspRI"=>"N",
"TstI"=>"F",
"Tth111I"=>"GIKNQRVWX",
"Van91I"=>"AFKM",
"Vha464I"=>"IV",
"VneI"=>"IV",
"VpaK11BI"=>"K",
"VspI"=>"FIRV",
"XagI"=>"F",
"XapI"=>"F",
"XbaI"=>"ABCFGHIJKMNOQRSUVWXY",
"XceI"=>"F",
"XcmI"=>"N",
"XhoI"=>"ABFGHJKMNOQRSUWXY",
"XhoII"=>"GMRW",
"XmaI"=>"INRUV",
"XmaCI"=>"M",
"XmaJI"=>"F",
"XmiI"=>"F",
"XmnI"=>"GNRUW",
"XspI"=>"K",
"ZraI"=>"INV",
"ZrmI"=>"I",
"Zsp2I"=>"IV"
);
return $vendors;
}
function show_vendors ($company,$enzyme){
$company=" ".$company;
print "$enzyme > REBASE\n";
if (strpos($company,"A")>0){print " Amersham Pharmacia Biotech\n";}
if (strpos($company,"C")>0){print " Minotech Biotechnology\n";}
if (strpos($company,"E")>0){print " Stratagene\n";}
if (strpos($company,"F")>0){print " Fermentas AB\n";}
if (strpos($company,"G")>0){print " Qbiogene\n";}
if (strpos($company,"H")>0){print " American Allied Biochemical, Inc.\n";}
if (strpos($company,"I")>0){print " SibEnzyme Ltd.\n";}
if (strpos($company,"J")>0){print " Nippon Gene Co., Ltd.\n";}
if (strpos($company,"K")>0){print " Takara Shuzo Co. Ltd.\n";}
if (strpos($company,"M")>0){print " Roche Applied Science\n";}
if (strpos($company,"N")>0){print " New England Biolabs\n";}
if (strpos($company,"O")>0){print " Toyobo Biochemicals\n";}
if (strpos($company,"P")>0){print " Megabase Research Products\n";}
if (strpos($company,"Q")>0){print " CHIMERx\n";}
if (strpos($company,"R")>0){print " Promega Corporation\n";}
if (strpos($company,"S")>0){print " Sigma Chemical Corporationn\n";}
if (strpos($company,"U")>0){print " Bangalore Genei\n";}
if (strpos($company,"V")>0){print " MRC-Holland\n";}
if (strpos($company,"X")>0){print " EURx Ltd.\n";}
print "
";
}
?>