Fixes from Mark for the MutableContexts; this fixes the clearGenotypes() and the clearFilters() methods, and adds a method to clear the attributes. Also added is a method for creating a variant context where the attribute list is pruned to a specific subset, which can be null.

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3955 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
aaron 2010-08-05 22:39:51 +00:00
parent 72ae81c6de
commit c68625f055
1 changed files with 27 additions and 0 deletions

View File

@ -213,6 +213,33 @@ public class VariantContextUtils {
return HardyWeinbergCalculation.hwCalculate(vc.getHomRefCount(), vc.getHetCount(), vc.getHomVarCount());
}
public static VariantContext pruneVariantContext(VariantContext vc) {
return pruneVariantContext(vc, null);
}
public static VariantContext pruneVariantContext(VariantContext vc, Set<String> keysToPreserve ) {
MutableVariantContext mvc = new MutableVariantContext(vc);
if ( keysToPreserve == null || keysToPreserve.size() == 0 )
mvc.clearAttributes();
else {
Map<String, Object> d = mvc.getAttributes();
mvc.clearAttributes();
for ( String key : keysToPreserve )
mvc.putAttribute(key, d.get(key));
}
Collection<Genotype> gs = mvc.getGenotypes().values();
mvc.clearGenotypes();
for ( Genotype g : gs ) {
MutableGenotype mg = new MutableGenotype(g);
mg.clearAttributes();
mvc.addGenotype(mg);
}
return mvc;
}
public enum GenotypeMergeType {
UNIQUIFY, PRIORITIZE, UNSORTED, REQUIRE_UNIQUE
}