<?php
// cmd-line script to break up bed file by chromosome

require_once 'const.inc.php';
require_once 'db.function.php';
$db = getDB();

$exp_id = (int)$argv[1];
$src = $argv[2]; // filepath to src raw file. should always be full absolute path

$srcfp = fopen($src, "r");
while(!feof($srcfp)) {
    $r = fgets($srcfp);
    list($chr, $dummy) = explode("\t", $r, 2);
    if(substr($chr, 0, 3) == 'chr') {
        // 
        if(!$outputs[$chr]) {
            $base = FILE_REPOSITORY_PATH . "/$chr";
            if(!is_dir($base)) {
                mkdir($base);
            }
            $filepath = "$base/" . uniqid() . date('YmdHis');
            $outputs[$chr] = fopen($filepath, "w");
            if(!$db->getOne("select rawbed_id from rawbed where src_filepath = ? and chromosome = ?", array($src, $chr))) {
                $stat = $db->query("insert into rawbed (filepath, src_filepath, experiment_id, chromosome) values (?,?,?,?)", array($filepath, $src, $exp_id, $chr));
                if(PEAR::isError($stat)) {
                    print_r($stat);
                    exit;
                }
                $db->commit();
            }
        }
        fputs($outputs[$chr], $r);
    }
}
fclose($srcfp);
foreach($outputs as $fp) {
    fclose($fp);
}

?>
