Skip to content

Commit

Permalink
Rename variant_utils.has_genotypes to has_calls to reflect its fu…
Browse files Browse the repository at this point in the history
…nction.

PiperOrigin-RevId: 188493871
  • Loading branch information
cmclean authored and Copybara-Service committed Mar 12, 2018
1 parent 21e0828 commit 37b64f9
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 12 deletions.
4 changes: 3 additions & 1 deletion deepvariant/labeler/positional_labeler.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,9 @@ def _genotype_from_matched_truth(candidate_variant, truth_variant):
raise ValueError('candidate_variant cannot be None')
if truth_variant is None:
raise ValueError('truth_variant cannot be None')
if not variant_utils.has_genotypes(truth_variant):
# redacted
if not (truth_variant.calls and
any(gt >= 0 for gt in truth_variant.calls[0].genotype)):
raise ValueError('truth_variant needs genotypes to be used for labeling',
truth_variant)

Expand Down
4 changes: 3 additions & 1 deletion deepvariant/labeler/variant_labeler.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,9 @@ def _genotype_from_matched_truth(candidate_variant, truth_variant):
raise ValueError('candidate_variant cannot be None')
if truth_variant is None:
raise ValueError('truth_variant cannot be None')
if not variant_utils.has_genotypes(truth_variant):
# redacted
if not (truth_variant.calls and
any(gt >= 0 for gt in truth_variant.calls[0].genotype)):
raise ValueError('truth_variant needs genotypes to be used for labeling',
truth_variant)

Expand Down
12 changes: 6 additions & 6 deletions deepvariant/util/variant_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -520,14 +520,14 @@ def is_variant_call(variant,
return False


def has_genotypes(variant):
"""Does variant have genotype calls?
def has_calls(variant):
"""Does variant have any genotype calls?
Args:
variant: third_party.nucleus.protos.Variant.
Returns:
True if variant has genotype calls.
True if variant has one or more VariantCalls.
"""
# I don't want to return the actual data structure so I'm doing the
# explicit True/False evaluation here.
Expand All @@ -551,7 +551,7 @@ def genotype_type(variant):
Raises:
ValueError: If variant has more than one call (i.e., is multi-sample).
"""
if not has_genotypes(variant):
if not has_calls(variant):
return GenotypeType.no_call
elif len(variant.calls) > 1:
raise ValueError('Unsupported: multiple genotypes found at', variant)
Expand Down Expand Up @@ -586,7 +586,7 @@ def genotype_as_alleles(variant):
ValueError: If variant doesn't have genotypes.
ValueError: If variant has more than one call (i.e., is multi-sample).
"""
if not has_genotypes(variant):
if not has_calls(variant):
raise ValueError('Not genotypes present in', variant)
elif len(variant.calls) > 1:
raise ValueError('Unsupported: multiple genotypes found at', variant)
Expand Down Expand Up @@ -615,7 +615,7 @@ def genotype_quality(variant, default=None):
Returns:
The GQ value (may be a string or whatever value default is).
"""
if not has_genotypes(variant):
if not has_calls(variant):
return default
call = variant.calls[0]
if 'GQ' in call.info:
Expand Down
15 changes: 11 additions & 4 deletions deepvariant/util/variant_utils_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -396,13 +396,20 @@ def test_has_insertion_deletion(self, variant, has_insertion, has_deletion):
(test_utils.make_variant(gt=[0, 1]), True),
(test_utils.make_variant(gt=[1, 1]), True),
(test_utils.make_variant(gt=[-1, -1]), True),
(variants_pb2.Variant(calls=[]), False),
(variants_pb2.Variant(
calls=[variants_pb2.VariantCall(call_set_name='no_geno')]), True),
(variants_pb2.Variant(calls=[
variants_pb2.VariantCall(call_set_name='no_geno'),
variants_pb2.VariantCall(call_set_name='no_geno2'),
]), True),
)
def test_has_genotypes(self, variant, expected):
self.assertEqual(variant_utils.has_genotypes(variant), expected)
def test_has_calls(self, variant, expected):
self.assertEqual(variant_utils.has_calls(variant), expected)

def test_has_genotypes_raises_with_bad_inputs(self):
def test_has_calls_raises_with_bad_inputs(self):
with self.assertRaises(Exception):
variant_utils.has_genotypes(None)
variant_utils.has_calls(None)

@parameterized.parameters(
(test_utils.make_variant(gt=None), variant_utils.GenotypeType.no_call),
Expand Down

0 comments on commit 37b64f9

Please sign in to comment.