What is the join done on in the biallelic version—site and ref/non-ref? If so, couldn’t a multi-allelic site perform the join on site and allele instead?

On Feb 12, 2014, at 1:28 PM, Michael Linderman <notifications@github.com> wrote:

> In adam-core/src/main/scala/edu/berkeley/cs/amplab/adam/converters/VariantContextConverter.scala:
> 
> > -        }
> > -      }
> > -      case None => vc.unfiltered
> > -    }
> > -
> > -    Option(variant.getAlleleFrequency).foreach(r => tagMap += ("AF" -> r))
> > -    Option(variant.getRmsBaseQuality).foreach(r => tagMap += ("BQ" -> r))
> > -    Option(variant.getSiteRmsMappingQuality).foreach(r => tagMap += ("MQ" -> r))
> > -    Option(variant.getSiteMapQZeroCounts).foreach(r => tagMap += ("MQ0" -> r))
> > -    Option(variant.getTotalSiteMapCounts).foreach(r => tagMap += ("DP" -> r))
> > -    Option(variant.getNumberOfSamplesWithData).foreach(r => tagMap += ("NS" -> r))
> > -
> > -    vc.attributes(tagMap)
> > -
> > -    vc
> > +  private def convertAllele(allele: Allele): ADAMGenotypeAllele = {
> There is actually a different motivation for bi-allelic, multi-allelic sites are hard to join against external annotations (the different alleles can have very different implications). A bi-allelic ADAMVariant is preferred so support those operations. We maintain data on the split, and can use phasing/phase-sets to maintain the phasing information implied by a try multi-allelic genotype.
> 
> —
> Reply to this email directly or view it on GitHub.
>