IceCreamGrader

Script: icecreamgrader.sh Package: icecream Class: IceCreamGrader.java

Counts the rate of triangle reads in a file generated by IceCreamMaker with custom headers.

Basic Usage

icecreamgrader.sh in=<input file>

IceCreamGrader analyzes reads generated by IceCreamMaker and determines which reads are "triangle reads" (ice cream reads) versus normal reads. It outputs statistics showing the percentage of good versus bad reads and bases.

Parameters

IceCreamGrader uses a minimal parameter set, focusing on input specification and standard BBTools functionality.

Standard parameters

in=<file>
Input file containing reads to grade. Must be reads generated by IceCreamMaker with custom tab-delimited headers containing metadata about passes, subreads, missing segments, adapters, and error rates. Supports standard file formats (FASTQ, FASTA, compressed files).
verbose=f
Print verbose output messages during processing. When enabled, shows detailed information about stream initialization and processing stages.
maxreads=-1
Maximum number of reads to process from the input file. Default -1 processes all reads. Useful for testing on large datasets or limiting analysis to a subset of reads.
overwrite=t
Allow overwriting of existing output files. When false, prevents accidental overwriting of existing files.
append=f
Append output to existing files rather than overwriting them. When true, adds new results to the end of existing output files.

Examples

Basic Triangle Read Analysis

icecreamgrader.sh in=icecream_reads.fq

Analyzes reads from IceCreamMaker output and reports statistics on triangle reads vs normal reads.

Verbose Processing

icecreamgrader.sh in=icecream_reads.fq verbose=t

Runs analysis with detailed output messages showing processing stages and stream initialization.

Limited Read Processing

icecreamgrader.sh in=large_dataset.fq maxreads=10000

Processes only the first 10,000 reads for quick analysis of large datasets.

Algorithm Details

Triangle Read Detection

IceCreamGrader identifies "ice cream" or triangle reads by parsing the custom tab-delimited headers created by IceCreamMaker. The detection algorithm examines the subreads field in the header:

Header Format Analysis

The tool expects reads with headers containing tab-delimited metadata fields:

m1_2_3/zmw/start_stop	passes=X.XX	fullPasses=N	subreads=N	missing=N	adapters=N	errorRate=X.XXX

Key components analyzed:

Processing Strategy

The tool uses a single-threaded processing approach with ConcurrentReadInputStream for sequential read processing:

Output Statistics

IceCreamGrader provides these specific statistics on the analyzed dataset:

Integration with IceCreamMaker

IceCreamGrader is designed as the quality assessment companion to IceCreamMaker:

Performance Characteristics

Memory Usage

Processing Speed

File Format Support

Support

For questions and support: