org.bdgenomics.adam

# projections

#### package projections

Visibility

1. Public
2. All

### Type Members

1. #### abstract class FieldEnumeration extends Enumeration

   Abstract class that all record-specific enumerations extend.

2. #### trait FieldValue extends AnyRef

   The FieldValue trait (and its sister abstract class, FieldEnumeration) are meant to help clean up the use of Projection when dealing with field enumeration classes like ADAMRecordField.

   The FieldValue trait (and its sister abstract class, FieldEnumeration) are meant to help clean up the use of Projection when dealing with field enumeration classes like ADAMRecordField.

   Projection is a class for turning fields from an Enumeration into a projected Avro Schema object.

   In the old way of doing this, we used a "normal" Enumeration. Projection would receive a collection of Read.Value objects, and use their names (plus the Read.SCHEMA$ static field) to turn them into a Schema for ADAMRecords. This worked fine for Read, and not at all for generalizing to other Schemas over other field enumerations.

   In the new system, we embed the Avro Schema object as an argument *in* each enumeration Value. We do this in two steps: (1) instead of ADAMRecordField (e.g.) extending Enumeration, it extends FieldEnumeration and provides the appropriate (static) Schema object as an argument. (2) instead of using the (final, non-overrideable) Value method within Enumeration to provide each enum value, it calls FieldEnumeration.SchemaValue instead, which embeds the corresponding Schema in each value.

   Finally, Projection will extract the Schema value from the first FieldValue that is given to it and produce the corresponding (projected) Schema.

   This means, of course, that Projection can't handle empty field lists -- but that was always going to be an error-filled edge-case anyway (why would you want to project to zero fields?)

### Value Members

1. #### object AlignmentRecordField extends FieldEnumeration

   Enumeration of AlignmentRecord field names for predicates and projections.

2. #### object ContigField extends FieldEnumeration

   Enumeration of Contig field names for predicates and projections.

3. #### object DbxrefField extends FieldEnumeration

   Enumeration of Dbxref field names for predicates and projections.

4. #### object FeatureField extends FieldEnumeration

   Enumeration of Feature field names for predicates and projections.

5. #### object Filter

   Helper object to create a projection that excludes fields from a schema.

6. #### object FragmentField extends FieldEnumeration

   Enumeration of Fragment field names for predicates and projections.

7. #### object GenotypeField extends FieldEnumeration

   Enumeration of Genotype field names for predicates and projections.

8. #### object NucleotideContigFragmentField extends FieldEnumeration

   Enumeration of NucleotideContigFragment field names for predicates and projections.

9. #### object OntologyTermField extends FieldEnumeration

   Enumeration of OntologyTerm field names for predicates and projections.

10. #### object Projection

    Avro utility object to create a projection of a Schema.

11. #### object ReadField extends FieldEnumeration

    Enumeration of Read field names for predicates and projections.

12. #### object RecordGroupMetadataField extends FieldEnumeration

    Enumeration of RecordGroupMetadata field names for predicates and projections.

13. #### object SampleField extends FieldEnumeration

    Enumeration of Sample field names for predicates and projections.

14. #### object SequenceField extends FieldEnumeration

    Enumeration of Sequence field names for predicates and projections.

15. #### object SliceField extends FieldEnumeration

    Enumeration of Slice field names for predicates and projections.

16. #### object TranscriptEffectField extends FieldEnumeration

    Enumeration of TranscriptEffect field names for predicates and projections.

17. #### object VariantAnnotationField extends FieldEnumeration

    Enumeration of VariantAnnotation field names for predicates and projections.

18. #### object VariantCallingAnnotationsField extends FieldEnumeration

    Enumeration of VariantCallingAnnotations field names for predicates and projections.

19. #### object VariantField extends FieldEnumeration

    Enumeration of Variant field names for predicates and projections.

### Ungrouped