Skip to content

Commit

Permalink
ex-228 (jebene) - changed variant to cell and loci to row
Browse files Browse the repository at this point in the history
  • Loading branch information
jebene committed Apr 20, 2015
1 parent f171bc6 commit 234ce44
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 48 deletions.
38 changes: 19 additions & 19 deletions jacquard/merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,19 +102,19 @@ class _Filter(object):
"""
#pylint: disable=too-few-public-methods
def __init__(self, args):
variant_filters = {"all" : _Filter._include_all,
"valid": _Filter._include_valid,
"passed" : _Filter._include_variant_if_passed,
"somatic" : _Filter._include_variant_if_somatic}
locus_filters = {"all": _Filter._include_all,
"all_passed": _Filter._include_locus_if_all_passed,
"at_least_one_passed": _Filter.\
_include_locus_if_any_passed,
"all_somatic": _Filter._include_locus_if_all_somatic,
"at_least_one_somatic": _Filter.\
_include_locus_if_any_somatic}
self.include_variant = variant_filters[args.include_cells]
self.include_locus = locus_filters[args.include_rows]
cell_filters = {"all" : _Filter._include_all,
"valid": _Filter._include_valid,
"passed" : _Filter._include_cell_if_passed,
"somatic" : _Filter._include_cell_if_somatic}
row_filters = {"all": _Filter._include_all,
"all_passed": _Filter._include_row_if_all_passed,
"at_least_one_passed": _Filter.\
_include_row_if_any_passed,
"all_somatic": _Filter._include_row_if_all_somatic,
"at_least_one_somatic": _Filter.\
_include_row_if_any_somatic}
self.include_variant = cell_filters[args.include_cells]
self.include_locus = row_filters[args.include_rows]

#TODO: (cgates/jebene): Should this be part of VcfRecord?
@staticmethod
Expand All @@ -127,7 +127,7 @@ def _is_somatic(record):
return False

@staticmethod
def _include_variant_if_somatic(record):
def _include_cell_if_somatic(record):
return _Filter._is_somatic(record)

@staticmethod
Expand All @@ -139,32 +139,32 @@ def _include_valid(record):
return "JQ_EXCLUDE" not in record.filter

@staticmethod
def _include_variant_if_passed(record):
def _include_cell_if_passed(record):
return record.filter == "PASS"

@staticmethod
def _include_locus_if_all_passed(records):
def _include_row_if_all_passed(records):
for record in records:
if record.filter != "PASS":
return False
return True

@staticmethod
def _include_locus_if_any_passed(records):
def _include_row_if_any_passed(records):
for record in records:
if record.filter == "PASS":
return True
return False

@staticmethod
def _include_locus_if_all_somatic(records):
def _include_row_if_all_somatic(records):
for record in records:
if not _Filter._is_somatic(record):
return False
return True

@staticmethod
def _include_locus_if_any_somatic(records):
def _include_row_if_any_somatic(records):
for record in records:
if _Filter._is_somatic(record):
return True
Expand Down
58 changes: 29 additions & 29 deletions test/merge_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,43 +35,43 @@ def test_init_includeAllByDefault(self):
record_filter = merge._Filter(args)
self.assertEquals(merge._Filter._include_valid,
record_filter.include_variant)
self.assertEquals(merge._Filter._include_locus_if_any_somatic,
self.assertEquals(merge._Filter._include_row_if_any_somatic,
record_filter.include_locus)

def test_init_includeVariantPassed(self):
args = Namespace(include_cells="passed", include_rows="all")
record_filter = merge._Filter(args)
self.assertEquals(merge._Filter._include_variant_if_passed,
self.assertEquals(merge._Filter._include_cell_if_passed,
record_filter.include_variant)

def test_init_includeVariantSomatic(self):
args = Namespace(include_cells="somatic", include_rows="all")
record_filter = merge._Filter(args)
self.assertEquals(merge._Filter._include_variant_if_somatic,
self.assertEquals(merge._Filter._include_cell_if_somatic,
record_filter.include_variant)

def test_init_includeLocusAllPassed(self):
args = Namespace(include_cells="all", include_rows="all_passed")
record_filter = merge._Filter(args)
self.assertEquals(merge._Filter._include_locus_if_all_passed,
self.assertEquals(merge._Filter._include_row_if_all_passed,
record_filter.include_locus)

def test_init_includeLocusAnyPassed(self):
args = Namespace(include_cells="all", include_rows="at_least_one_passed")
record_filter = merge._Filter(args)
self.assertEquals(merge._Filter._include_locus_if_any_passed,
self.assertEquals(merge._Filter._include_row_if_any_passed,
record_filter.include_locus)

def test_init_includeLocusAllSomatic(self):
args = Namespace(include_cells="all", include_rows="all_somatic")
record_filter = merge._Filter(args)
self.assertEquals(merge._Filter._include_locus_if_all_somatic,
self.assertEquals(merge._Filter._include_row_if_all_somatic,
record_filter.include_locus)

def test_init_includeLocusAnySomatic(self):
args = Namespace(include_cells="all", include_rows="at_least_one_somatic")
record_filter = merge._Filter(args)
self.assertEquals(merge._Filter._include_locus_if_any_somatic,
self.assertEquals(merge._Filter._include_row_if_any_somatic,
record_filter.include_locus)

def test_include_all(self):
Expand All @@ -84,89 +84,89 @@ def test_include_valid(self):
rec = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="bar")
self.assertEquals(True, merge._Filter._include_valid(rec))

def test_include_variant_if_passed(self):
def test_include_cell_if_passed(self):
rec = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="foo")
self.assertEquals(False, merge._Filter._include_variant_if_passed(rec))
self.assertEquals(False, merge._Filter._include_cell_if_passed(rec))

rec = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="PASS")
self.assertEquals(True, merge._Filter._include_variant_if_passed(rec))
self.assertEquals(True, merge._Filter._include_cell_if_passed(rec))

def test_include_variant_if_somatic(self):
def test_include_cell_if_somatic(self):
rec = VcfRecord("chrom", "pos", "ref", "alt",
sample_tag_values={"SA": {merge._JQ_SOMATIC_TAG: "0"}})
self.assertEquals(False, merge._Filter._include_variant_if_somatic(rec))
self.assertEquals(False, merge._Filter._include_cell_if_somatic(rec))

rec = VcfRecord("chrom", "pos", "ref", "alt",
sample_tag_values={"SA": {merge._JQ_SOMATIC_TAG: "1"}})
self.assertEquals(True, merge._Filter._include_variant_if_somatic(rec))
self.assertEquals(True, merge._Filter._include_cell_if_somatic(rec))

def test_include_locus_if_all_passed(self):
def test_include_row_if_all_passed(self):
rec1 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="PASS")
rec2 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="PASS")
self.assertEquals(True,
merge._Filter._include_locus_if_all_passed([rec1, rec2]))
merge._Filter._include_row_if_all_passed([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="PASS")
rec2 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="FAIL")
self.assertEquals(False,
merge._Filter._include_locus_if_all_passed([rec1, rec2]))
merge._Filter._include_row_if_all_passed([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="FAIL")
rec2 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="FAIL")
self.assertEquals(False,
merge._Filter._include_locus_if_all_passed([rec1, rec2]))
merge._Filter._include_row_if_all_passed([rec1, rec2]))

def test_include_locus_if_any_passed(self):
def test_include_row_if_any_passed(self):
rec1 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="PASS")
rec2 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="PASS")
self.assertEquals(True,
merge._Filter._include_locus_if_any_passed([rec1, rec2]))
merge._Filter._include_row_if_any_passed([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="PASS")
rec2 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="FAIL")
self.assertEquals(True,
merge._Filter._include_locus_if_any_passed([rec1, rec2]))
merge._Filter._include_row_if_any_passed([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="FAIL")
rec2 = VcfRecord("chrom", "pos", "ref", "alt", vcf_filter="FAIL")
self.assertEquals(False,
merge._Filter._include_locus_if_any_passed([rec1, rec2]))
merge._Filter._include_row_if_any_passed([rec1, rec2]))

def test_include_locus_if_all_somatic(self):
def test_include_row_if_all_somatic(self):
nonsomatic = {"SA": {merge._JQ_SOMATIC_TAG: "0"}}
somatic = {"SA": {merge._JQ_SOMATIC_TAG: "1"}}
rec1 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=somatic)
rec2 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=somatic)
self.assertEquals(True,
merge._Filter._include_locus_if_all_somatic([rec1, rec2]))
merge._Filter._include_row_if_all_somatic([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=somatic)
rec2 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=nonsomatic)
self.assertEquals(False,
merge._Filter._include_locus_if_all_somatic([rec1, rec2]))
merge._Filter._include_row_if_all_somatic([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=nonsomatic)
rec2 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=nonsomatic)
self.assertEquals(False,
merge._Filter._include_locus_if_all_somatic([rec1, rec2]))
merge._Filter._include_row_if_all_somatic([rec1, rec2]))

def test_include_locus_if_any_somatic(self):
def test_include_row_if_any_somatic(self):
nonsomatic = {"SA": {merge._JQ_SOMATIC_TAG: "0"}}
somatic = {"SA": {merge._JQ_SOMATIC_TAG: "1"}}
rec1 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=somatic)
rec2 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=somatic)
self.assertEquals(True,
merge._Filter._include_locus_if_any_somatic([rec1, rec2]))
merge._Filter._include_row_if_any_somatic([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=somatic)
rec2 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=nonsomatic)
self.assertEquals(True,
merge._Filter._include_locus_if_any_somatic([rec1, rec2]))
merge._Filter._include_row_if_any_somatic([rec1, rec2]))

rec1 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=nonsomatic)
rec2 = VcfRecord("chrom", "pos", "ref", "alt", sample_tag_values=nonsomatic)
self.assertEquals(False,
merge._Filter._include_locus_if_any_somatic([rec1, rec2]))
merge._Filter._include_row_if_any_somatic([rec1, rec2]))


class MergeTestCase(test_case.JacquardBaseTestCase):
Expand Down

0 comments on commit 234ce44

Please sign in to comment.