Class CigarUtil


  • public class CigarUtil
    extends Object
    • Constructor Detail

      • CigarUtil

        public CigarUtil()
    • Method Detail

      • clipEndOfRead

        public static List<CigarElement> clipEndOfRead​(int clipFrom,
                                                       List<CigarElement> oldCigar,
                                                       CigarOperator clippingOperator)
        Adjust the cigar based on adapter clipping. TODO: If there is hard clipping at the end of the input CIGAR, it is lost. It should not be. *
        Parameters:
        clipFrom - 1-based position where the clipping starts
        oldCigar - The existing unclipped cigar
        clippingOperator - Type of clipping to use, either soft or hard. If non-clipping operator is used an exception is thrown
        Returns:
        New adjusted list of cigar elements
      • softClipEndOfRead

        public static List<CigarElement> softClipEndOfRead​(int clipFrom,
                                                           List<CigarElement> oldCigar)
        Adjust the cigar based on adapter clipping
        Parameters:
        clipFrom - 1-based position where the clipping starts
        oldCigar - The existing unclipped cigar
        Returns:
        New adjusted list of cigar elements
      • softClip3PrimeEndOfRead

        public static void softClip3PrimeEndOfRead​(SAMRecord rec,
                                                   int clipFrom)
        Adjust the cigar of rec based on adapter clipping using soft-clipping
        Parameters:
        clipFrom - 1-based position where the soft-clipping starts
      • clip3PrimeEndOfRead

        public static void clip3PrimeEndOfRead​(SAMRecord rec,
                                               int clipFrom,
                                               CigarOperator clippingOperator)
        Adds a soft- or hard-clip, based on clipFrom and clippingOperator, to the SAM record's existing cigar and, for negative strands, also adjusts the SAM record's start position. If clipping changes the number of unclipped bases, the the NM, MD, and UQ tags will be invalidated. Clips the end of the read as the read came off the sequencer.
        Parameters:
        rec - SAMRecord to clip
        clipFrom - Position to clip from
        clippingOperator - Type of clipping to use, either soft or hard. If non-clipping operator is used an exception is thrown
      • addClippedBasesToEndsOfCigar

        public static Cigar addClippedBasesToEndsOfCigar​(Cigar cigar,
                                                         boolean negativeStrand,
                                                         int threePrimeEnd,
                                                         int fivePrimeEnd,
                                                         CigarOperator clippingOperator)
        Adds additional soft-clipped bases at the 3' and/or 5' end of the cigar. Does not change the existing cigar except to merge the newly added soft-clipped bases if the element at the end of the cigar being modified is also a soft-clip.
        Parameters:
        cigar - The cigar on which to base the new cigar
        negativeStrand - Whether the read is on the negative strand
        threePrimeEnd - number of soft-clipped bases to add to the 3' end of the read
        fivePrimeEnd - number of soft-clipped bases to add to the 5' end of the read
        clippingOperator - Type of clipping to use, either soft or hard. If non-clipping operator is used an exception is thrown
      • addSoftClippedBasesToEndsOfCigar

        public static Cigar addSoftClippedBasesToEndsOfCigar​(Cigar cigar,
                                                             boolean negativeStrand,
                                                             int threePrimeEnd,
                                                             int fivePrimeEnd)
        Adds additional soft-clipped bases at the 3' and/or 5' end of the cigar. Does not change the existing cigar except to merge the newly added soft-clipped bases if the element at the end of the cigar being modified is also a soft-clip.
        Parameters:
        cigar - The cigar on which to base the new cigar
        negativeStrand - Whether the read is on the negative strand
        threePrimeEnd - number of soft-clipped bases to add to the 3' end of the read
        fivePrimeEnd - number of soft-clipped bases to add to the 5' end of the read
        Returns:
        New cigar with additional soft-clipped bases
      • cigarArrayFromElements

        public static char[] cigarArrayFromElements​(List<CigarElement> cigar)
      • cigarArrayFromString

        public static char[] cigarArrayFromString​(String cigar)
      • cigarStringFromArray

        public static String cigarStringFromArray​(char[] cigar)