Package htsjdk.samtools

Examples of htsjdk.samtools.Cigar


     * @param padSize how many additional Ms should be appended to the end of this cigar.  Must be >= 0
     * @return a newly allocated Cigar that consolidate(getCigar + padSize + M)
     */
    public Cigar getConsolidatedPaddedCigar(final int padSize) {
        if ( padSize < 0 ) throw new IllegalArgumentException("padSize must be >= 0 but got " + padSize);
        final Cigar extendedHaplotypeCigar = new Cigar(getCigar().getCigarElements());
        if ( padSize > 0 ) extendedHaplotypeCigar.add(new CigarElement(padSize, CigarOperator.M));
        return AlignmentUtils.consolidateCigar(extendedHaplotypeCigar);
    }
View Full Code Here


        byte[] altString = createIndelString(cigar, indexOfIndel, refSeq, readSeq, refIndex, readIndex);
        if (altString == null)
            return cigar;

        Cigar newCigar = cigar;
        for (int i = 0; i < indelLength; i++) {
            newCigar = moveCigarLeft(newCigar, indexOfIndel);
            byte[] newAltString = createIndelString(newCigar, indexOfIndel, refSeq, readSeq, refIndex, readIndex);

            // check to make sure we haven't run off the end of the read
View Full Code Here

            if (ce.getLength() != 0 && (! elements.isEmpty() || ce.getOperator() != CigarOperator.D)) {
                elements.add(ce);
            }
        }

        return new Cigar(elements);
    }
View Full Code Here

        final List<CigarElement> elements = c.getCigarElements();
        if ( elements.get(elements.size() - 1).getOperator() != CigarOperator.D )
            return c;

        return new Cigar(elements.subList(0, elements.size() - 1));
    }
View Full Code Here

        }

        // get the last few elements
        for (int i = indexOfIndel + 2; i < cigar.numCigarElements(); i++)
            elements.add(cigar.getCigarElement(i));
        return new Cigar(elements);
    }
View Full Code Here

    public static Cigar trimCigarByReference(final Cigar cigar, final int start, final int end) {
        if ( start < 0 ) throw new IllegalArgumentException("Start must be >= 0 but got " + start);
        if ( end < start ) throw new IllegalArgumentException("End " + end + " is < start start " + start);
        if ( end > cigar.getReferenceLength() ) throw new IllegalArgumentException("End is beyond the cigar's reference length " + end + " for cigar " + cigar );

        final Cigar result = trimCigar(cigar, start, end, true);

        if ( result.getReferenceLength() != end - start + 1)
            throw new IllegalStateException("trimCigarByReference failure: start " + start + " end " + end + " for " + cigar + " resulted in cigar with wrong size " + result);
        return result;
    }
View Full Code Here

    public static Cigar trimCigarByBases(final Cigar cigar, final int start, final int end) {
        if ( start < 0 ) throw new IllegalArgumentException("Start must be >= 0 but got " + start);
        if ( end < start ) throw new IllegalArgumentException("End " + end + " is < start = " + start);
        if ( end > cigar.getReadLength() ) throw new IllegalArgumentException("End is beyond the cigar's read length " + end + " for cigar " + cigar );

        final Cigar result = trimCigar(cigar, start, end, false);

        final int expectedSize = end - start + 1;
        if ( result.getReadLength() != expectedSize)
            throw new IllegalStateException("trimCigarByBases failure: start " + start + " end " + end + " for " + cigar + " resulted in cigar with wrong size " + result + " with size " + result.getReadLength() + " expected " + expectedSize + " for input cigar " + cigar);
        return result;
    }
View Full Code Here

                default:
                    throw new IllegalStateException("Cannot handle " + elt);
            }
        }

        return AlignmentUtils.consolidateCigar(new Cigar(newElements));
    }
View Full Code Here

            // if have exhausted our current element, advance to the next one
            if ( elt12I == elt12.getLength() ) { cigar12I++; elt12I = 0; }
            if ( elt23I == elt23.getLength() ) { cigar23I++; elt23I = 0; }
        }

        return AlignmentUtils.consolidateCigar(new Cigar(newElements));
    }
View Full Code Here

        return copy;
    }

    public Cigar convertToCigar(boolean negativeStrand) {
        Cigar cigar = new Cigar();
        Iterator<AlignmentMatchSequenceEntry> iterator = negativeStrand ? entries.descendingIterator() : entries.iterator();
        while( iterator.hasNext() ) {
            AlignmentMatchSequenceEntry entry = iterator.next();
            CigarOperator operator;
            switch( entry.getAlignmentState() ) {
                case MATCH_MISMATCH: operator = CigarOperator.MATCH_OR_MISMATCH; break;
                case INSERTION: operator = CigarOperator.INSERTION; break;
                case DELETION: operator = CigarOperator.DELETION; break;
                default: throw new ReviewedGATKException("convertToCigar: cannot process state: " + entry.getAlignmentState());
            }
            cigar.add( new CigarElement(entry.count,operator) );
        }
        return cigar;
    }
View Full Code Here

TOP

Related Classes of htsjdk.samtools.Cigar

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.