All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ngs.ReadCollection Maven / Gradle / Ivy

The newest version!
/*===========================================================================
*
*                            PUBLIC DOMAIN NOTICE
*               National Center for Biotechnology Information
*
*  This software/database is a "United States Government Work" under the
*  terms of the United States Copyright Act.  It was written as part of
*  the author's official duties as a United States Government employee and
*  thus cannot be copyrighted.  This software/database is freely available
*  to the public for use. The National Library of Medicine and the U.S.
*  Government have not placed any restriction on its use or reproduction.
*
*  Although all reasonable efforts have been taken to ensure the accuracy
*  and reliability of the software and data, the NLM and the U.S.
*  Government do not and cannot warrant the performance or results that
*  may be obtained by using this software or data. The NLM and the U.S.
*  Government disclaim all warranties, express or implied, including
*  warranties of performance, merchantability or fitness for any particular
*  purpose.
*
*  Please cite the author in any work or product based on this material.
*
* ===========================================================================
*
*/

package ngs;


/**
 *

* Represents an NGS-capable object with a collection of * Reads, References * and Alignments. *

*

* Each of the basic content types may be accessed by id * as either a standalone object, or more commonly through * an Iterator over a selected collection of objects. *

*

* Reads are grouped by ReadGroup. When * not specifically assigned, Reads will be placed into the * default ReadGroup. *

*/ public interface ReadCollection { /** *

* Access the simple name of the ReadCollection. * This name is generally extracted from the "spec" * used to create the object, but may also be mapped * to a canonical name if one may be determined and * differs from that given in the spec. *

*

* if the name is extracted from "spec" and contains * well-known file extensions that do not form part of * a canonical name (e.g. ".sra"), they will be removed. *

* * @return the simple name of the ReadCollection * @throws ErrorMsg if the name cannot be retrieved * @see gov.nih.nlm.ncbi.ngs.NGS NGS class for "spec" definition */ String getName () throws ErrorMsg; /*---------------------------------------------------------------------- * READ GROUPS */ /** * Access all non-empty ReadGroups. * Iterator will contain at least one ReadGroup * unless the ReadCollection itself is empty. * * @return an unordered Iterator of ReadGroups * @throws ErrorMsg only upon an error accessing data */ ReadGroupIterator getReadGroups () throws ErrorMsg; /** * @param spec the name of a contained read group * @return true if a call to "getReadGroup()" should succeed */ boolean hasReadGroup ( String spec ); /** * Access a single ReadGroup by name. * * @param spec the name of a contained read group * @return an instance of the designated ReadGroup * @throws ErrorMsg if specified ReadGroup is not found * @throws ErrorMsg upon an error accessing data */ ReadGroup getReadGroup ( String spec ) throws ErrorMsg; /*---------------------------------------------------------------------- * REFERENCES */ /** * Access all References having aligned Reads. * Iterator will contain at least one ReadGroup * unless no Reads are aligned. * * @return an unordered Iterator of References * @throws ErrorMsg upon an error accessing data */ ReferenceIterator getReferences () throws ErrorMsg; /** * @param spec the name of a contained Reference * @return true if a call to "getReference()" should succeed */ boolean hasReference ( String spec ); /** * Access a single Reference by name spec. * * @param spec a common or canonical name of a contained reference * @return an instance of the designated Reference * @throws ErrorMsg if the Reference is not found * @throws ErrorMsg upon an error accessing data */ Reference getReference ( String spec ) throws ErrorMsg; /*---------------------------------------------------------------------- * ALIGNMENTS */ /** * Access a single Alignment by id. * The object id is unique within any given ReadCollection, * and may designate an Alignment of any category. * * Note Excessive usage may create pressure on JVM and System memory. * * @param alignmentId the ID of the alignment to return * @return an individual Alignment instance * @throws ErrorMsg if Alignment is not found * @throws ErrorMsg upon an error accessing data */ Alignment getAlignment ( String alignmentId ) throws ErrorMsg; /** * Select Alignments by AlignmentCategory. * @param categories is a bitfield of AlignmentCategory * @return an iterator of all Alignments from specified categories * @throws ErrorMsg upon an error accessing data */ AlignmentIterator getAlignments ( int categories ) throws ErrorMsg; /** * Count all Alignments within the ReadCollection * @return 0 if there are no aligned Reads, > 0 otherwise * @throws ErrorMsg upon an error accessing data */ long getAlignmentCount () throws ErrorMsg; /** * Count selected Alignments within the ReadCollection * @param categories is a bitfield of AlignmentCategory * @return count of all alignments * @see ngs.Alignment Alignment interface for definitions of AlignmentCategory * @throws ErrorMsg upon an error accessing data */ long getAlignmentCount ( int categories ) throws ErrorMsg; /** * getAlignmentRange * @param first is an unsigned ordinal into set * @param count the number of alignments * @return an iterator across a range of Alignments * @throws ErrorMsg upon an error accessing data */ AlignmentIterator getAlignmentRange ( long first, long count ) throws ErrorMsg; /** * getAlignmentRange * @param first is an unsigned ordinal into set * @param count number of alignments * @param categories provides a means of filtering by AlignmentCategory * @return an iterator across a range of Alignments * @throws ErrorMsg upon an error accessing data */ AlignmentIterator getAlignmentRange ( long first, long count, int categories ) throws ErrorMsg; /*---------------------------------------------------------------------- * READS */ /** * getRead * @param readId the ID of the Read to return * @return an individual Read * @throws ErrorMsg if Read does not exist */ Read getRead ( String readId ) throws ErrorMsg; /* ReadCategory * see Read for categories */ /** * getReads * @param categories provides a means of filtering by ReadCategory * @return an iterator of all contained machine Reads * @throws ErrorMsg upon an error accessing data */ ReadIterator getReads ( int categories ) throws ErrorMsg; /** * getReadCount * @return the number of reads in the collection * @throws ErrorMsg upon an error accessing data */ long getReadCount () throws ErrorMsg; /** * getReadCount * @param categories provides an optional means of filtering by ReadCategory * @return the number of reads in the collection * @throws ErrorMsg upon an error accessing data */ long getReadCount ( int categories ) throws ErrorMsg; /** * getReadRange * @param first is an unsigned ordinal into set * @param count the number of reads * @return an iterator across a range of Reads * @throws ErrorMsg upon an error accessing data */ ReadIterator getReadRange ( long first, long count ) throws ErrorMsg; /** * getReadRange * @param first is an unsigned ordinal into set * @param count the number of reads * @param categories provides an optional means of filtering by ReadCategory * @return an iterator across a range of Reads * @throws ErrorMsg upon an error accessing data */ ReadIterator getReadRange ( long first, long count, int categories ) throws ErrorMsg; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy