Skip to content
Snippets Groups Projects
Commit af3a5788 authored by Vermaat's avatar Vermaat
Browse files

Add transcript in getTranscriptsMapping output

Previously the getTranscriptsMapping webservice method didn't return
enough information to construct a complete transcript name. This is now
reported in a new `transcript` field.
parent 736f0bc1
No related branches found
No related tags found
No related merge requests found
...@@ -310,6 +310,7 @@ class TranscriptMappingInfo(ComplexModel): ...@@ -310,6 +310,7 @@ class TranscriptMappingInfo(ComplexModel):
""" """
__namespace__ = SOAP_NAMESPACE __namespace__ = SOAP_NAMESPACE
transcript = Mandatory.Unicode
name = Mandatory.Unicode name = Mandatory.Unicode
version = Mandatory.Integer version = Mandatory.Integer
gene = Mandatory.Unicode gene = Mandatory.Unicode
......
...@@ -458,6 +458,7 @@ class MutalyzerService(ServiceBase): ...@@ -458,6 +458,7 @@ class MutalyzerService(ServiceBase):
- 1 ; Return all hit transcripts. - 1 ; Return all hit transcripts.
@return: Array of TranscriptMappingInfo objects with fields: @return: Array of TranscriptMappingInfo objects with fields:
- transcript
- name - name
- version - version
- gene - gene
...@@ -526,9 +527,22 @@ class MutalyzerService(ServiceBase): ...@@ -526,9 +527,22 @@ class MutalyzerService(ServiceBase):
for mapping in mappings: for mapping in mappings:
t = TranscriptMappingInfo() t = TranscriptMappingInfo()
# TODO: This doesn't work so well for mappings with select_transcript
# set, for example LRG and mtDNA mappings, but it's not so easy to if mapping.version:
# fix in a backwards compatible way. accession = '%s.%i' % (mapping.accession, mapping.version)
else:
accession = mapping.accession
if mapping.select_transcript:
if mapping.reference_type == 'lrg':
selector = 't%d' % mapping.transcript
elif mapping.transcript:
selector = '(%s_v%.3i)' % (mapping.gene, mapping.transcript)
else:
selector = '(%s)' % mapping.gene
else:
selector = ''
t.transcript = '%s%s' % (accession, selector)
t.name = mapping.accession t.name = mapping.accession
t.version = mapping.version t.version = mapping.version
t.gene = mapping.gene t.gene = mapping.gene
......
...@@ -220,6 +220,7 @@ def test_get_transcripts_mapping(api): ...@@ -220,6 +220,7 @@ def test_get_transcripts_mapping(api):
r = api('getTranscriptsMapping', 'hg19', 'chr11', 111955524, 111966518) r = api('getTranscriptsMapping', 'hg19', 'chr11', 111955524, 111966518)
assert r == [{'cds_start': 111957492, assert r == [{'cds_start': 111957492,
'cds_stop': 111956019, 'cds_stop': 111956019,
'transcript': 'NM_012459.2',
'name': 'NM_012459', 'name': 'NM_012459',
'stop': 111955524, 'stop': 111955524,
'start': 111957522, 'start': 111957522,
...@@ -228,6 +229,7 @@ def test_get_transcripts_mapping(api): ...@@ -228,6 +229,7 @@ def test_get_transcripts_mapping(api):
'orientation': '-'}, 'orientation': '-'},
{'cds_start': None, {'cds_start': None,
'cds_stop': None, 'cds_stop': None,
'transcript': 'NR_028383.1',
'name': 'NR_028383', 'name': 'NR_028383',
'stop': 111955524, 'stop': 111955524,
'start': 111957522, 'start': 111957522,
...@@ -236,6 +238,7 @@ def test_get_transcripts_mapping(api): ...@@ -236,6 +238,7 @@ def test_get_transcripts_mapping(api):
'orientation': '-'}, 'orientation': '-'},
{'cds_start': 111957632, {'cds_start': 111957632,
'cds_stop': 111965694, 'cds_stop': 111965694,
'transcript': 'NM_003002.2',
'name': 'NM_003002', 'name': 'NM_003002',
'stop': 111966518, 'stop': 111966518,
'start': 111957571, 'start': 111957571,
......
...@@ -258,6 +258,22 @@ def test_gettranscriptsbygenename_invalid(api): ...@@ -258,6 +258,22 @@ def test_gettranscriptsbygenename_invalid(api):
assert not r assert not r
@pytest.mark.usefixtures('hg19_transcript_mappings')
def test_gettranscriptsmapping_mtdna(api):
"""
Running getTranscriptsMapping on mtDNA should give a list of transcripts
including their complete identification in the transcript attribute.
"""
r = api('getTranscriptsMapping', 'hg19', 'chrM', 10765, 10765, 1)
assert type(r.TranscriptMappingInfo) == list
assert len(r.TranscriptMappingInfo) == 1
info = r.TranscriptMappingInfo[0]
assert 'NC_012920' == info.name
assert 1 == info.version
assert 'ND4' == info.gene
assert 'NC_012920.1(ND4_v001)' == info.transcript
@with_references('AF230870.1') @with_references('AF230870.1')
def test_gettranscriptsandinfo_valid(api): def test_gettranscriptsandinfo_valid(api):
""" """
...@@ -804,6 +820,7 @@ def test_get_transcripts_mapping(api): ...@@ -804,6 +820,7 @@ def test_get_transcripts_mapping(api):
for t_real, t_expected in for t_real, t_expected in
zip(r.TranscriptMappingInfo, [{'cds_start': 111957492, zip(r.TranscriptMappingInfo, [{'cds_start': 111957492,
'cds_stop': 111956019, 'cds_stop': 111956019,
'transcript': 'NM_012459.2',
'name': 'NM_012459', 'name': 'NM_012459',
'stop': 111955524, 'stop': 111955524,
'start': 111957522, 'start': 111957522,
...@@ -812,6 +829,7 @@ def test_get_transcripts_mapping(api): ...@@ -812,6 +829,7 @@ def test_get_transcripts_mapping(api):
'orientation': '-'}, 'orientation': '-'},
{'cds_start': None, {'cds_start': None,
'cds_stop': None, 'cds_stop': None,
'transcript': 'NR_028383.1',
'name': 'NR_028383', 'name': 'NR_028383',
'stop': 111955524, 'stop': 111955524,
'start': 111957522, 'start': 111957522,
...@@ -820,6 +838,7 @@ def test_get_transcripts_mapping(api): ...@@ -820,6 +838,7 @@ def test_get_transcripts_mapping(api):
'orientation': '-'}, 'orientation': '-'},
{'cds_start': 111957632, {'cds_start': 111957632,
'cds_stop': 111965694, 'cds_stop': 111965694,
'transcript': 'NM_003002.2',
'name': 'NM_003002', 'name': 'NM_003002',
'stop': 111966518, 'stop': 111966518,
'start': 111957571, 'start': 111957571,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment