Commit 2bc8bff6 authored by Asscheman's avatar Asscheman

Merge commit '8c606e3f' into travis_tests

parents 4aecdcb6 8c606e3f
.idea
doc/tex/manual.aux
doc/tex/manual.log
doc/tex/manual.out
doc/tex/manual.toc
src/_sett
src/refseq
src/lib/flot/__excanvas
src/lib/flot/__flot
src/lib/jQuery/__jquery
src/lib/jeegoocontext/__jeegoocontext
src/config.ini.php
No preview for this file type
This diff is collapsed.
......@@ -23,6 +23,30 @@ To debug: XDEBUG_PROFILE=1
Prioritize:
===========
Website:
- Create search interface w/ Ajax for ww query service, but in a secure way, so it can't be abused.
- Data licensing:
- How to store and select the license; should we just store the license code, or store the attributes of the license - allowed to share, allowed for commercial parties, etc.
- The Flickr search site (search.flickr.com) has an example of how a search could look like - so not for license, but for ``I want data that I can edit, that I can use commercially'', etc.
- Storage could still anyways be one column (bit column), but it makes it a bit more simple for the querying method.
- Multiple builds: (LOVD 3.5): We should add the flag on which genome is leading also to the transcript side.
- Email (registration): Add a header similar to "NOTE: this mail contains your password, do not forward to others"
- Config area variant status list: uncurated does not show pending variants.
- Emails: "was previously empty" is also given when "0" is changed to "" (at least in a text field), and that's not correct.
- During installation, the URL check doesn't work. It says the URL is accessible, but it's not the mail URL of the installation.
The reason is, that the checker tries to find a cookie, but the page loaded doesn't send a cookie, but instead a page saying the settings could not be loaded.
- Create LOVD2/Simple table -> LOVD3 converter (or student).
- Check all column definitions, do we need to remove help text somewhere, because the legend is now in place?
- Adapt column form, so make clear that the full legend text is also put under the question mark icon, and add with the question mark field, that the full legend will be included by default, so that this is really meant for data entry help.
- When enabled, data sent to LOVD.nl needs to be extended with HGNC ID, diseases, etc. See LSDB list needs.
- Add clearly that selecting the installation to be published, allows us to publish the LOVD installation on our site, and allows us to try and increase traffic to this LOVD by publishing genomic variant locations on genome browsers and non-commercial variant annotation services.
- Link to Ensembl doesn't seem to work anymore, I guess they changed things on their side again (AJAX error)
* Fix problem with Ajax error, check how to properly load the URL.
- After creating a new screening and selecting that you want to confirm variants, you are requested your password, but nowhere in a complete submission are you ever requested your password...
- We should remove that thing, if we're in a complete submission (check how it's done in other forms).
- Also, clicking the variant in the list actually takes you there. I thought we prevented that... :O (check Authorize Users code, or code below Users VE to see how we blocked that)
- How can the public see, which phenotype columns are active for a certain disease?
- Find a better way to select diseases on the Individual data entry form.
- Also fix, that changes in this field (and other linking tables?) are not displayed in the submission emails?
- Use code used to select users to become curators? In a pop over, using JS to read out currently selected options, and enable them on the pop over. When submitting, the form's selection needs to be adapted.
......@@ -150,9 +174,6 @@ Prioritize:
+ http://grenada.lumc.nl/LOVD2/mendelian_genes/refseq/CYP2C19_codingDNA.html (NM_000769.1)
Gen waar de ATG meteen het start van het transcript is. g. nummering gaat helemaal fout op de cDNA pagina.
The RefSeq parser doesn't annotate the intron files correctly, if the introns are 3' UTR.
- Individual viewList: add column "variants in genes" with gene symbols.
+ Then, add option to dropdown menu if we have a currdb (replace: individuals screened for gene X).
+ After that, change the default link when clicking the individual tab.
- Hoe kan een gebruiker op een zojuist geopend edit formulier de Mutalyzer namechecker openen in een nieuwe window?
+ Voor de losse predict trigger (dus niet via map variant), confirm geven of XXX vervangen moet worden door YYY?
+ Namechecker ook de gekozen refseq laten gebruiken? Of niet, omdat we niet weten of dit transcript daar wel te vinden is?
......
......@@ -4,10 +4,10 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2012-05-25
* Modified : 2015-11-20
* Modified : 2016-02-05
* For LOVD : 3.0-15
*
* Copyright : 2004-2014 Leiden University Medical Center; http://www.LUMC.nl/
* Copyright : 2004-2016 Leiden University Medical Center; http://www.LUMC.nl/
* Programmer : Ing. Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@LUMC.nl>
* Msc. Daan Asscheman <D.Asscheman@LUMC.nl>
*
......@@ -31,13 +31,14 @@
define('ROOT_PATH', '../');
require ROOT_PATH . 'inc-init.php';
require ROOT_PATH . 'inc-lib-variants.php';
session_write_close();
$aGenes = lovd_getGeneList();
// First check if $_GET is filled, to avoid errors and notices.
if (empty($_GET['variant']) || empty($_GET['gene']) || !in_array($_GET['gene'], $aGenes)) {
die(AJAX_DATA_ERROR);
if (empty($_GET['variant']) || empty($_GET['gene'])) {
die(json_encode(AJAX_DATA_ERROR));
}
$sGene = $_GET['gene'];
......@@ -48,38 +49,18 @@ if (isset($_SETT['mito_genes_aliases'][$_GET['gene']])) {
$sVariant = str_replace($_GET['gene'], $sGene, $_GET['variant']);
}
// Check if variant is an UD, NC or NG and described as a c or n variant.
if (!preg_match('/^((UD_\d{12}|N(?:C|G)_\d{6,}\.\d{1,2})\(' . $sGene . '_v\d{3}\)):[cn]\..+$/', $sVariant, $aVariantMatches)) {
die(AJAX_DATA_ERROR);
// This check must be done after a possible check for mitochondrial genes.
// Else we might check for a gene name with a mitochondrial gene alias name.
if (!in_array($_GET['gene'], $aGenes)) {
die(json_encode(AJAX_DATA_ERROR));
}
$sProteinPrefix = str_replace('_v', '_i', $aVariantMatches[1]);
// Requires at least LEVEL_SUBMITTER, anything lower has no $_AUTH whatsoever.
if (!$_AUTH) {
// If not authorized, die with error message.
die(AJAX_NO_AUTH);
die(json_encode(AJAX_NO_AUTH));
}
require ROOT_PATH . 'class/soap_client.php';
$_Mutalyzer = new LOVD_SoapClient();
try {
$oOutput = $_Mutalyzer->runMutalyzer(array('variant' => $sVariant))->runMutalyzerResult;
} catch (SoapFault $e) {
// FIXME: Perhaps indicate an error? Like in the check_hgvs script?
die(AJAX_FALSE);
}
if (!empty($oOutput->messages->SoapMessage)) {
foreach ($oOutput->messages->SoapMessage as $oMessage) {
if (isset($oMessage->errorcode)) {
print(trim($oMessage->errorcode) . ':' . trim($oMessage->message));
}
print('|');
}
} else {
print('|');
}
$sProteinDescriptions = (empty($oOutput->proteinDescriptions->string)? '' : implode('|', $oOutput->proteinDescriptions->string));
preg_match('/' . preg_quote($sProteinPrefix) . ':(p\..+?)(\||$)/', $sProteinDescriptions, $aProteinMatches);
print('|' . (isset($aProteinMatches[1])? $aProteinMatches[1] : ''));
$aResult = lovd_getRNAProteinPrediction($sVariant, $sGene);
print(json_encode($aResult));
?>
......@@ -4,7 +4,7 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2015-11-27
* Modified : 2015-12-21
* Modified : 2016-02-02
* For LOVD : 3.0-15
*
* Copyright : 2004-2015 Leiden University Medical Center; http://www.LUMC.nl/
......@@ -33,46 +33,56 @@ require ROOT_PATH . 'inc-init.php';
session_write_close();
$nMaxDropDown = 10;
$qGenes = $_DB->query('SELECT id, id as value, CONCAT(id, " (", name, ")") AS label FROM ' . TABLE_GENES . ' ORDER BY id');
//$qGenes = $_DB->query('SELECT id, id as value, CONCAT(id, " (", name, ")") AS label FROM ' . TABLE_GENES . ' WHERE id = ?', array('ARSE'));
$qGenes = $_DB->query('SELECT id AS value, CONCAT(id, " (", name, ")") AS label FROM ' . TABLE_GENES . ' ORDER BY id');
$zGenes = $qGenes->fetchAllAssoc();
if (empty($zGenes)) {
die(json_encode(AJAX_DATA_ERROR));
}
foreach ($zGenes as $key => $value) {
//This will shorten the gene names nicely, to prevent long gene names from messing up the form.
$zGenes[$key]['label'] = lovd_shortenString($zGenes[$key]['label'], 75);
foreach ($zGenes as $key => $aValues) {
// This will shorten the gene names nicely, to prevent long gene names from messing up the form.
$zGenes[$key]['label'] = lovd_shortenString($aValues['label'], 75);
}
if (count($zGenes) < $nMaxDropDown) {
// Create the option elements.
$options = '';
foreach ($zGenes as $aGene) {
$options .= '<OPTION value=' . $aGene['id'] . '>' . $aGene['label'] . ' </OPTION>' . "\n";
// Try to determine the currently selected gene, so we can pre-select that one,
// making it easier to select genes close alphabetically, and also ensuring the
// onChange() to run if the first gene from the list is selected.
// This code is similar to inc-init.php's parsing to find CurrDB.
$sCurrDB = '';
if (!empty($_SERVER['HTTP_REFERER']) && preg_match('/^' . preg_quote(lovd_getInstallURL(), '/') . '(configuration|genes|transcripts|variants|individuals|view)\/([^\/]+)/', $_SERVER['HTTP_REFERER'], $aRegs)) {
if (!in_array($aRegs[2], array('in_gene', 'upload')) && !ctype_digit($aRegs[2])) {
$sCurrDB = strtoupper($aRegs[2]); // Not checking capitalization here yet.
}
}
$sOptions = '';
foreach ($zGenes as $aGene) {
$sOptions .= '<OPTION value="' . $aGene['value'] . '"' . (!$sCurrDB || $sCurrDB != strtoupper($aGene['value'])? '' : ' selected') . '>' . $aGene['label'] . ' </OPTION>' . "\n";
}
die(json_encode(array(
'switchType' => 'dropdown',
'html' =>
'html' =>
'<FORM action="" id="SelectGeneDBInline" method="get" style="margin : 0px;" onsubmit="lovd_changeURL(); return false;">' . "\n" .
' <DIV id="div_gene_dropdown">' . "\n" .
' <SELECT name="select_db" id="select_gene_dropdown" onchange="$(this).parent().submit();">' . "\n" .
$options .
' </SELECT>' . "\n" .
' <INPUT type="submit" value="Switch" id="select_gene_switch">' . "\n" .
' </DIV>' . "\n" .
' <DIV id="div_gene_dropdown">' . "\n" .
' <SELECT name="select_db" id="select_gene_dropdown" onchange="$(this).parent().parent().submit();">' . "\n" .
$sOptions .
' </SELECT>' . "\n" .
' <INPUT type="submit" value="Switch" id="select_gene_switch">' . "\n" .
' </DIV>' . "\n" .
'</FORM>')));
} else {
die(json_encode(array(
'switchType' => 'autocomplete',
'html' =>
'html' =>
'<FORM action="" id="SelectGeneDBInline" method="get" style="margin : 0px;" onsubmit="lovd_changeURL(); return false;">' . "\n" .
' <DIV id="div_gene_autocomplete">' . "\n" .
' <INPUT name="select_db" id="select_gene_autocomplete" onchange="$(this).parent().submit();">' . "\n" .
' <INPUT type="submit" value="Switch" id="select_gene_switch">' . "\n" .
' </DIV>' . "\n" .
'</FORM>',
' <DIV id="div_gene_autocomplete">' . "\n" .
' <INPUT name="select_db" id="select_gene_autocomplete" style="width : 75ex;">' . "\n" .
' <INPUT type="submit" value="Switch" id="select_gene_switch">' . "\n" .
' </DIV>' . "\n" .
'</FORM>',
'data' => $zGenes)));
}
?>
\ No newline at end of file
?>
......@@ -4,13 +4,14 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2010-01-15
* Modified : 2015-11-03
* Modified : 2016-02-05
* For LOVD : 3.0-15
*
* Copyright : 2004-2015 Leiden University Medical Center; http://www.LUMC.nl/
* Copyright : 2004-2016 Leiden University Medical Center; http://www.LUMC.nl/
* Programmers : Jerry Hoogenboom <J.Hoogenboom@LUMC.nl>
* Ivar Lugtenburg <I.C.Lugtenburg@LUMC.nl>
* Ing. Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@LUMC.nl>
* Msc. Daan Asscheman <D.Asscheman@LUMC.nl>
*
*
* This file is part of LOVD.
......@@ -29,12 +30,14 @@
* along with LOVD. If not, see <http://www.gnu.org/licenses/>.
*
*************/
define('ROOT_PATH', '../');
require ROOT_PATH . 'inc-init.php';
require ROOT_PATH . 'inc-lib-actions.php';
require ROOT_PATH . 'inc-lib-genes.php';
require ROOT_PATH . 'inc-lib-form.php';
require ROOT_PATH . 'class/soap_client.php';
require ROOT_PATH . 'inc-lib-variants.php';
$_Mutalyzer = new LOVD_SoapClient();
define('LOG_EVENT', 'AutomaticMapping');
//header('Content-type: text/javascript; charset=UTF-8'); // When this header is enabled, jQuery doesn't like the script anymore because it assumes JSON, see the dataType setting.
......@@ -436,56 +439,11 @@ if (!empty($aVariants)) {
// FIXME: When mapping multiple variants in one gene, this query is repeated for each variants. Store ID?
$sTranscriptNum = $_DB->query('SELECT id_mutalyzer FROM ' . TABLE_TRANSCRIPTS . ' WHERE id_ncbi = ?', array($sTranscriptNM))->fetchColumn();
// This takes about 0.9-1.1 second...
try {
$aOutput = get_object_vars($_Mutalyzer->runMutalyzer(array('variant' => $sRefseqUD . '(' . $aTranscript['gene'] . '_v' . $sTranscriptNum . '):' . $aSQL[1][7]))->runMutalyzerResult);
// FIXME: Notice: Undefined property: stdClass::$string in /www/svn/LOVD3/trunk/src/ajax/map_variants.php on line 433
if (!empty($aOutput['proteinDescriptions']->string)) {
$aVariantsOnProtein = $aOutput['proteinDescriptions']->string;
} else {
$aVariantsOnProtein = array();
}
} catch (SoapFault $e) {
$aOutput = $aVariantsOnProtein = array();
}
if (isset($aOutput['messages']->SoapMessage)) {
$aVariantsOnProteinErrors = $aOutput['messages']->SoapMessage;
} else {
$aVariantsOnProteinErrors = array();
}
$sRNA = '';
$sProtein = '';
foreach ($aVariantsOnProteinErrors as $oError) {
$aError = get_object_vars($oError);
// FIXME; We should include ERANGE error handling here too, when we can expect large deletions etc.
if (isset($aError['errorcode']) && $aError['errorcode'] == 'WSPLICE') {
$sRNA = 'r.spl?';
$sProtein = 'p.?';
break;
}
}
$sVariant = $sRefseqUD . '(' . $aTranscript['gene'] . '_v' . $sTranscriptNum . '):' . $aSQL[1][7];
$aPrediction = lovd_getRNAProteinPrediction($sVariant, $aTranscript['gene']);
if (!$sProtein && !empty($aVariantsOnProtein)) {
foreach ($aVariantsOnProtein as $sVariantOnProtein) {
// 2014-12-05; 3.0-13; Fixed bug: When multiple genes exist in the UD, make sure we are reading out the right protein change here.
if (($nPos = strpos($sVariantOnProtein, $aTranscript['gene'] . '_i' . $sTranscriptNum . '):p.')) !== false) {
// FIXME: Since this code is the same as the code used for transcripts newly created in LOVD, better make a function out of it.
$sProtein = substr($sVariantOnProtein, $nPos + strlen($aTranscript['gene'] . '_i' . $sTranscriptNum . '):'));
if ($sProtein == 'p.?') {
$sRNA = 'r.?';
} elseif ($sProtein == 'p.(=)') {
// FIXME: Not correct in case of substitutions e.g. in the third position of the codon, not leading to a protein change.
$sRNA = 'r.(=)';
} else {
// RNA will default to r.(?).
$sRNA = 'r.(?)';
}
break;
}
}
}
$aSQL[1][8] = $sRNA;
$aSQL[1][9] = $sProtein;
$aSQL[1][8] = (empty($aPrediction['predict']['RNA'])? '' : $aPrediction['predict']['RNA']);
$aSQL[1][9] = (empty($aPrediction['predict']['protein'])? '' : $aPrediction['predict']['protein']);
if ($_DB->query($aSQL[0], $aSQL[1], false)) {
// If the insert succeeded, save some data in the variant array for lovd_fetchDBID().
$aVariant['aTranscripts'][$aSQL[1][1]] = array($sTranscriptNM, $aTranscript['gene']);
......@@ -705,56 +663,11 @@ if (!empty($aVariants)) {
}
// Get the p. description too.
try {
$aOutput = get_object_vars($_Mutalyzer->runMutalyzer(array('variant' => $sRefseqUD . '(' . $sSymbol . '_v' . $aFieldsTranscript['id_mutalyzer'] . '):' . $aVariantOnTranscriptSQL[1][7]))->runMutalyzerResult);
// FIXME: Notice: Undefined property: stdClass::$string in /www/svn/LOVD3/trunk/src/ajax/map_variants.php on line 433
if (!empty($aOutput['proteinDescriptions']->string)) {
$aVariantsOnProtein = $aOutput['proteinDescriptions']->string;
} else {
$aVariantsOnProtein = array();
}
} catch (SoapFault $e) {
$aOutput = $aVariantsOnProtein = array();
}
if (isset($aOutput['messages']->SoapMessage)) {
$aVariantsOnProteinErrors = $aOutput['messages']->SoapMessage;
} else {
$aVariantsOnProteinErrors = array();
}
$sVariant = $sRefseqUD . '(' . $sSymbol . '_v' . $aFieldsTranscript['id_mutalyzer'] . '):' . $aVariantOnTranscriptSQL[1][7];
$aPrediction = lovd_getRNAProteinPrediction($sVariant, $sSymbol);
$sRNA = '';
$sProtein = '';
foreach ($aVariantsOnProteinErrors as $oError) {
$aError = get_object_vars($oError);
// FIXME; We should include ERANGE error handling here too, when we can expect large deletions etc.
if (isset($aError['errorcode']) && $aError['errorcode'] == 'WSPLICE') {
$sRNA = 'r.spl?';
$sProtein = 'p.?';
break;
}
}
if (!$sProtein && !empty($aVariantsOnProtein)) {
foreach ($aVariantsOnProtein as $sVariantOnProtein) {
// 2014-12-05; 3.0-13; Fixed bug: When multiple genes exist in the UD, make sure we are reading out the right protein change here.
if (($nPos = strpos($sVariantOnProtein, $aTranscript['gene'] . '_i' . $aFieldsTranscript['id_mutalyzer'] . '):p.')) !== false) {
// FIXME: Since this code is the same as the code used for transcripts already in LOVD, better make a function out of it.
$sProtein = substr($sVariantOnProtein, $nPos + strlen($aTranscript['gene'] . '_i' . $aFieldsTranscript['id_mutalyzer'] . '):'));
if ($sProtein == 'p.?') {
$sRNA = 'r.?';
} elseif ($sProtein == 'p.(=)') {
// FIXME: Not correct in case of substitutions e.g. in the third position of the codon, not leading to a protein change.
$sRNA = 'r.(=)';
} else {
// RNA will default to r.(?).
$sRNA = 'r.(?)';
}
break;
}
}
}
$aVariantOnTranscriptSQL[1][8] = $sRNA;
$aVariantOnTranscriptSQL[1][9] = $sProtein;
$aVariantOnTranscriptSQL[1][8] = (empty($aPrediction['predict']['RNA'])? '' : $aPrediction['predict']['RNA']);
$aVariantOnTranscriptSQL[1][9] = (empty($aPrediction['predict']['protein'])? '' : $aPrediction['predict']['protein']);
// Map the variant to the newly inserted transcript.
$aVariantOnTranscriptSQL[1][1] = $nID;
......
......@@ -31,18 +31,23 @@
the capitalization of a disease name.
* Fixed bug; Variants counts on the gene homepage were counted using the gene's
first transcript in the database only.
* Fixed bug; Attempting to make changes to the "Healty/Control" disease using
* Fixed bug; Attempting to make changes to the "Healthy/Control" disease using
an import file resulted in a fatal error.
* Fixed bug; Under certain circumstances, fatal errors would not be logged even
though LOVD reported they had been logged.
* Fixed bug; During an insert import the progress bar was hanging when a
transcript ID is missing in the section variants on transcripts.
* The geneswitcher in the header is now an autocomplete field for large databases.
* Fixed bug; During an insert import, the progress bar was hanging when a
transcript ID was missing in the section Variants_On_Transcripts.
* The geneswitcher in the header is now an autocomplete field for large
databases.
* Improved error message when LOVD could not retrieve a valid gene reference
sequence from Mutalyzer.
* Fixed bug; During update import no difference was seen between '02' and '2',
this is not correct for string fields.
* Fixed bug; During import diseaseID 0 was not recognized.
* Fixed bug; During update import no difference was seen between '02' and '2',
this is not correct for string fields.
* Fixed bug; During import, disease ID '0' was not recognized.
* Fixed bug; When LOVD could not connect to the database, the error message was
not shown because of a fatal error when trying to log the message.
* The page titles are made consistent with the dropdown menu options of the
page tabs, and missing menu items are added.
/**************************
......
......@@ -4,13 +4,14 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2011-08-15
* Modified : 2015-10-28
* Modified : 2016-02-05
* For LOVD : 3.0-15
*
* Copyright : 2004-2015 Leiden University Medical Center; http://www.LUMC.nl/
* Programmers : Ing. Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@LUMC.nl>
* Ing. Ivar C. Lugtenburg <I.C.Lugtenburg@LUMC.nl>
* Msc. Daan Asscheman <D.Asscheman@LUMC.nl>
* Mark Kroon MSc. <M.Kroon@LUMC.nl>
*
*
* This file is part of LOVD.
......@@ -448,7 +449,7 @@ class LOVD_CustomViewList extends LOVD_Object {
$this->aColumnsViewList = array_merge($this->aColumnsViewList,
array(
'distance_to_var' => array(
'view' => array('Distance (bp)', 90),
'view' => array('Distance (bp)', 90, 'style="text-align : right;"'),
'db' => array('distance_to_var', 'ASC', false)),
));
// Always force default sorting...
......@@ -542,7 +543,7 @@ class LOVD_CustomViewList extends LOVD_Object {
'legend' => array('The variant\'s effect on the protein\'s function, in the format Reported/Curator concluded; ranging from \'+\' (variant affects function) to \'-\' (does not affect function).',
'The variant\'s affect on the protein\'s function, in the format Reported/Curator concluded; \'+\' indicating the variant affects function, \'+?\' probably affects function, \'-\' does not affect function, \'-?\' probably does not affect function, \'?\' effect unknown, \'.\' effect not classified.')),
'vot_reported' => array(
'view' => array('Reported', 70),
'view' => array('Reported', 70, 'style="text-align : right;"'),
'db' => array('vot_reported', 'ASC', 'INT_UNSIGNED'),
'legend' => array('The number of times this variant has been reported.',
'The number of times this variant has been reported in the database.')),
......@@ -562,7 +563,7 @@ class LOVD_CustomViewList extends LOVD_Object {
$this->aColumnsViewList = array_merge($this->aColumnsViewList,
array(
'id' => array(
'view' => array('Screening ID', 110),
'view' => array('Screening ID', 110, 'style="text-align : right;"'),
'db' => array('s.id', 'ASC', true)),
));
$this->sSortDefault = 'id';
......@@ -648,7 +649,7 @@ class LOVD_CustomViewList extends LOVD_Object {
array(
// NOTE: there are more columns defined a little further up.
'panel_size' => array(
'view' => array('Panel size', 70),
'view' => array('Panel size', 70, 'style="text-align : right;"'),
'db' => array('i.panel_size', 'DESC', true)),
'owned_by_' => array(
'view' => array('Owner', 160),
......
......@@ -4,13 +4,14 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2010-07-28
* Modified : 2015-12-08
* Modified : 2016-02-05
* For LOVD : 3.0-15
*
* Copyright : 2004-2015 Leiden University Medical Center; http://www.LUMC.nl/
* Programmers : Ing. Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@LUMC.nl>
* Ing. Ivar C. Lugtenburg <I.C.Lugtenburg@LUMC.nl>
* Msc. Daan Asscheman <D.Asscheman@LUMC.nl>
* Mark Kroon MSc. <M.Kroon@LUMC.nl>
*
*
* This file is part of LOVD.
......@@ -105,7 +106,7 @@ class LOVD_Disease extends LOVD_Object {
$this->aColumnsViewList =
array(
'diseaseid' => array(
'view' => array('ID', 45),
'view' => array('ID', 45, 'style="text-align : right;"'),
'db' => array('d.id', 'ASC', true)),
'symbol' => array(
'view' => array('Abbreviation', 110),
......@@ -114,7 +115,7 @@ class LOVD_Disease extends LOVD_Object {
'view' => array('Name', 300),
'db' => array('d.name', 'ASC', true)),
'id_omim' => array(
'view' => array('OMIM ID', 75),
'view' => array('OMIM ID', 75, 'style="text-align : right;"'),
'db' => array('d.id_omim', 'ASC', true)),
'individuals' => array(
'view' => array('Individuals', 80, 'style="text-align : right;"'),
......
......@@ -4,13 +4,14 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2010-12-15
* Modified : 2015-12-09
* Modified : 2016-02-05
* For LOVD : 3.0-15
*
* Copyright : 2004-2015 Leiden University Medical Center; http://www.LUMC.nl/
* Programmers : Ing. Ivar C. Lugtenburg <I.C.Lugtenburg@LUMC.nl>
* Ing. Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@LUMC.nl>
* Msc. Daan Asscheman <D.Asscheman@LUMC.nl>
* Mark Kroon MSc. <M.Kroon@LUMC.nl>
*
*
* This file is part of LOVD.
......@@ -180,13 +181,13 @@ class LOVD_Gene extends LOVD_Object {
'view' => array('Band', 70),
'db' => array('g.chrom_band', false, true)),
'transcripts' => array(
'view' => array('Transcripts', 90),
'view' => array('Transcripts', 90, 'style="text-align : right;"'),
'db' => array('transcripts', 'DESC', 'INT_UNSIGNED')),
'variants' => array(
'view' => array('Variants', 70),
'view' => array('Variants', 70, 'style="text-align : right;"'),
'db' => array('variants', 'DESC', 'INT_UNSIGNED')),
'uniq_variants' => array(
'view' => array('Unique variants', 70),
'view' => array('Unique variants', 70, 'style="text-align : right;"'),
'db' => array('uniq_variants', 'DESC', 'INT_UNSIGNED')),
'updated_date_' => array(
'view' => array('Last updated', 110),
......
......@@ -4,13 +4,14 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2010-12-20
* Modified : 2015-10-09
* For LOVD : 3.0-14
* Modified : 2016-02-08
* For LOVD : 3.0-15
*
* Copyright : 2004-2015 Leiden University Medical Center; http://www.LUMC.nl/
* Copyright : 2004-2016 Leiden University Medical Center; http://www.LUMC.nl/
* Programmers : Ing. Ivar C. Lugtenburg <I.C.Lugtenburg@LUMC.nl>
* Ing. Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@LUMC.nl>
* Msc. Daan Asscheman <D.Asscheman@LUMC.nl>
* Mark Kroon MSc. <M.Kroon@LUMC.nl>
*
*
* This file is part of LOVD.
......@@ -139,7 +140,7 @@ class LOVD_GenomeVariant extends LOVD_Custom {
'view' => false,
'db' => array('screeningids', 'ASC', 'TEXT')),
'id_' => array(
'view' => array('Variant ID', 90),
'view' => array('Variant ID', 90, 'style="text-align : right;"'),
'db' => array('vog.id', 'ASC', true)),
'effect' => array(
'view' => array('Effect', 70),
......@@ -287,7 +288,7 @@ class LOVD_GenomeVariant extends LOVD_Custom {
}
if ($_AUTH['level'] >= LEVEL_CURATOR) {
$aSelectOwner = $_DB->query('SELECT id, name FROM ' . TABLE_USERS .
$aSelectOwner = $_DB->query('SELECT id, CONCAT(name, " (#", id, ")") as name_id FROM ' . TABLE_USERS .
(ACTION == 'edit' && (int) $_POST['owned_by'] === 0? '' : ' WHERE id > 0') .
' ORDER BY name')->fetchAllCombine();
$aFormOwner = array('Owner of this data', '', 'select', 'owned_by', 1, $aSelectOwner, false, false, false);
......
......@@ -4,13 +4,14 @@
* LEIDEN OPEN VARIATION DATABASE (LOVD)
*
* Created : 2011-02-16
* Modified : 2015-11-27
* Modified : 2016-02-08
* For LOVD : 3.0-15
*
* Copyright : 2004-2015 Leiden University Medical Center; http://www.LUMC.nl/
* Copyright : 2004-2016 Leiden University Medical Center; http://www.LUMC.nl/
* Programmers : Ing. Ivar C. Lugtenburg <I.C.Lugtenburg@LUMC.nl>
* Ing. Ivo F.A.C. Fokkema <I.F.A.C.Fokkema@LUMC.nl>
* Msc. Daan Asscheman <D.Asscheman@LUMC.nl>
* Mark Kroon MSc. <M.Kroon@LUMC.nl>
*
*