Class SimpleProfile<S extends Sequence<C>,​C extends Compound>

    • Constructor Detail

      • SimpleProfile

        protected SimpleProfile​(AlignedSequence<S,​C> query,
                                AlignedSequence<S,​C> target)
        Creates a pair profile for the given already aligned sequences.
        Parameters:
        query - the first sequence of the pair
        target - the second sequence of the pair
        Throws:
        java.lang.IllegalArgumentException - if sequences differ in size
      • SimpleProfile

        public SimpleProfile​(S sequence)
        Creates a profile from a single sequence.
        Parameters:
        sequence - sequence to seed profile
      • SimpleProfile

        protected SimpleProfile​(S query,
                                S target,
                                java.util.List<AlignedSequence.Step> sx,
                                int xb,
                                int xa,
                                java.util.List<AlignedSequence.Step> sy,
                                int yb,
                                int ya)
        Creates a pair profile for the given sequences.
        Parameters:
        query - the first sequence of the pair
        target - the second sequence of the pair
        sx - lists whether the query sequence aligns a Compound or gap at each index of the alignment
        xb - number of Compounds skipped in the query sequence before the aligned region
        xa - number of Compounds skipped in the query sequence after the aligned region
        sy - lists whether the target sequence aligns a Compound or gap at each index of the alignment
        yb - number of Compounds skipped in the target sequence before the aligned region
        ya - number of Compounds skipped in the target sequence after the aligned region
        Throws:
        java.lang.IllegalArgumentException - if alignments differ in size or given sequences do not fit in alignments
      • SimpleProfile

        protected SimpleProfile​(Profile<S,​C> query,
                                Profile<S,​C> target,
                                java.util.List<AlignedSequence.Step> sx,
                                java.util.List<AlignedSequence.Step> sy)
        Creates a pair profile for the given profiles.
        Parameters:
        query - the first profile of the pair
        target - the second profile of the pair
        sx - lists whether the query profile aligns a Compound or gap at each index of the alignment
        sy - lists whether the target profile aligns a Compound or gap at each index of the alignment
        Throws:
        java.lang.IllegalArgumentException - if alignments differ in size or given profiles do not fit in alignments
      • SimpleProfile

        public SimpleProfile​(java.util.Collection<AlignedSequence<S,​C>> alignedSequences)
        Creates a profile for the already aligned sequences.
        Parameters:
        alignedSequences - the already aligned sequences
        Throws:
        IllegalArgument - if aligned sequences differ in length or collection is empty.
    • Method Detail

      • getAlignedSequences

        public java.util.List<AlignedSequence<S,​C>> getAlignedSequences​(int... listIndices)
        Description copied from interface: Profile
        Returns a List containing some of the individual AlignedSequences of this alignment.
        Specified by:
        getAlignedSequences in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        listIndices - indices of sequences in profile
        Returns:
        list of aligned sequences
      • getCompoundAt

        public C getCompoundAt​(int listIndex,
                               int alignmentIndex)
        Description copied from interface: Profile
        Returns the Compound at row of given sequence and column of alignment index. If the given sequence has overlap, this will return the Compound from the top row of the sequence.
        Specified by:
        getCompoundAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        listIndex - index of sequence in profile
        alignmentIndex - column index within an alignment
        Returns:
        the sequence element
      • getCompoundAt

        public C getCompoundAt​(S sequence,
                               int alignmentIndex)
        Description copied from interface: Profile
        Returns the Compound at row of given sequence and column of alignment index. If the given sequence has overlap, this will return the Compound from the top row of the sequence.
        Specified by:
        getCompoundAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        sequence - either an AlignedSequence or an original Sequence
        alignmentIndex - column index within an alignment
        Returns:
        the sequence element
      • getCompoundCountsAt

        public int[] getCompoundCountsAt​(int alignmentIndex)
        Description copied from interface: Profile
        Returns the number of each Compound in the given column for all compounds in CompoundSet.
        Specified by:
        getCompoundCountsAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        alignmentIndex - column index within an alignment
        Returns:
        list of counts
      • getCompoundCountsAt

        public int[] getCompoundCountsAt​(int alignmentIndex,
                                         java.util.List<C> compounds)
        Description copied from interface: Profile
        Returns the number of each Compound in the given column only for compounds in the given list.
        Specified by:
        getCompoundCountsAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        alignmentIndex - column index within an alignment
        compounds - list of compounds to count
        Returns:
        corresponding list of counts
      • getCompoundsAt

        public java.util.List<C> getCompoundsAt​(int alignmentIndex)
        Description copied from interface: Profile
        Returns the Compound elements of the original Sequences at the given column.
        Specified by:
        getCompoundsAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        alignmentIndex - column index within an alignment
        Returns:
        the sequence elements
      • getCompoundWeightsAt

        public float[] getCompoundWeightsAt​(int alignmentIndex)
        Description copied from interface: Profile
        Returns the fraction of each Compound in the given column for all compounds in CompoundSet.
        Specified by:
        getCompoundWeightsAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        alignmentIndex - column index within an alignment
        Returns:
        list of fractional weights
      • getCompoundWeightsAt

        public float[] getCompoundWeightsAt​(int alignmentIndex,
                                            java.util.List<C> compounds)
        Description copied from interface: Profile
        Returns the fraction of each Compound in the given column only for compounds in the given list.
        Specified by:
        getCompoundWeightsAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        alignmentIndex - column index within an alignment
        compounds - list of compounds to count
        Returns:
        corresponding list of fractional weights
      • getIndexOf

        public int getIndexOf​(C compound)
        Description copied from interface: Profile
        Searches for the given Compound within this alignment profile. Returns column index nearest to the start of the alignment profile, or -1 if not found.
        Specified by:
        getIndexOf in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        compound - search element
        Returns:
        index of column containing search element nearest to the start of the alignment profile
      • getIndicesAt

        public int[] getIndicesAt​(int alignmentIndex)
        Description copied from interface: Profile
        Returns the indices in the original Sequences corresponding to the given column. All indices are 1-indexed and inclusive.
        Specified by:
        getIndicesAt in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        alignmentIndex - column index within an alignment
        Returns:
        the sequence indices
      • getLastIndexOf

        public int getLastIndexOf​(C compound)
        Description copied from interface: Profile
        Searches for the given Compound within this alignment profile. Returns column index nearest to the end of the alignment profile, or -1 if not found.
        Specified by:
        getLastIndexOf in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        compound - search element
        Returns:
        index of column containing search element nearest to the end of the alignment profile
      • getLength

        public int getLength()
        Description copied from interface: Profile
        Returns the number of columns in the alignment profile.
        Specified by:
        getLength in interface Profile<S extends Sequence<C>,​C extends Compound>
        Returns:
        the number of columns
      • getOriginalSequences

        public java.util.List<S> getOriginalSequences()
        Description copied from interface: Profile
        Returns a List containing the original Sequences used for alignment.
        Specified by:
        getOriginalSequences in interface Profile<S extends Sequence<C>,​C extends Compound>
        Returns:
        list of original sequences
      • getSize

        public int getSize()
        Description copied from interface: Profile
        Returns the number of rows in this profile. If any AlignedSequences are circular and overlap within the alignment, the returned size will be greater than the number of sequences, otherwise the numbers will be equal.
        Specified by:
        getSize in interface Profile<S extends Sequence<C>,​C extends Compound>
        Returns:
        number of rows
      • hasGap

        public boolean hasGap​(int alignmentIndex)
        Description copied from interface: Profile
        Returns true if any AlignedSequence has a gap at the given index.
        Specified by:
        hasGap in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        alignmentIndex - column index within an alignment
        Returns:
        true if any AlignedSequence has a gap at the given index
      • isCircular

        public boolean isCircular()
        Description copied from interface: Profile
        Returns true if any AlignedSequence is circular. If so, sequences may simply wrap around from the end to the start of the alignment or they may contribute multiple overlapping lines to the profile.
        Specified by:
        isCircular in interface Profile<S extends Sequence<C>,​C extends Compound>
        Returns:
        true if any AlignedSequence is circular
      • toString

        public java.lang.String toString​(int width)
        Description copied from interface: Profile
        Returns a formatted view of the alignment profile. This shows the start and end indices of the profile and each sequence for each group of lines of the given width. Each line may also be labeled.
        Specified by:
        toString in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        width - limit on the line length
        Returns:
        a formatted view of the alignment profile
      • toString

        public java.lang.String toString​(Profile.StringFormat format)
        Description copied from interface: Profile
        Returns a formatted view of the alignment profile. Details depend on the format given.
        Specified by:
        toString in interface Profile<S extends Sequence<C>,​C extends Compound>
        Parameters:
        format - output format
        Returns:
        a formatted view of the alignment profile
      • toString

        public java.lang.String toString()
        Description copied from interface: Profile
        Returns a simple view of the alignment profile. This shows each sequence on a separate line (or multiple lines, if circular) and nothing more. This should result in Profile.getSize() lines with Profile.getLength() Compounds per line.
        Specified by:
        toString in interface Profile<S extends Sequence<C>,​C extends Compound>
        Overrides:
        toString in class java.lang.Object
        Returns:
        a simple view of the alignment profile
      • iterator

        public java.util.Iterator<AlignedSequence<S,​C>> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<S extends Sequence<C>>