Skip to content
Snippets Groups Projects

Merge upstream

Merged Loraine Gueguen requested to merge dev into master
1 file
+ 4
1
Compare changes
  • Side-by-side
  • Inline
+ 53
2
@@ -92,7 +92,7 @@ function abims_process_page(&$variables) {
if ($variables['is_front']) {
$variables['page']['analyses'] = abims_get_analyses_from_chado();
}
$variables['page']['organisms'] = abims_get_organisms_from_chado();
$variables['page']['organisms'] = abims_get_organisms_with_versions_from_chado();
}
function abims_get_analyses_from_chado() {
@@ -133,6 +133,9 @@ function abims_get_analyses_from_chado() {
if (preg_match('/.*\s\(?(OGS\s?[0-9.]+)\)?\b.*/i', $an->name, $m) && count($m) == 2) {
$an->guessed_version = str_replace(' ', '', $m[1]);
}
else if (preg_match('/.*\s\(?v([0-9.]+)\)?\b.*/i', $an->name, $m) && count($m) == 2) {
$an->guessed_version = str_replace(' ', '', $m[1]);
}
else if (preg_match('/.*\s\(?v?([0-9.]+)\)?\b.*/i', $an->name, $m) && count($m) == 2) {
$an->guessed_version = str_replace(' ', '', $m[1]);
}
@@ -156,7 +159,10 @@ function abims_get_analyses_from_chado() {
// Fix feature_counts for structural annots
$csql = "SELECT a.analysis_id, count(af.feature_id) as feature_count FROM {analysis} a LEFT JOIN {analysisfeature} af ON a.analysis_id = af.analysis_id LEFT JOIN {feature} f ON af.feature_id = f.feature_id WHERE f.type_id=:term GROUP BY a.analysis_id ORDER BY a.name";
$counts = chado_query($csql, array(':term' => $gene_term));
$counts = chado_query($csql, array(':term' => $gene_term));
if (!$counts->rowCount()) {
$counts = chado_query($csql, array(':term' => $mRNA_term));
}
foreach ($counts as $count) {
if (in_array($count->analysis_id, $structural_ids)) {
$analysis_list[$count->analysis_id]->feature_count = $count->feature_count;
@@ -250,6 +256,51 @@ function abims_get_organisms_from_chado() {
return $organism_list;
}
function abims_get_organisms_with_versions_from_chado() {
$organism_list = array();
$csql = "SELECT * FROM {organism} ORDER BY genus, species";
$organisms = chado_query($csql);
$csql = "SELECT name FROM {analysis} order by analysis_id desc";
$analyses = chado_query($csql);
$versions = array();
foreach ($analyses as $an) {
if ((preg_match('/assembly/i', $an->name) || preg_match('/genome/i', $an->name)) && !preg_match('/transcriptome/i', $an->name)) {
if (preg_match('/([A-Za-z0-9]+ [A-Za-z0-9]+).+v\.?([0-9.]+)/', $an->name, $matches)) {
if (!array_key_exists($matches[1], $versions) || version_compare($matches[2], $versions[$matches[1]], '>')) {
$versions[$matches[1]] = $matches[2];
}
}
if (preg_match('/([A-Za-z0-9]+ [A-Za-z0-9]+ [A-Za-z0-9]+).+v\.?([0-9.]+)/', $an->name, $matches)) {
if (!array_key_exists($matches[1], $versions) || version_compare($matches[2], $versions[$matches[1]], '>')) {
$versions[$matches[1]] = $matches[2];
}
}
if (preg_match('/v\.?([0-9.]+).+ ([A-Za-z0-9]+ [A-Za-z0-9]+ [A-Za-z0-9]+)$/', $an->name, $matches)) {
if (!array_key_exists($matches[2], $versions) || version_compare($matches[1], $versions[$matches[2]], '>')) {
$versions[$matches[2]] = $matches[1];
}
}
if (preg_match('/v\.?([0-9.]+).+ ([A-Za-z0-9]+ [A-Za-z0-9]+)$/', $an->name, $matches)) {
if (!array_key_exists($matches[2], $versions) || version_compare($matches[1], $versions[$matches[2]], '>')) {
$versions[$matches[2]] = $matches[1];
}
}
}
}
foreach ($organisms as $organism) {
if (array_key_exists($organism->genus . ' ' . $organism->species, $versions)) {
$organism->version = $versions[$organism->genus . ' ' . $organism->species];
}
$organism_list[$organism->organism_id] = $organism;
}
return $organism_list;
}
/**
* Implements hook_preprocess_maintenance_page().
*/
Loading