Skip to content

Commit

Permalink
Merge 8bf8e94 into c7a580b
Browse files Browse the repository at this point in the history
  • Loading branch information
iskandr committed Feb 22, 2018
2 parents c7a580b + 8bf8e94 commit 3c5a84c
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 6 deletions.
2 changes: 1 addition & 1 deletion mhcnames/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
)
from .allele_parse_error import AlleleParseError

__version__ = "0.4.4"
__version__ = "0.4.5"

__all__ = [
"AlleleName",
Expand Down
7 changes: 3 additions & 4 deletions mhcnames/allele_name.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,15 +104,15 @@ def parse_allele_name(name, species_prefix=None):
if gene.isalpha():
# expand e.g. DRA -> DRA1, DQB -> DQB1
gene = gene + "1"
elif len(name) == 5:
# example: SLA-30101
gene, name = name[0], name[1:]
elif name[0].isalpha():
# if there are more separators to come, then assume the gene names
# can have the form "DQA1"
gene, name = parse_letters(name)
elif name[0].isdigit():
gene, name = parse_numbers(name)
elif len(name) == 5:
# example: SLA-30101
gene, name = name[0], name[1:]
elif len(name) in (6, 7) and ("*" in name or "-" in name or ":" in name):
# example: SLA-3*0101 or SLA-3*01:01
gene, name = parse_alphanum(name)
Expand All @@ -127,7 +127,6 @@ def parse_allele_name(name, species_prefix=None):
raise AlleleParseError("Malformed MHC type %s" % original)

gene = gene.upper()

# skip initial separator
sep, name = parse_separator(name)

Expand Down
24 changes: 23 additions & 1 deletion test/test_swine.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
"""
Pig allele names from:
Analyzing the genetic characteristics and function of the swine
leukocyte antigen 2 gene in a Chinese inbreed of pigs
"""

from mhcnames import (
parse_allele_name,
AlleleName,
)
from nose.tools import eq_

def test_SLA_1_0101():
def test_SLA_1_0101_with_seps():
eq_(
parse_allele_name("SLA-1*01:01"),
AlleleName("SLA", "1", "01", "01"))
Expand All @@ -14,3 +19,20 @@ def test_SLA_1_HB01():
eq_(
parse_allele_name("SLA-1-HB01"),
AlleleName("SLA", "1", "HB", "01"))

def test_SLA_1_0101_no_seps():
eq_(
parse_allele_name("SLA-10101"),
AlleleName("SLA", "1", "01", "01"))

def test_SLA_2_07we01():
eq_(parse_allele_name("SLA-2*07we01"),
AlleleName("SLA", "2", "07we", "01"))

def test_SLA_2_jh01():
eq_(parse_allele_name("SLA-2*jh01"),
AlleleName("SLA", "2", "jh", "01"))

def test_SLA_2_w09pt22():
eq_(parse_allele_name("SLA-2*w09pt22"),
AlleleName("SLA", "2", "w09pt", "22"))

0 comments on commit 3c5a84c

Please sign in to comment.