mutalyzer2 issueshttps://git.lumc.nl/mutalyzer/mutalyzer2/-/issues2014-12-08T15:06:39+01:00https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/4Use NCBI provided GFF files as transcript mapping source?2014-12-08T15:06:39+01:00VermaatUse NCBI provided GFF files as transcript mapping source?Migrated from [GitLab #6](https://git.lumc.nl/mutalyzer/mutalyzer/issues/6)
Instead of the mapview files, perhaps we should use the more standard GFF files as provided here?
ftp://ftp.ncbi.nlm.nih.gov/genomes/H_sapiens/GFF/
I haven't ...Migrated from [GitLab #6](https://git.lumc.nl/mutalyzer/mutalyzer/issues/6)
Instead of the mapview files, perhaps we should use the more standard GFF files as provided here?
ftp://ftp.ncbi.nlm.nih.gov/genomes/H_sapiens/GFF/
I haven't yet checked if they contain the same information.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/5Missing chromosomes2014-12-08T15:08:40+01:00VermaatMissing chromosomesMigrated from [GitLab #7](https://git.lumc.nl/mutalyzer/mutalyzer/issues/7)
Apparently we always missed a few chromosome definitions used by the transcript mappings. They are:
```
hg18
chr13_random
chr2_random
chr3_random
chr19_random
...Migrated from [GitLab #7](https://git.lumc.nl/mutalyzer/mutalyzer/issues/7)
Apparently we always missed a few chromosome definitions used by the transcript mappings. They are:
```
hg18
chr13_random
chr2_random
chr3_random
chr19_random
chr4_random
chr7_random
chr9_random
chr8_random
chr5_h2_hap1
chrX_random
chr21_random
chr16_random
chr15_random
chr17_random
chr6_random
chr5_random
chr22_random
chr6_qbl_hap2
chr1_random
hg19
chr4_gl000193_random
chrUn_gl000228
chr4_gl000194_random
chrUn_gl000220
chrUn_gl000222
chr19_gl000209_random
chrUn_gl000211
chrUn_gl000212
chr17_gl000205_random
chrUn_gl000219
chrUn_gl000218
chr7_gl000195_random
```
And for GRCh38 we don't have any chromosomes defined yet besides the standard ones, see [merge request !20](https://git.lumc.nl/mutalyzer/mutalyzer/merge_requests/20).
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/6Store a copy of our mapping database2014-12-08T15:10:30+01:00VermaatStore a copy of our mapping databaseMigrated from [GitLab #10](https://git.lumc.nl/mutalyzer/mutalyzer/issues/10)
Over the years we have picked up an interesting set of transcript mappings, including mappings for transcripts no longer available from major database sources...Migrated from [GitLab #10](https://git.lumc.nl/mutalyzer/mutalyzer/issues/10)
Over the years we have picked up an interesting set of transcript mappings, including mappings for transcripts no longer available from major database sources. When setting up a new server (or restoring a crashed one...), we always take care to not start from scratch, but instead use this existing mapping database.
Perhaps we should (and/or):
- Make our mapping database available as a download
- Automate creating this download
- Automate importing this download
Should this be a raw SQL dump? Then it's not database agnostic. Should we invent our own format? Just simple CSV?
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/7Import Mapview transcript mappings for ALT_REF_LOCI contigs2014-12-08T15:12:22+01:00VermaatImport Mapview transcript mappings for ALT_REF_LOCI contigsMigrated from [GitLab #15](https://git.lumc.nl/mutalyzer/mutalyzer/issues/15)
For both hg19 and hg38 we have the ALT_REF_LOCI contigs defined as chromosomes in our database (see [GitLab !20](https://git.lumc.nl/mutalyzer/mutalyzer/merge...Migrated from [GitLab #15](https://git.lumc.nl/mutalyzer/mutalyzer/issues/15)
For both hg19 and hg38 we have the ALT_REF_LOCI contigs defined as chromosomes in our database (see [GitLab !20](https://git.lumc.nl/mutalyzer/mutalyzer/merge_requests/20)), but we ignore their mappings in the Mapview file on import, making them useless.
Leaving the issue of other random and unplaced contigs aside for now (see #5), we should at least use the mappings for the ALT_REF_LOCI.
It seems NCBI Mapview mappings on ALT_REF_LOCI contigs are described as on CHROMOSOME_NAME|ALT_REF_LOCI_ACCESSION, for example:
```
13|NT_187592.1
```
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/8Use monoseq for protein sequences in the name checker2014-12-08T15:13:18+01:00VermaatUse monoseq for protein sequences in the name checkerMigrated from [GitLab #17](https://git.lumc.nl/mutalyzer/mutalyzer/issues/17)
Use [monoseq](http://monoseq.readthedocs.org/) for showing protein sequences in the name checker (or perhaps look into [BioJS](http://www.ebi.ac.uk/Tools/bioj...Migrated from [GitLab #17](https://git.lumc.nl/mutalyzer/mutalyzer/issues/17)
Use [monoseq](http://monoseq.readthedocs.org/) for showing protein sequences in the name checker (or perhaps look into [BioJS](http://www.ebi.ac.uk/Tools/biojs/registry/Biojs.Sequence.html)).
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/10Refactor batch job architecture2014-12-08T15:17:27+01:00VermaatRefactor batch job architectureMigrated from [GitLab #21](https://git.lumc.nl/mutalyzer/mutalyzer/issues/21)
There are some problems with the current batch architecture, especially that there cannot be multiple workers without synchronisation problems.
- Good read: h...Migrated from [GitLab #21](https://git.lumc.nl/mutalyzer/mutalyzer/issues/21)
There are some problems with the current batch architecture, especially that there cannot be multiple workers without synchronisation problems.
- Good read: http://news.ycombinator.com/item?id=3002861
- Suggestion: http://celeryproject.org/
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/12Webservice rate limiting2014-12-08T15:17:09+01:00VermaatWebservice rate limitingMigrated from [GitLab #27](https://git.lumc.nl/mutalyzer/mutalyzer/issues/27)
Implementing some sort of rate limiting for the webservices should be quite easy, especially since we already use Redis for stat counters.
Migrated from [GitLab #27](https://git.lumc.nl/mutalyzer/mutalyzer/issues/27)
Implementing some sort of rate limiting for the webservices should be quite easy, especially since we already use Redis for stat counters.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/13Transcript mappings table needs another index2015-11-04T21:59:37+01:00VermaatTranscript mappings table needs another indexMigrated from [GitLab #31](https://git.lumc.nl/mutalyzer/mutalyzer/issues/31)
Didn't really investigate yet, but PostgreSQL stats indicate that we miss an index on the transcript mappings table.
Migrated from [GitLab #31](https://git.lumc.nl/mutalyzer/mutalyzer/issues/31)
Didn't really investigate yet, but PostgreSQL stats indicate that we miss an index on the transcript mappings table.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/14New layout uses Google web fonts2016-02-05T15:08:51+01:00VermaatNew layout uses Google web fontsMigrated from [GitLab #32](https://git.lumc.nl/mutalyzer/mutalyzer/issues/32)
The new layout by Landscape uses the Robotic font via the Google web fonts API:
``` html
<link href="http://fonts.googleapis.com/css?family=Roboto:400,300,30...Migrated from [GitLab #32](https://git.lumc.nl/mutalyzer/mutalyzer/issues/32)
The new layout by Landscape uses the Robotic font via the Google web fonts API:
``` html
<link href="http://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic"
rel="stylesheet" type="text/css">
```
We probably don't want this and host any custom fonts on our own webserver.
- [Are there privacy considerations in using Google web fonts?](http://webmasters.stackexchange.com/questions/60464/are-there-privacy-considerations-in-using-google-web-fonts)
- [Google Webfonts, The Spy Inside?](http://fontfeed.com/archives/google-webfonts-the-spy-inside/)
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/15Up maximum variant description length in batch input2014-12-08T15:19:58+01:00VermaatUp maximum variant description length in batch inputMigrated from [GitLab #36](https://git.lumc.nl/mutalyzer/mutalyzer/issues/36)
Currently we use a `VARCHAR(200)` database field, but we might want to extend that. From our paper, 1MB would be a sensible upper bound (but I'm not sure we w...Migrated from [GitLab #36](https://git.lumc.nl/mutalyzer/mutalyzer/issues/36)
Currently we use a `VARCHAR(200)` database field, but we might want to extend that. From our paper, 1MB would be a sensible upper bound (but I'm not sure we want to allow that).
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/23Gene names in Position Converter batch output.2014-12-24T19:32:53+01:00Mihai LefterGene names in Position Converter batch output.*Created by: jfjlaros*
The website groups the output of the Position Converter by gene, e.g.,:
```
https://mutalyzer.nl/position-converter?assembly_name_or_alias=GRCh37&description=chr13%3Ag.32972841C%3ET
```
This feature does not exi...*Created by: jfjlaros*
The website groups the output of the Position Converter by gene, e.g.,:
```
https://mutalyzer.nl/position-converter?assembly_name_or_alias=GRCh37&description=chr13%3Ag.32972841C%3ET
```
This feature does not exist for the batch output, perhaps we can add a column for the gene name.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/29Explicitely show input on all result pages2015-11-06T09:36:30+01:00VermaatExplicitely show input on all result pagesObserved situation:
1. Go to the Name Checker and [submit the description `AB026906.1:c.274G>T`](https://mutalyzer.nl/name-checker?description=AB026906.1%3Ac.274G%3ET).
2. Change the description in the input form to `AB026906.1:c.274G>A`...Observed situation:
1. Go to the Name Checker and [submit the description `AB026906.1:c.274G>T`](https://mutalyzer.nl/name-checker?description=AB026906.1%3Ac.274G%3ET).
2. Change the description in the input form to `AB026906.1:c.274G>A` (changed `T` to `A`) and resubmit.
3. Press the _back_ button in your browser.
4. Observe that you now see the result page for `AB026906.1:c.274G>T`, but the input form contains `AB026906.1:c.274G>A`.
This is just how web forms and browsers work, so we cannot really change it. What we can do, is make it more obvious what the input was for a result page by explicitely showing it with the results (in addition to populating the input form with it):
![screenshot from 2015-02-04 13 06 28](https://cloud.githubusercontent.com/assets/623509/6040134/b495794a-ac6e-11e4-935a-5a1c6cca02b5.png)
I guess this would apply to most of our interfaces, not just the Name Checker.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/47Description extraction interface suggestion.2015-05-29T11:45:09+02:00Mihai LefterDescription extraction interface suggestion.*Created by: jfjlaros*
Suggestion by Ken Doig:
It would also be great if the API allowed supply of a genomic position offset and chromosome as well as the ref/alt sequences and then the returned variant would be 'ready to go', already ...*Created by: jfjlaros*
Suggestion by Ken Doig:
It would also be great if the API allowed supply of a genomic position offset and chromosome as well as the ref/alt sequences and then the returned variant would be 'ready to go', already in genomic coords.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/61Better handling of database connection errors2015-07-17T09:50:07+02:00VermaatBetter handling of database connection errorsFor example, restarting the PostgreSQL server, I could trigger the following SQLAlchemy exception:
```
Exception on /description-extractor [POST]
Traceback (most recent call last):
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/s...For example, restarting the PostgreSQL server, I could trigger the following SQLAlchemy exception:
```
Exception on /description-extractor [POST]
Traceback (most recent call last):
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/mutalyzer/website/views.py", line 739, in description_extractor_submit
genbank_record = retriever.loadrecord(reference_accession_number)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/mutalyzer/Retriever.py", line 772, in loadrecord
.filter_by(accession=identifier) \
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2367, in first
ret = list(self[0:1])
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2228, in __getitem__
return list(res)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2438, in __iter__
return self._execute_and_instances(context)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2453, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 729, in execute
return meth(self, multiparams, params)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 322, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 826, in _execute_clauseelement
compiled_sql, distilled_params
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 958, in _execute_context
context)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1159, in _handle_dbapi_exception
exc_info
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 951, in _execute_context
context)
File "/opt/mutalyzer/virtualenv/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 436, in do_execute
cursor.execute(statement, parameters)
OperationalError: (OperationalError) terminating connection due to administrator command
SSL connection has been closed unexpectedly
```
Instead of resulting in an internal server error, it would probably be better to respond with a helpful error message and status 503 Service Unavailable. Especially for the web services, this would allow clients to handle this in the same way as the maintenance status, also using 503.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/118e-mail suggestions trigger.2015-11-08T16:30:11+01:00Mihai Leftere-mail suggestions trigger.*Created by: jfjlaros*
The e-mail suggestion script is now triggered when an other element is selected. This has as side effect that buttons beneath the e-mail field move if there is a suggestion.
Perhaps it is possible to reserve some...*Created by: jfjlaros*
The e-mail suggestion script is now triggered when an other element is selected. This has as side effect that buttons beneath the e-mail field move if there is a suggestion.
Perhaps it is possible to reserve some space for the suggestion.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/125Use the `logging` module for logging.2015-11-11T14:48:23+01:00Mihai LefterUse the `logging` module for logging.*Created by: jfjlaros*
The title is quite self-explanatory.
*Created by: jfjlaros*
The title is quite self-explanatory.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/127Interpret transl_except aa:TERM annotation2015-11-20T12:36:13+01:00VermaatInterpret transl_except aa:TERM annotationSeveral transcripts in `NC_012920.1` (rCRS) are annotated with an incomplete CDS. This CDS is completed by the addition of a 3' polyA tail to the mRNA.
This is annotated in the GenBank file as a note and with the `transl_except` tag. Mu...Several transcripts in `NC_012920.1` (rCRS) are annotated with an incomplete CDS. This CDS is completed by the addition of a 3' polyA tail to the mRNA.
This is annotated in the GenBank file as a note and with the `transl_except` tag. Mutalyzer should interpret this tag in order to correctly construct the complete CDS.
http://www.ncbi.nlm.nih.gov/nuccore/251831106
https://mutalyzer.nl/name-checker?description=NC_012920.1%28ND1_v001%29%3Ac.232del
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/130Memory issue with Pyparsing 2.0.62016-03-08T17:05:01+01:00VermaatMemory issue with Pyparsing 2.0.6With Pyparsing 2.0.6, unit tests fail due to memory usage.
See http://sourceforge.net/p/pyparsing/mailman/message/34635387/
With Pyparsing 2.0.6, unit tests fail due to memory usage.
See http://sourceforge.net/p/pyparsing/mailman/message/34635387/
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/131Don't use n. on protein-coding transcripts2015-12-15T10:10:59+01:00VermaatDon't use n. on protein-coding transcriptsFor example, instead of `NM_181690.2:n.798A>G` we could just show `NM_181690.2:798A>G`.
For example, instead of `NM_181690.2:n.798A>G` we could just show `NM_181690.2:798A>G`.
https://git.lumc.nl/mutalyzer/mutalyzer2/-/issues/135More informative error messages.2016-03-10T17:33:18+01:00Mihai LefterMore informative error messages.*Created by: jfjlaros*
Checking the variant `NM_004006.2:c.31+3A>C` results in the following error message:
```
"Intronic position given for a non-genomic reference sequence."
```
More informative would be:
```
"This description can ...*Created by: jfjlaros*
Checking the variant `NM_004006.2:c.31+3A>C` results in the following error message:
```
"Intronic position given for a non-genomic reference sequence."
```
More informative would be:
```
"This description can not be verified since the variant reported is not present in the reference sequence given. NM_ records do not contain intron sequences".
```
Checking the variant `LRG_199t2:c.31+3A>C` results in the following error message:
```
"Multiple transcripts found for gene DMD. Please choose from: 1"
```
More informative would be:
```
"The reference sequence contains only 1 transcript, t2 is not defined"
```