Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Align short reads using Bowtie2 with local or end-to-end modes. Supports gapped alignment. Use when aligning ChIP-seq, ATAC-seq, or when flexible alignment modes are needed.
.claude/skills/bio-read-alignment-bowtie2-alignment/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 81% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 69% | 0% |
| case-11 | ✓→✓ | = Same ✓ | 228% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 51% | 0% |
<!--
#
#
-->
bash# Build index from reference FASTA bowtie2-build reference.fa reference_index # With threads (faster) bowtie2-build --threads 8 reference.fa reference_index # Creates: reference_index.1.bt2, .2.bt2, .3.bt2, .4.bt2, .rev.1.bt2, .rev.2.bt2
bash# Paired-end reads bowtie2 -p 8 -x reference_index -1 reads_1.fq.gz -2 reads_2.fq.gz -S aligned.sam # Single-end reads bowtie2 -p 8 -x reference_index -U reads.fq.gz -S aligned.sam # Direct to sorted BAM bowtie2 -p 8 -x reference_index -1 r1.fq.gz -2 r2.fq.gz | \ samtools sort -@ 4 -o aligned.sorted.bam -
bash# End-to-end mode (default) - align entire read bowtie2 --end-to-end -x index -1 r1.fq -2 r2.fq -S aligned.sam # Local mode - soft-clip ends for better alignment bowtie2 --local -x index -1 r1.fq -2 r2.fq -S aligned.sam
bash# Very fast (less sensitive) bowtie2 --very-fast -x index -1 r1.fq -2 r2.fq -S aligned.sam # Fast bowtie2 --fast -x index -1 r1.fq -2 r2.fq -S aligned.sam # Sensitive (default) bowtie2 --sensitive -x index -1 r1.fq -2 r2.fq -S aligned.sam # Very sensitive (slower but more accurate) bowtie2 --very-sensitive -x index -1 r1.fq -2 r2.fq -S aligned.sam # Local mode equivalents bowtie2 --very-sensitive-local -x index -1 r1.fq -2 r2.fq -S aligned.sam
bash# Typical ChIP-seq settings bowtie2 -p 8 \ --very-sensitive \ --no-mixed \ --no-discordant \ -x index -1 chip_1.fq.gz -2 chip_2.fq.gz | \ samtools view -bS -q 30 -F 4 - | \ samtools sort -o chip.sorted.bam -
bash# ATAC-seq with size selection bowtie2 -p 8 \ --very-sensitive \ -X 2000 \ # Max fragment length --no-mixed \ --no-discordant \ -x index -1 atac_1.fq.gz -2 atac_2.fq.gz | \ samtools view -bS -q 30 - | \ samtools sort -o atac.sorted.bam -
bash# Set expected insert size range bowtie2 -p 8 \ -I 100 \ # Minimum fragment length -X 500 \ # Maximum fragment length -x index -1 r1.fq -2 r2.fq -S aligned.sam
bash# Add read group bowtie2 -p 8 \ --rg-id sample1 \ --rg SM:sample1 \ --rg PL:ILLUMINA \ --rg LB:lib1 \ -x index -1 r1.fq -2 r2.fq -S aligned.sam
bash# Report up to k alignments per read bowtie2 -k 5 -x index -1 r1.fq -2 r2.fq -S aligned.sam # Report all alignments bowtie2 -a -x index -1 r1.fq -2 r2.fq -S aligned.sam
bash# Write unmapped reads to separate files bowtie2 -p 8 \ --un-conc-gz unmapped_%.fq.gz \ -x index -1 r1.fq.gz -2 r2.fq.gz -S aligned.sam
| Parameter | Default | Description | |-----------|---------|-------------| | -p | 1 | Number of threads | | -x | - | Index basename | | -1/-2 | - | Paired-end reads | | -U | - | Single-end reads | | -I | 0 | Min fragment length | | -X | 500 | Max fragment length | | -k | 1 | Report up to k alignments | | --no-mixed | off | Suppress unpaired alignments | | --no-discordant | off | Suppress discordant alignments |
bash# Bowtie2 prints alignment summary to stderr bowtie2 -p 8 -x index -1 r1.fq -2 r2.fq -S aligned.sam 2> alignment_stats.txt
Example output:
1000000 reads; of these:
1000000 (100.00%) were paired; of these:
50000 (5.00%) aligned concordantly 0 times
900000 (90.00%) aligned concordantly exactly 1 time
50000 (5.00%) aligned concordantly >1 times
95.00% overall alignment rate<!-- AUTHOR_SIGNATURE: 9a7f3c2e-MD-BABU-MIA-2026-MSSM-SECURE -->
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 14,099 | 11,578 | -18% | 1 | 1 | 0% | 2,614 | 3,703 | +42% | 0 | 0 | — |
case-02 | pass→pass | 8,912 | 7,712 | -13% | 1 | 1 | 0% | 1,824 | 3,079 | +69% | 0 | 0 | — |
case-11 | pass→pass | 3,463 | 2,505 | -28% | 1 | 1 | 0% | 569 | 1,869 | +228% | 0 | 0 | — |
case-03 | fail→fail | 13,039 | 5,221 | -60% | 1 | 1 | 0% | 1,764 | 2,516 | +43% | 0 | 0 | — |
case-04 | pass→pass | 8,987 | 5,122 | -43% | 1 | 1 | 0% | 1,755 | 2,648 | +51% | 0 | 0 | — |
case-05 | fail→pass | 7,722 | 5,017 | -35% | 1 | 1 | 0% | 1,464 | 2,649 | +81% | 0 | 0 | — |
case-06 | pass→pass | 2,756 | 1,885 | -32% | 1 | 1 | 0% | 485 | 1,839 | +279% | 0 | 0 | — |
case-07 | pass→pass | 4,853 | 3,975 | -18% | 1 | 1 | 0% | 917 | 2,339 | +155% | 0 | 0 | — |
case-08 | pass→pass | 2,946 | 2,623 | -11% | 1 | 1 | 0% | 565 | 2,090 | +270% | 0 | 0 | — |
case-09 | pass→pass | 7,190 | 4,131 | -43% | 1 | 1 | 0% | 1,266 | 2,307 | +82% | 0 | 0 | — |
case-10 | pass→pass | 10,626 | 4,384 | -59% | 1 | 1 | 0% | 1,483 | 2,275 | +53% | 0 | 0 | — |
case-12 | pass→pass | 6,322 | 2,991 | -53% | 1 | 1 | 0% | 1,255 | 2,080 | +66% | 0 | 0 | — |
case-13 | pass→pass | 4,391 | 3,554 | -19% | 1 | 1 | 0% | 926 | 2,329 | +152% | 0 | 0 | — |
case-14 | pass→pass | 3,077 | 2,486 | -19% | 1 | 1 | 0% | 511 | 1,982 | +288% | 0 | 0 | — |
case-15 | pass→pass | 4,086 | 3,589 | -12% | 1 | 1 | 0% | 662 | 1,934 | +192% | 0 | 0 | — |
case-16 | pass→pass | 6,331 | 2,661 | -58% | 1 | 1 | 0% | 1,294 | 2,079 | +61% | 0 | 0 | — |
case-17 | pass→pass | 8,164 | 5,371 | -34% | 1 | 1 | 0% | 1,529 | 2,493 | +63% | 0 | 0 | — |
case-18 | pass→pass | 4,860 | 3,883 | -20% | 1 | 1 | 0% | 843 | 2,280 | +170% | 0 | 0 | — |
case-19 | pass→pass | 7,227 | 3,799 | -47% | 1 | 1 | 0% | 1,261 | 2,173 | +72% | 0 | 0 | — |
case-20 | pass→pass | 6,397 | 2,996 | -53% | 1 | 1 | 0% | 1,076 | 2,065 | +92% | 0 | 0 | — |
case-21 | pass→pass | 5,107 | 4,061 | -20% | 1 | 1 | 0% | 848 | 2,252 | +166% | 0 | 0 | — |
case-22 | pass→pass | 7,190 | 1,939 | -73% | 1 | 1 | 0% | 342 | 1,843 | +439% | 0 | 0 | — |
case-23 | pass→pass | 5,396 | 3,627 | -33% | 1 | 1 | 0% | 1,099 | 2,274 | +107% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/26/2026 | 0% |
Other measured skills in the registry, with their headline benchmark lift.