Institute of Zoology, CAS
研究员
中国科学院动物研究所
[insert_php]
$awkRuleString=””; $filterString=””;
$jackie_download_path=”[HTTPS]albertcheng.info/jackie_downloads/”;
function isValid($fieldName) { return isset($_GET[$fieldName]); }
function printAllValues(){ echo “
“; } echo “
“; } //printAllValues();
function getValue($fieldName){ return $_GET[$fieldName]; }
function safeGetValue($fieldName,$default_val){ if(isValid($fieldName)){ return getValue($fieldName); } return $default_val; }
function incorporateRange($awkString,$fieldName,$awk_col){ if(isValid($fieldName.”_min”) && isValid($fieldName.”_max”) && isValid($fieldName.”_table_vis”) && !strcmp(getValue($fieldName.”_table_vis”),”yes”)){ $_min=getValue($fieldName.”_min”); $_max=getValue($fieldName.”_max”); if(strlen($awkString)>0){ $awkString.=” &&”; } return $awkString.’ $(‘.$awk_col.’)>=’.$_min.’ && $(‘.$awk_col.’)<='.$_max; } return $awkString; } function incorporateFilterRange($filterString,$fieldName,$awk_col){ if(isValid($fieldName."_min") && isValid($fieldName."_max") && isValid($fieldName."_table_vis") && !strcmp(getValue($fieldName."_table_vis"),"yes")){ $_min=getValue($fieldName."_min"); $_max=getValue($fieldName."_max"); return $filterString."'$".$fieldName.'/'.$_min.'/'.$_max."' "; } return $filterString; } if(isset($_GET["multi"])){ $awkRuleString=incorporateRange($awkRuleString,"n0mismatches",14); $awkRuleString=incorporateRange($awkRuleString,"clusterSize",13); } $awkRuleString=incorporateRange($awkRuleString,"percentGC",17); $awkRuleString=incorporateRange($awkRuleString,"longestTandemT",18); $awkRuleString=incorporateRange($awkRuleString,"totalOffSites",14); $awkRuleString=incorporateRange($awkRuleString,"n1mismatches",11); $awkRuleString=incorporateRange($awkRuleString,"n2mismatches",12); $awkRuleString=incorporateRange($awkRuleString,"n3mismatches",13); if(isset($_GET["multi"])){ $filterString=incorporateFilterRange($filterString,"n0mismatches",14); $filterString=incorporateFilterRange($filterString,"clusterSize",13); } $filterString=incorporateFilterRange($filterString,"percentGC",17); $filterString=incorporateFilterRange($filterString,"longestTandemT",18); $filterString=incorporateFilterRange($filterString,"totalOffSites",14); $filterString=incorporateFilterRange($filterString,"n1mismatches",11); $filterString=incorporateFilterRange($filterString,"n2mismatches",12); $filterString=incorporateFilterRange($filterString,"n3mismatches",13); //NBest if(isValid("NBest")){ $NBest=getValue("NBest"); if(strlen($NBest)>0){ $filterString.=” ‘!BEST/”.$NBest.”‘”; } }
//inRegion if(isValid(“inRegion”)){ $inRegion=getValue(“inRegion”); if(strlen($inRegion)>0){ $filterString.=” -regions=”.$inRegion; } }
if(isValid(“queryOut”)){ $queryOut=getValue(“queryOut”); if(strlen($queryOut)>0){ $filterString.=” > “.$queryOut; } }
$JACKIEdbRegion=safeGetValue(“JACKIEdbRegion”,””); $JACKIEdbRegion=str_replace(““,””,$JACKIEdbRegion); if(strlen($JACKIEdbRegion)>0){ $array= explode(“\n”,$JACKIEdbRegion); foreach($array as $x){ $coordinateFields=preg_split(“/[\s:-]+/”, $x);
$filterString.=” ‘”.join(“/”,$coordinateFields).”‘ “; } }
if(isset($_GET[“selected_cols”])){ foreach($_GET[“selected_cols”] as $selected_col){ $filterString.=” ‘!”.$selected_col.”‘ “;
}
//placeTextBox(“Input JACKIEdb filename”,”inbb”,”JACKIEdb.bb”); //placeTextBox(“JACKIE.queryDB output filename”,”queryOut”,”query.out.bed”);
if(strlen($awkRuleString)>0){ $awkRuleString=’gunzip -c ‘.safeGetValue(“infilename”,”bed.gz”).’ | awk -v FS="\\t" -v OFS="\\t" \'(‘.$awkRuleString.’)\”;
if(isValid(“outfilename”)){ $outfilename=getValue(“outfilename”); if(strlen($outfilename)>0){ $awkRuleString.=” > “.$outfilename; } }
//echo ‘awk code:
‘; //echo ‘
‘;
if(strlen($filterString)>0){ $filterString=’JACKIE.queryDB ‘.str_replace(“[HTTPS]”,”https://”,safeGetValue(“inbb”,$jackie_download_path.str_replace(“bed.gz”,”bb”,safeGetValue(“infilename”,”bed.gz”)))).’ ‘.$filterString;
echo ‘JACKIE.queryDB command:
‘; echo ‘
‘; }
[/insert_php]
function placeRangeTextBoxes($fieldDesc,$fieldName,$default_min,$default_max,$textSize=10){ if(isset($_GET[$fieldName.”_min”])){ $min_value=$_GET[$fieldName.”_min”]; }else{ $min_value=$default_min; }
if(isset($_GET[$fieldName.”_max”])){ $max_value=$_GET[$fieldName.”_max”]; }else{ $max_value=$default_max; }
if(!strcmp(safeGetValue($fieldName.”_table_vis”,”no”),”yes”)){ $showButton_visibility=”hidden”; $table_visibility=”visible”; $vis_value=”yes”; }else{ $showButton_visibility=”visible”; $table_visibility=”collapse”; $vis_value=”no”;
echo ‘
echo $fieldDesc.’
function placeTextBox($fieldDesc,$fieldName,$default_val,$textSize=100){ if(isset($_GET[$fieldName])){ $val=$_GET[$fieldName]; }else{ $val=$default_val; }
echo “
function placeTextBoxWithFileChooser($fieldDesc,$fieldName,$default_val,$textSize=100){ if(isset($_GET[$fieldName])){ $val=$_GET[$fieldName]; }else{ $val=$default_val; }
function placeTextArea($fieldDesc,$fieldName,$default_val,$rows,$cols){ if(isset($_GET[$fieldName])){ $val=$_GET[$fieldName]; }else{ $val=$default_val; }
$val=str_replace(““,””,$val);
function printOption($optionValue,$optionText,$selected){ $inSelectedCols=false; if($_GET[“selected_cols”] && in_array($optionValue,$_GET[“selected_cols”])){ $inSelectedCols=true; }
$printOption=false; if($selected){ if($inSelectedCols){ $printOption=true; } }else{ if(!$inSelectedCols){ $printOption=true; } }
if($printOption){ echo ““.$optionText.”“;
//placeTextBox(“Input filename”,”infilename”,”bed.gz”); //placeTextBox(“Output filename”,”outfilename”,str_replace(“.bed.gz”,”.filtered.bed”,safeGetValue(“infilename”,”output.bed”))); placeTextBox(“JACKIEdb filename (bigBed format)”,”inbb”,safeGetValue(“inbb”,$jackie_download_path.str_replace(“bed.gz”,”bb”,safeGetValue(“infilename”,”bed.gz”)))); placeTextBox(“Region file (bed format)”,”inRegion”,””); placeTextArea(“Regions (each line e.g., chr1:1-1000 or chr1[tab]1[tab]1000)”,”JACKIEdbRegion”,safeGetValue(“JACKIEdbRegion”,””),10,50); placeTextBox(“Output filename (empty: output to screen [STDOUT])”,”queryOut”,””); placeTextBox(“Select Best”,”NBest”,””); [/insert_php]
if(isset($_GET[“multi”])){ printOption(“MAX/n0mismatches”,”Maximize Number of sites in cluster”,false); printOption(“MIN/n0mismatches”,”Minimize Number of sites in cluster”,false); printOption(“MIN/clusterSize”,”Minimize size of cluster”,false); printOption(“MAX/clusterSize”,”Maximize size of cluster”,false); } printOption(“MIN/totalOffSites”,”Minimize Total Number of 1,2,3-mismatch sites”,false); printOption(“MIN/n1mismatches”,”Minimize 1-mismatch sites”,false); printOption(“MIN/n2mismatches”,”Minimize 2-mismatch sites”,false); printOption(“MIN/n3mismatches”,”Minimize 3-mismatch sites”,false); printOption(“MIN/longestTandemT”,”Minimize longest Tandem T”,false); printOption(“MIN/percentGC”,”Minimize percent GC”,false); printOption(“MAX/percentGC”,”Maximize percent GC”,false); printOption(“MAX/longestTandemT”,”Maximize longest Tandem T”,false); printOption(“MAX/totalOffSites”,”Maximize Total Number of 1,2,3-mismatch sites”,false); printOption(“MAX/n1mismatches”,”Maximize 1-mismatch sites”,false); printOption(“MAX/n2mismatches”,”Maximize 1-mismatch sites”,false); printOption(“MAX/n3mismatches”,”Maximize 1-mismatch sites”,false); [/insert_php]
[insert_php] if(isset($_GET[“multi”])){ echo ‘‘; placeRangeTextBoxes(“Number of sites in cluster”,”n0mismatches”,0,10000000); placeRangeTextBoxes(“Size of gRNA cluster”,”clusterSize”,0,10000000); } placeRangeTextBoxes(“Percentage GC of Spacer Sequence”,”percentGC”,0,100); placeRangeTextBoxes(“longest run of T”,”longestTandemT”,0,20); placeRangeTextBoxes(“Total Number of 1,2,3-mismatch sites”,”totalOffSites”,0,10000000); placeRangeTextBoxes(“Number of 1-mismatch sites”,”n1mismatches”,0,10000000); placeRangeTextBoxes(“Number of 2-mismatch sites”,”n2mismatches”,0,10000000); placeRangeTextBoxes(“Number of 3-mismatch sites”,”n3mismatches”,0,10000000);