Example #1
0
    }
    $variant_id = evidence_get_variant_id($gene_aa, false, false, false, true);
    if (!$variant_id && $row["rsid"]) {
        $variant_id = evidence_get_variant_id("rs" . $row["rsid"], false, false, false, true);
    }
    $edit_id = evidence_get_latest_edit($variant_id, 0, 0, 0, true, array("variant_impact" => "pharmacogenetic"));
    $latestrow = evidence_get_edit($edit_id);
    if (in_array($latestrow["variant_impact"], array("not reviewed", "none", "unknown"))) {
        $newrow = evidence_generate_edit(null, null, $latestrow);
        $newrow["variant_impact"] = "pharmacogenetic";
        $new_edit_id = evidence_save_draft(null, $newrow);
        evidence_submit($new_edit_id);
        ++$n_marked_pharma;
    }
    if (ereg('^[0-9]+$', $row["pmid"])) {
        evidence_get_latest_edit($variant_id, $row["pmid"], 0, 0, true);
    }
    $did[$variant_name] = $variant_id;
    theDb()->query("UPDATE pharmgkb SET variant_id=? WHERE pharmgkb_id=?", array($variant_id, $row["pharmgkb_id"]));
    ++$n;
    if ($n % 100 == 0) {
        print "{$n}...";
    }
}
print "{$n} ({$n_marked_pharma} existing variants changed to pharmacogenetic)\n";
print "Updating variant_external...";
theDb()->query("LOCK TABLES variant_external WRITE");
theDb()->query("DELETE FROM variant_external WHERE tag='PharmGKB'");
$q = theDb()->query("INSERT INTO variant_external\n (variant_id, tag, content, url, updated)\n SELECT variant_id, 'PharmGKB', annotation, url, NOW()\n FROM pharmgkb\n WHERE variant_id > 0");
if (theDb()->isError($q)) {
    print "[" . $q->getMessage() . "]";
Example #2
0
     $taf = NULL;
 }
 if ($gene && $aa_change) {
     $variant_name = "{$gene} {$aa_change}";
 } else {
     if ($rsid) {
         $variant_name = $rsid;
     } else {
         continue;
     }
 }
 $variant_id = evidence_get_variant_id($variant_name);
 if (!$variant_id) {
     // create the variant, and an "initial edit/add" row in edits table
     $variant_id = evidence_get_variant_id($variant_name, false, false, false, true);
     $edit_id = evidence_get_latest_edit($variant_id, 0, 0, 0, true);
 }
 if (ereg("^(rs?)([0-9]+)\$", $rsid, $regs)) {
     $rsid = $regs[2];
 } else {
     $rsid = null;
 }
 if (isset($job2genome[$job_id])) {
     $genome_id = $job2genome[$job_id];
 } else {
     $genome_id = evidence_get_genome_id($global_human_id);
 }
 theDb()->query("INSERT INTO import_genomes_tmp SET variant_id=?, genome_id=?, chr=?, chr_pos=?, trait_allele=?, taf=?, rsid=?, dataset_id=?, zygosity='{$zygosity[$hom_or_het]}'", array($variant_id, $genome_id, $chr, $chr_pos, $trait_allele, $taf, $rsid, "T/snp/{$job_id}"));
 if (!isset($job2genome[$job_id])) {
     theDb()->query("UPDATE genomes SET name=? WHERE genome_id=?", array($human_name, $genome_id));
     theDb()->query("REPLACE INTO datasets SET dataset_id=?, genome_id=?, sex=?, dataset_url=?", array("T/snp/{$job_id}", $genome_id, $sex, "http://snp.med.harvard.edu/results/job/{$job_id}"));
Example #3
0
        if (aa_sane($_POST["variant_aa_change"])) {
            if (ereg("^([^0-9]+)([0-9]+)([^0-9]+)\$", aa_long_form($_POST["variant_aa_change"]), $regs)) {
                $aa_from = $regs[1];
                $aa_pos = $regs[2];
                $aa_to = $regs[3];
            }
            $gene = strtoupper($_POST["variant_gene"]);
            $variant_id = evidence_get_variant_id($gene, $aa_pos, $aa_from, $aa_to, true);
            $edit_id = evidence_get_latest_edit($variant_id, 0, 0, 0, true);
            $response["latest_edit_v{$variant_id}a0g0"] = $edit_id;
            $response["latest_edit_id"] = $edit_id;
            $response["variant_id"] = $variant_id;
            $response["please_reload"] = true;
            $response["variant_key"] = "{$gene} " . aa_short_form("{$aa_from}{$aa_pos}{$aa_to}");
        } else {
            die("Invalid variant specified");
        }
    }
    if ($article_pmid || $genome_id || $disease_id) {
        $latest_edit_id = evidence_get_latest_edit($variant_id, $article_pmid, $genome_id, $disease_id, true);
        $response["latest_edit_v{$variant_id}a{$article_pmid}g{$genome_id}"] = $latest_edit_id;
        $response["latest_edit_id"] = $latest_edit_id;
        $renderer = new evidence_row_renderer();
        $renderer->render_row(theDb()->getRow("SELECT * FROM edits WHERE edit_id=?", array($latest_edit_id)));
        $response["html"] = $renderer->html();
        ereg("id=\"([^\"]+)", $response["html"], $regs);
        $response["e_id"] = $regs[1];
    }
    header("Content-type: application/json");
    print json_encode($response);
}
Example #4
0
print theDb()->affectedRows();
print "\n";
print "Adding variants...";
$q = theDb()->query("\nSELECT gene_aa, snps, gwas_id\nFROM gwas\nWHERE variant_id IS NULL");
$n = 0;
$did = array();
while ($row =& $q->fetchRow()) {
    $variant_name = $row["gene_aa"] ? $row["gene_aa"] : $row["snps"];
    if (isset($did[$variant_name])) {
        $variant_id = $did[$variant_name];
        theDb()->query("UPDATE gwas SET variant_id=? WHERE gwas_id=?", array($variant_id, $row["gwas_id"]));
        continue;
    }
    // create the variant, and an "initial edit/add" row in edits table
    $variant_id = evidence_get_variant_id($variant_name, false, false, false, true);
    $edit_id = evidence_get_latest_edit($variant_id, 0, 0, 0, true, array("variant_impact" => "pathogenic"));
    $did[$variant_name] = $variant_id;
    theDb()->query("UPDATE gwas SET variant_id=? WHERE gwas_id=?", array($variant_id, $row["gwas_id"]));
    if ($row["gene_aa"]) {
        theDb()->query("UPDATE variant_locations SET variant_id=? WHERE gene_aa=?", array($variant_id, $row["gene_aa"]));
    }
    ++$n;
    if ($n % 100 == 0) {
        print "{$n}...";
    }
}
print "{$n}\n";
print "Adding diseases...";
theDb()->query("INSERT IGNORE INTO diseases (disease_name) SELECT disease_trait FROM gwas");
print theDb()->affectedRows();
print "\n";
Example #5
0
<?php

include "lib/setup.php";
$response = array();
if (!getCurrentUser()) {
    $response["errors"][] = "Not logged in";
} else {
    if ($item_id = evidence_get_latest_edit($_POST[v], $_POST[a], $_POST[g], $_POST[d])) {
        $q = theDb()->query("INSERT INTO edits SET\n\t\t\tedit_oid=?, edit_timestamp=NOW(),\n\t\t\tis_draft=1, is_delete=1,\n\t\t\tprevious_edit_id=?,\n\t\t\tvariant_id=?,\n\t\t\tarticle_pmid=?, genome_id=?, disease_id=?", array(getCurrentUser("oid"), $item_id, $_POST[v], $_POST[a], $_POST[g], $_POST[d]));
        if (theDb()->isError($q)) {
            $response["errors"][] = $q->getMessage();
        } else {
            if ($delete_id = theDb()->getOne("SELECT LAST_INSERT_ID()")) {
                evidence_submit($delete_id);
                $response["deleted"] = true;
                if ($_POST[v] && ($_POST[a] || $_POST[g]) && !$_POST[d]) {
                    // Delete per-disease entries for an article/genome entry
                    // TODO: evidence_submit() should take care of this
                    // TODO: snap_release will need special handling for this case too
                    theDb()->query("DELETE FROM snap_latest WHERE variant_id=? AND article_pmid=? AND genome_id=?", array($_POST[v], $_POST[a], $_POST[g]));
                }
            }
        }
    } else {
        $response["errors"][] = "Nothing to delete";
    }
}
header("Content-type: application/json");
print json_encode($response);
?>