Better error checking and messages for bad alleles

This commit is contained in:
Eric Banks 2012-05-17 13:36:42 -04:00
parent 6967b3de6c
commit 0f7c917e7a
2 changed files with 5 additions and 2 deletions

View File

@ -693,7 +693,10 @@ public abstract class AbstractVCFCodec extends AsciiFeatureCodec<VariantContext>
if ( a.isSymbolic() ) {
clippedAlleles.add(a);
} else {
clippedAlleles.add(Allele.create(Arrays.copyOfRange(a.getBases(), forwardClipping, a.getBases().length-reverseClipping), a.isReference()));
final byte[] allele = Arrays.copyOfRange(a.getBases(), forwardClipping, a.getBases().length-reverseClipping);
if ( !Allele.acceptableAlleleBases(allele) )
generateException("Unparsable vcf record with bad allele [" + allele + "]", lineNo);
clippedAlleles.add(Allele.create(allele, a.isReference()));
}
}
}

View File

@ -160,7 +160,7 @@ public class Allele implements Comparable<Allele> {
case 'G': case 'g' : return isRef ? REF_G : ALT_G;
case 'T': case 't' : return isRef ? REF_T : ALT_T;
case 'N': case 'n' : return isRef ? REF_N : ALT_N;
default: throw new IllegalArgumentException("Illegal base: " + (char)bases[0]);
default: throw new IllegalArgumentException("Illegal base [" + (char)bases[0] + "] seen in the allele");
}
} else {
return new Allele(bases, isRef);