Java Code Examples for htsjdk.samtools.QueryInterval#optimizeIntervals()
The following examples show how to use
htsjdk.samtools.QueryInterval#optimizeIntervals() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: BAMInputFormat.java From Hadoop-BAM with MIT License | 6 votes |
/** * Converts a List of SimpleIntervals into the format required by the SamReader query API * @param rawIntervals SimpleIntervals to be converted * @return A sorted, merged list of QueryIntervals suitable for passing to the SamReader query API */ static QueryInterval[] prepareQueryIntervals( final List<Interval> rawIntervals, final SAMSequenceDictionary sequenceDictionary ) { if ( rawIntervals == null || rawIntervals.isEmpty() ) { return null; } // Convert each SimpleInterval to a QueryInterval final QueryInterval[] convertedIntervals = rawIntervals.stream() .map(rawInterval -> convertSimpleIntervalToQueryInterval(rawInterval, sequenceDictionary)) .toArray(QueryInterval[]::new); // Intervals must be optimized (sorted and merged) in order to use the htsjdk query API return QueryInterval.optimizeIntervals(convertedIntervals); }
Example 2
Source File: SamReaderQueryingIterator.java From gatk with BSD 3-Clause "New" or "Revised" License | 6 votes |
/** * Converts a List of SimpleIntervals into the format required by the SamReader query API * @param rawIntervals SimpleIntervals to be converted * @return A sorted, merged list of QueryIntervals suitable for passing to the SamReader query API */ private QueryInterval[] prepareQueryIntervals( final List<SimpleInterval> rawIntervals ) { if ( rawIntervals == null || rawIntervals.isEmpty() ) { return null; } // This might take a while with large interval lists, so log a status message logger.debug("Preparing intervals for traversal"); // Convert each SimpleInterval to a QueryInterval final QueryInterval[] convertedIntervals = rawIntervals.stream() .map(rawInterval -> IntervalUtils.convertSimpleIntervalToQueryInterval(rawInterval, reader.getFileHeader().getSequenceDictionary())) .toArray(QueryInterval[]::new); // Intervals must be optimized (sorted and merged) in order to use the htsjdk query API return QueryInterval.optimizeIntervals(convertedIntervals); }
Example 3
Source File: BamSlicerApplication.java From hmftools with GNU General Public License v3.0 | 5 votes |
@NotNull private static QueryInterval[] getIntervalsFromBED(@NotNull String bedPath, @NotNull SAMFileHeader header) throws IOException { Slicer bedSlicer = SlicerFactory.fromBedFile(bedPath); List<QueryInterval> queryIntervals = Lists.newArrayList(); for (GenomeRegion region : bedSlicer.regions()) { queryIntervals.add(new QueryInterval(header.getSequenceIndex(region.chromosome()), (int) region.start(), (int) region.end())); } return QueryInterval.optimizeIntervals(queryIntervals.toArray(new QueryInterval[queryIntervals.size()])); }
Example 4
Source File: SAMSlicer.java From hmftools with GNU General Public License v3.0 | 5 votes |
@NotNull private static QueryInterval[] createIntervals(@NotNull final Collection<GenomeRegion> regions, @NotNull final SAMFileHeader header) { final List<QueryInterval> queryIntervals = Lists.newArrayList(); for (final GenomeRegion region : regions) { int sequenceIndex = header.getSequenceIndex(region.chromosome()); if (sequenceIndex > -1) { queryIntervals.add(new QueryInterval(sequenceIndex, (int) region.start(), (int) region.end())); } } return QueryInterval.optimizeIntervals(queryIntervals.toArray(new QueryInterval[queryIntervals.size()])); }
Example 5
Source File: SamSlicer.java From hmftools with GNU General Public License v3.0 | 5 votes |
@NotNull private static QueryInterval[] createIntervals(@NotNull final Collection<GenomeRegion> regions, @NotNull final SAMFileHeader header) { final List<QueryInterval> queryIntervals = Lists.newArrayList(); for (final GenomeRegion region : regions) { int sequenceIndex = header.getSequenceIndex(region.chromosome()); if (sequenceIndex > -1) { queryIntervals.add(new QueryInterval(sequenceIndex, (int) region.start(), (int) region.end())); } } return QueryInterval.optimizeIntervals(queryIntervals.toArray(new QueryInterval[queryIntervals.size()])); }