Skip to content

Commit

Permalink
docs: update adapter documentation with improved colors and navigation
Browse files Browse the repository at this point in the history
  • Loading branch information
y9c committed Nov 30, 2024
1 parent 7229989 commit e50cb94
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 155 deletions.
26 changes: 16 additions & 10 deletions cutseq/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,14 +222,15 @@ def __init__(self):


BUILDIN_ADAPTERS = {
# dsDNA ligation, A tailing method, do ot need to trim
"DSLIGATION": "AGTTCTACAGTCCGACGATCT>AGATCGGAAGAGCACACGTC",
## RNA library
# Small RNA, double ligation method, without barcode
# p5 - insert - p7
# (Optional) trim 2nt on both end to increase quality
"SMALLRNA": "CACGACGCTCTTCCGATCT>AGATCGGAAGAGCACACGTC",
# NOTE: i5 is small RNA adapter, which is different from truseq i5
"SMALLRNA": "AGTTCTACAGTCCGACGATC>AGATCGGAAGAGCACACGTC",
# inline barcode method
# ref: https://www.nature.com/articles/nmeth0318-226c/figures/1
# NOTE: i5 is small RNA adapter, which is different from truseq i5
"INLINE": "AGTTCTACAGTCCGACGATCNNNNN>NNNNN(ATCACG)AGATCGGAAGAGCACACGTC",
# p5 - (random rt tail in TSO) - reverse insert - (random primer start?) - p7
"TAKARAV2": "ACACGACGCTCTTCCGATCTXXX<XXXAGATCGGAAGAGCACACGTC",
Expand All @@ -245,30 +246,35 @@ def __init__(self):
# eCLIP, SAC-seq, cDNA ligation method, with 10 nt UMI
"ECLIP10": "ACACGACGCTCTTCCGATCTXX<XNNNNNNNNNNAGATCGGAAGAGCACACGTC",
# cDNA88, cDNA ligation method, with 8 nt UMI (left) and 8 nt UMI (right)
"SACSEQV3": "AGTTCTACAGTCCGACGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC",
"SACSEQV3": "ACACGACGCTCTTCCGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC",
# p5 - [might be 6bp of polyC] - reverse insert (cDNA) - adaptase tail (CCCCCC) - p7
# 6nt of polyG in 5' of R1 might from random RT primer
# adaptase tail can be as long as 15bp at the 5' of R2 of polyG)
# no UMI, but try to use random polyC tail as UMI
# legacy name: "SWIFT"
"XGENRNA": "ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC",
# Illumina Strand-Specific RNA-Seq Library Prep
# NOTE: Nextera adapters are used
"ILLUMINARNA": "AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT",

## DNA library
# dsDNA ligation, A tailing method, do ot need to trim
"DSLIGATION": "ACACGACGCTCTTCCGATCT>AGATCGGAAGAGCACACGTC",
# The general method for xGen / Swift kit, might be better than hard clip, TODO
# '-a "C{20};e=0.5;o=1" -G "G{20};e=0.5;o=1"' might be better
# "xGenDNA": "ACACGACGCTCTTCCGATCTXXX>(CCCCCCCCCCCCCCCCCCCC;noninternal;e=0.5;o=1)AGATCGGAAGAGCACACGTC",
# https://www.idtdna.com/pages/products/next-generation-sequencing/workflow/xgen-ngs-library-preparation/methyl-seq-dna-library-kit#product-details
# https://sfvideo.blob.core.windows.net/sitefinity/docs/default-source/technical-report/tail-trimming-for-better-data-technical-note.pdf?sfvrsn=135efe07_4
# 10 bases from END of R1 10 bases from START of R2
# remove 2 letter from the begin of R1, which might be random primer
"XGENMETHY": "ACACGACGCTCTTCCGATCTXX>XXXXXXXXXXAGATCGGAAGAGCACACGTC",
# for snmC-seq, trim 15 bases
"XGENSNMC": "ACACGACGCTCTTCCGATCTXXXXXX>XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC",
# The general method for xGen / Swift kit, might be better than hard clip, TODO
# '-a "C{20};e=0.5;o=1" -G "G{20};e=0.5;o=1"' might be better
# "xGenDNA": "ACACGACGCTCTTCCGATCTXXX>(CCCCCCCCCCCCCCCCCCCC;noninternal;e=0.5;o=1)AGATCGGAAGAGCACACGTC",
# PBAT: method use random primer to add both p5 and p7,
# and there might be random tail at the 5' end of both reads
"PBAT": "ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXAGATCGGAAGAGCACACGTC",
# Nextera, for ATAC-seq, without UMI
"NEXTERA": "AGATGTGTATAAGAGACAG>CTGTCTCTTATACACATCT",
# Illumina Strand-Specific RNA-Seq Library Prep
"ILLUMINARNA": "AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT",
}


Expand Down Expand Up @@ -997,4 +1003,4 @@ def _check_with_inline_barcode(s):


if __name__ == "__main__":
main()
main()
180 changes: 35 additions & 145 deletions docs/adapters.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
### DSLIGATION (dsDNA Ligation)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">AGTTCTACAGTCCGACGATCT</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&gt;</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGTTCTACAGTCCGACGATC</span>
<div style="position: relative; width: 30px; height: 30px;">
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);"></div>
<span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">></span>
</div>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>
Expand All @@ -32,8 +35,11 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
### SMALLRNA (Small RNA Libraries)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">CACGACGCTCTTCCGATCT</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&gt;</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGTTCTACAGTCCGACGATC</span>
<div style="position: relative; width: 30px; height: 30px;">
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);"></div>
<span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">></span>
</div>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>
Expand All @@ -48,7 +54,10 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">AGTTCTACAGTCCGACGATC</span>
<span style="background-color: #B2EBF2; padding: 5px;">NNNNN</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&gt;</span>
<div style="position: relative; width: 30px; height: 30px;">
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);"></div>
<span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">></span>
</div>
<span style="background-color: #B2EBF2; padding: 5px;">NNNNN</span>
<span style="background-color: #FFD700; padding: 5px;">(ATCACG)</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
Expand All @@ -64,110 +73,12 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXX</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Earlier version of TAKARA stranded protocol
- Includes masking for template switching artifacts
- Reverse orientation to RNA
- No UMI sequences

### STRANDED (Generic Stranded RNA-seq)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">X</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXX</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Basic stranded RNA-seq protocol
- Minimal masking for ligation artifacts
- Reverse orientation
- No UMI sequences

### TAKARAV3 (SMARTer® Stranded Total RNA-Seq Kit v3)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXX</span>
<span style="background-color: #1E90FF; padding: 5px;">NNNNNNNN</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Used for stranded RNA-seq
- Contains 8nt UMI
- Reverse orientation to RNA
- Includes masking for template switching artifacts

### ECLIP6 (eCLIP Protocol)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">XX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">X</span>
<span style="background-color: #FF6B6B; padding: 5px;">NNNNNN</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Used for eCLIP and similar protocols
- Contains 6nt UMI
- Reverse orientation
- Short masking regions

### ECLIP10 (Extended eCLIP Protocol)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">XX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">X</span>
<span style="background-color: #FF6B6B; padding: 5px;">NNNNNNNNNN</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Extended version of eCLIP protocol
- Contains 10nt UMI for higher complexity
- Reverse orientation
- Short masking regions

### SACSEQV3 (SAC-seq Protocol V3)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">AGTTCTACAGTCCGACGATCT</span>
<span style="background-color: #FF6B6B; padding: 5px;">NNNNNNNN</span>
<span style="background-color: #DCDCDC; padding: 5px;">X</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&gt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">XX</span>
<span style="background-color: #FF6B6B; padding: 5px;">NNNNNNNN</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Dual UMI design (8nt each)
- Forward orientation
- Balanced masking on both sides
- Used for high-complexity libraries

### XGENRNA (xGen RNA Library Prep)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<div style="position: relative; width: 30px; height: 30px;">
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);"></div>
<span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">&lt;</span>
</div>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXXXXXXXXXXX</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>
Expand All @@ -177,44 +88,15 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
- Reverse orientation
- Uses random polyC tail as pseudo-UMI

### XGENMETHY (xGen Methyl-Seq)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">XX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&gt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXXXXXX</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Designed for methylation sequencing
- Trims 10 bases from read ends
- Forward orientation
- Includes random primer artifact removal

### XGENSNMC (snmC-seq Protocol)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&gt;</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXXXXXXXXXXX</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
</div>

- Specialized for single-nucleus methylome sequencing
- Extended 15-base trimming
- Forward orientation
- Heavy masking for protocol artifacts

### PBAT (Post-Bisulfite Adapter Tagging)
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">ACACGACGCTCTTCCGATCT</span>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXX</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<div style="position: relative; width: 30px; height: 30px;">
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);"></div>
<span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">&lt;</span>
</div>
<span style="background-color: #DCDCDC; padding: 5px;">XXXXXX</span>
<span style="background-color: #A8E6CF; padding: 5px;">AGATCGGAAGAGCACACGTC</span>
</div>
Expand All @@ -229,7 +111,10 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">AGATGTGTATAAGAGACAG</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&gt;</span>
<div style="position: relative; width: 30px; height: 30px;">
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);"></div>
<span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">></span>
</div>
<span style="background-color: #A8E6CF; padding: 5px;">CTGTCTCTTATACACATCT</span>
</div>
</div>
Expand All @@ -243,7 +128,10 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
<div class="adapter-scheme">
<div style="display: flex; align-items: center; font-family: monospace; margin: 20px 0;">
<span style="background-color: #A8E6CF; padding: 5px;">AGATGTGTATAAGAGACAG</span>
<span style="background-color: #FF6F61; padding: 5px; width: 9ch; display: inline-block;">&lt;</span>
<div style="position: relative; width: 30px; height: 30px;">
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);"></div>
<span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">&lt;</span>
</div>
<span style="background-color: #A8E6CF; padding: 5px;">CTGTCTCTTATACACATCT</span>
</div>
</div>
Expand All @@ -256,8 +144,10 @@ CutSeq supports various built-in adapter schemes for different NGS library prepa
<style>
.adapter-scheme {
background: #f8f9fa;
border-radius: 4px;
padding: 10px;
margin: 10px 0;
border-radius: 8px;
padding: 15px;
margin: 15px 0;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
border: 1px solid #dee2e6;
}
</style>

0 comments on commit e50cb94

Please sign in to comment.