Allow VariantsToTable to evaluate the type of each split variant when -F TYPE and -SMA are specified
This commit is contained in:
parent
7f7ba446c0
commit
593c9ddf01
|
|
@ -90,14 +90,14 @@ public class VariantsToTableIntegrationTest extends WalkerTest {
|
|||
@Test(enabled = true)
|
||||
public void testMultiAllelicOneRecord() {
|
||||
WalkerTestSpec spec = new WalkerTestSpec(variantsToTableMultiAllelicCmd(""),
|
||||
Arrays.asList("0ff49c08690f61a38614606a090f23ea"));
|
||||
Arrays.asList("b468589f4d2bf4c7d85a0584b77fc0fd"));
|
||||
executeTest("testMultiAllelicOneRecord", spec);
|
||||
}
|
||||
|
||||
@Test(enabled = true)
|
||||
public void testMultiAllelicSplitRecords() {
|
||||
WalkerTestSpec spec = new WalkerTestSpec(variantsToTableMultiAllelicCmd(" -SMA"),
|
||||
Arrays.asList("17a0fc80409d2fc00ad2bbb94b3a346b"));
|
||||
WalkerTestSpec spec = new WalkerTestSpec(variantsToTableMultiAllelicCmd(" -F TYPE -SMA"),
|
||||
Arrays.asList("74b37874afff05d65cf7b0587b7168ec"));
|
||||
executeTest("testMultiAllelicSplitRecords", spec);
|
||||
}
|
||||
|
||||
|
|
@ -193,7 +193,7 @@ public class VariantsToTableIntegrationTest extends WalkerTest {
|
|||
" --moltenize -SMA" +
|
||||
" -o %s",
|
||||
1,
|
||||
Arrays.asList("c131e2c3cfb673c456cb160bda476101"));
|
||||
Arrays.asList("84d103b54f6799424bf49c854831d059"));
|
||||
executeTest("testMoltenOutputWithMultipleAlleles", spec);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -295,6 +295,8 @@ public class VariantsToTable extends RodWalker<Integer, Integer> {
|
|||
|
||||
if ( splitMultiAllelic && field.equals("ALT") ) { // we need to special case the ALT field when splitting out multi-allelic records
|
||||
addFieldValue(splitAltAlleles(vc), records);
|
||||
} else if (splitMultiAllelic && field.equals("TYPE")) {
|
||||
addFieldValue(splitAlleleTypes(vc), records);
|
||||
} else if ( getters.containsKey(field) ) {
|
||||
addFieldValue(getters.get(field).get(vc), records);
|
||||
} else if ( vc.hasAttribute(field) ) {
|
||||
|
|
@ -461,4 +463,23 @@ public class VariantsToTable extends RodWalker<Integer, Integer> {
|
|||
|
||||
return vc.getAlternateAlleles();
|
||||
}
|
||||
|
||||
private static Object splitAlleleTypes(VariantContext vc) {
|
||||
final int numAltAlleles = vc.getAlternateAlleles().size();
|
||||
if (numAltAlleles == 1)
|
||||
return vc.getType().toString();
|
||||
List<Allele> altAlleles = vc.getAlternateAlleles();
|
||||
List<String> alleleTypes = new ArrayList<>(numAltAlleles);
|
||||
for (Allele allele : altAlleles) {
|
||||
if (allele.length() == vc.getReference().length()) {
|
||||
if ( allele.length() == 1 )
|
||||
alleleTypes.add("SNP");
|
||||
else
|
||||
alleleTypes.add("MNP");
|
||||
}
|
||||
else
|
||||
alleleTypes.add("INDEL");
|
||||
}
|
||||
return alleleTypes;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue