Check for bad reference bases before creating simple/'empty' VCs. Updated the code in the indel GL model to be consistent and to use the existing utility in the Allele class.
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5704 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
122d5845d3
commit
ae8f3f2cde
|
|
@ -231,23 +231,15 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood
|
||||||
|
|
||||||
//System.out.println(new String(ref.getBases()));
|
//System.out.println(new String(ref.getBases()));
|
||||||
byte[] refBases = Arrays.copyOfRange(ref.getBases(),startIdxInReference,startIdxInReference+dLen);
|
byte[] refBases = Arrays.copyOfRange(ref.getBases(),startIdxInReference,startIdxInReference+dLen);
|
||||||
boolean ok = true;
|
|
||||||
for (int i=0; i < refBases.length; i++)
|
|
||||||
if (!BaseUtils.isRegularBase(refBases[i]))
|
|
||||||
ok = false;
|
|
||||||
|
|
||||||
if (ok) {
|
if (Allele.acceptableAlleleBases(refBases)) {
|
||||||
refAllele = Allele.create(refBases,true);
|
refAllele = Allele.create(refBases,true);
|
||||||
altAllele = Allele.create(Allele.NULL_ALLELE_STRING, false);
|
altAllele = Allele.create(Allele.NULL_ALLELE_STRING, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// insertion case
|
// insertion case
|
||||||
boolean ok = true;
|
if (Allele.acceptableAlleleBases(bestAltAllele)) {
|
||||||
for (int i=0; i < bestAltAllele.length(); i++)
|
|
||||||
if (!BaseUtils.isRegularBase(bestAltAllele.getBytes()[i]))
|
|
||||||
ok = false;
|
|
||||||
if (ok) {
|
|
||||||
refAllele = Allele.create(Allele.NULL_ALLELE_STRING, true);
|
refAllele = Allele.create(Allele.NULL_ALLELE_STRING, true);
|
||||||
altAllele = Allele.create(bestAltAllele, false);
|
altAllele = Allele.create(bestAltAllele, false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -203,6 +203,10 @@ public class UnifiedGenotyperEngine {
|
||||||
return null;
|
return null;
|
||||||
vc = new VariantContext("UG_call", vcInput.getChr(), vcInput.getStart(), vcInput.getEnd(), vcInput.getAlleles());
|
vc = new VariantContext("UG_call", vcInput.getChr(), vcInput.getStart(), vcInput.getEnd(), vcInput.getAlleles());
|
||||||
} else {
|
} else {
|
||||||
|
// deal with bad/non-standard reference bases
|
||||||
|
if ( !Allele.acceptableAlleleBases(new byte[]{ref.getBase()}) )
|
||||||
|
return null;
|
||||||
|
|
||||||
Set<Allele> alleles = new HashSet<Allele>();
|
Set<Allele> alleles = new HashSet<Allele>();
|
||||||
alleles.add(Allele.create(ref.getBase(), true));
|
alleles.add(Allele.create(ref.getBase(), true));
|
||||||
vc = new VariantContext("UG_call", ref.getLocus().getContig(), ref.getLocus().getStart(), ref.getLocus().getStart(), alleles);
|
vc = new VariantContext("UG_call", ref.getLocus().getContig(), ref.getLocus().getStart(), ref.getLocus().getStart(), alleles);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue