cutseq 0.0.63__tar.gz → 0.0.64__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cutseq-0.0.63 → cutseq-0.0.64}/PKG-INFO +1 -1
- cutseq-0.0.64/cutseq/adapters.toml +157 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/cutseq/run.py +1 -1
- cutseq-0.0.64/docs/adapters.md +140 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/pyproject.toml +1 -1
- cutseq-0.0.64/scripts/update_adapter_docs.py +213 -0
- cutseq-0.0.63/cutseq/adapters.toml +0 -191
- cutseq-0.0.63/docs/adapters.md +0 -243
- cutseq-0.0.63/scripts/update_adapter_docs.py +0 -135
- {cutseq-0.0.63 → cutseq-0.0.64}/.github/FUNDING.yml +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/.github/workflows/docs.yaml +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/.github/workflows/python-publish.yml +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/.gitignore +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/.pre-commit-config.yaml +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/README.md +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/cutseq/common.py +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/docs/CNAME +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/docs/_config.yml +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/docs/explain_library.png +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/docs/favicon.ico +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/docs/index.md +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/docs/takaraV3.png +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/test/input_R1.fq.gz +0 -0
- {cutseq-0.0.63 → cutseq-0.0.64}/test/input_R2.fq.gz +0 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Built-in adapter schemes for cutseq
|
|
2
|
+
|
|
3
|
+
# RNA library
|
|
4
|
+
|
|
5
|
+
[SMALLRNA]
|
|
6
|
+
scheme = "AGTTCTACAGTCCGACGATC>AGATCGGAAGAGCACACGTC"
|
|
7
|
+
description_name = "Small RNA Libraries"
|
|
8
|
+
points = [
|
|
9
|
+
"Used for small RNA sequencing",
|
|
10
|
+
"Double ligation method",
|
|
11
|
+
"Forward orientation",
|
|
12
|
+
"Optional 2nt trimming on both ends for quality",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[SMRNA]
|
|
16
|
+
scheme = "AGTTCTACAGTCCGACGATC>TGGAATTCTCGGGTGCCAAG"
|
|
17
|
+
description_name = "Small RNA (Legacy)"
|
|
18
|
+
points = [
|
|
19
|
+
"Legacy version for small RNA sequencing",
|
|
20
|
+
"Refer to library preparation protocol for details.",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[INLINE]
|
|
24
|
+
scheme = "AGTTCTACAGTCCGACGATCNNNNN>NNNNN(ATCACG)AGATCGGAAGAGCACACGTC"
|
|
25
|
+
description_name = "Custom Barcoded Libraries"
|
|
26
|
+
points = [
|
|
27
|
+
"Used for libraries with inline barcodes",
|
|
28
|
+
"Dual UMI design (5nt each)",
|
|
29
|
+
"Forward orientation",
|
|
30
|
+
"Contains fixed inline barcode (ATCACG)",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[TAKARAV2]
|
|
34
|
+
scheme = "ACACGACGCTCTTCCGATCTXXX<XXXAGATCGGAAGAGCACACGTC"
|
|
35
|
+
description_name = "Takara V2"
|
|
36
|
+
points = [
|
|
37
|
+
"Contains masked regions (XXX)",
|
|
38
|
+
"Refer to Takara V2 library preparation protocol for details.",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[STRANDED]
|
|
42
|
+
scheme = "ACACGACGCTCTTCCGATCTX<XXXAGATCGGAAGAGCACACGTC"
|
|
43
|
+
description_name = "Stranded RNA"
|
|
44
|
+
points = [
|
|
45
|
+
"Contains masked regions (X, XXX)",
|
|
46
|
+
"Refer to stranded RNA library preparation protocol for details.",
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
[UNSTRANDED]
|
|
50
|
+
scheme = "ACACGACGCTCTTCCGATCTXX-XXAGATCGGAAGAGCACACGTC"
|
|
51
|
+
description_name = "Unstranded RNA/DNA"
|
|
52
|
+
points = [
|
|
53
|
+
"Contains masked regions (XX)",
|
|
54
|
+
"Refer to library preparation protocol for details.",
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[TAKARAV3]
|
|
58
|
+
scheme = "ACACGACGCTCTTCCGATCTXXX<XXXXXXNNNNNNNNAGATCGGAAGAGCACACGTC"
|
|
59
|
+
description_name = "Takara V3"
|
|
60
|
+
points = [
|
|
61
|
+
"Contains masked regions (XXX, XXXXXX)",
|
|
62
|
+
"Contains UMI sequences (NNNNNNNN)",
|
|
63
|
+
"Refer to Takara V3 library preparation protocol for details.",
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
[ECLIP6]
|
|
67
|
+
scheme = "ACACGACGCTCTTCCGATCTXX<XNNNNNNAGATCGGAAGAGCACACGTC"
|
|
68
|
+
description_name = "eCLIP (6nt UMI)"
|
|
69
|
+
points = [
|
|
70
|
+
"Contains masked regions (XX, X)",
|
|
71
|
+
"Contains UMI sequences (NNNNNN)",
|
|
72
|
+
"Used for eCLIP experiments with a 6-nucleotide UMI.",
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
[ECLIP10]
|
|
76
|
+
scheme = "ACACGACGCTCTTCCGATCTXX<XNNNNNNNNNNAGATCGGAAGAGCACACGTC"
|
|
77
|
+
description_name = "eCLIP (10nt UMI)"
|
|
78
|
+
points = [
|
|
79
|
+
"Contains masked regions (XX, X)",
|
|
80
|
+
"Contains UMI sequences (NNNNNNNNNN)",
|
|
81
|
+
"Used for eCLIP experiments with a 10-nucleotide UMI.",
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
[SACSEQ]
|
|
85
|
+
scheme = "ACACGACGCTCTTCCGATCT<XXXXNNNNNNAGATCGGAAGAGCACACGTC"
|
|
86
|
+
description_name = "SAC-Seq"
|
|
87
|
+
points = [
|
|
88
|
+
"Contains masked regions (XXXX)",
|
|
89
|
+
"Contains UMI sequences (NNNNNN)",
|
|
90
|
+
"Used for SAC-Seq (Single-cell RNA-Seq) or similar protocols.",
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
[SACSEQV3]
|
|
94
|
+
scheme = "ACACGACGCTCTTCCGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC"
|
|
95
|
+
description_name = "SAC-Seq V3"
|
|
96
|
+
points = [
|
|
97
|
+
"Contains masked regions (X, XX)",
|
|
98
|
+
"Contains dual UMI sequences (NNNNNNNN on both sides)",
|
|
99
|
+
"Refer to SAC-Seq V3 library preparation protocol for details.",
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
[XGENRNA]
|
|
103
|
+
scheme = "ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC"
|
|
104
|
+
description_name = "xGen RNA"
|
|
105
|
+
points = [
|
|
106
|
+
"Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)",
|
|
107
|
+
"Likely for specific xGen RNA library preps, check protocol.",
|
|
108
|
+
]
|
|
109
|
+
|
|
110
|
+
[ILLUMINARNA]
|
|
111
|
+
scheme = "AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT"
|
|
112
|
+
description_name = "Illumina Stranded RNA (Nextera-based)"
|
|
113
|
+
points = ["Uses Nextera-style adapter sequences."]
|
|
114
|
+
|
|
115
|
+
# DNA library
|
|
116
|
+
|
|
117
|
+
[DSLIGATION]
|
|
118
|
+
scheme = "ACACGACGCTCTTCCGATCT>AGATCGGAAGAGCACACGTC"
|
|
119
|
+
description_name = "dsDNA Ligation"
|
|
120
|
+
points = [
|
|
121
|
+
"Basic dsDNA ligation with A-tailing",
|
|
122
|
+
"No UMIs or special trimming needed",
|
|
123
|
+
]
|
|
124
|
+
|
|
125
|
+
# xGenDNA = "ACACGACGCTCTTCCGATCTXXX>(CCCCCCCCCCCCCCCCCCCC;noninternal;e=0.5;o=1)AGATCGGAAGAGCACACGTC" # Commented out
|
|
126
|
+
|
|
127
|
+
[XGENMETHY]
|
|
128
|
+
scheme = "ACACGACGCTCTTCCGATCTXX>XXXXXXXXXXAGATCGGAAGAGCACACGTC"
|
|
129
|
+
description_name = "xGen Methyl-Seq"
|
|
130
|
+
points = [
|
|
131
|
+
"Contains masked regions (XX, XXXXXXXXXX)",
|
|
132
|
+
"Designed for xGen Methyl-Seq library kits.",
|
|
133
|
+
]
|
|
134
|
+
|
|
135
|
+
[XGENSNMC]
|
|
136
|
+
scheme = "ACACGACGCTCTTCCGATCTXXXXXX>XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC"
|
|
137
|
+
description_name = "xGen snmC-Seq"
|
|
138
|
+
points = [
|
|
139
|
+
"Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)",
|
|
140
|
+
"Designed for xGen single-nucleus methylC-Seq (snmC-Seq) library kits.",
|
|
141
|
+
]
|
|
142
|
+
|
|
143
|
+
[PBAT]
|
|
144
|
+
scheme = "ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXAGATCGGAAGAGCACACGTC"
|
|
145
|
+
description_name = "PBAT (Post-Bisulfite Adapter Tagging)"
|
|
146
|
+
points = [
|
|
147
|
+
"Contains masked regions (XXXXXX on both sides)",
|
|
148
|
+
"Used for PBAT-style bisulfite sequencing libraries.",
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
[NEXTERA]
|
|
152
|
+
scheme = "AGATGTGTATAAGAGACAG>CTGTCTCTTATACACATCT"
|
|
153
|
+
description_name = "Nextera (General)"
|
|
154
|
+
points = [
|
|
155
|
+
"Standard Nextera transposase-based library preparation.",
|
|
156
|
+
"No UMIs by default in this basic scheme.",
|
|
157
|
+
]
|
|
@@ -993,7 +993,7 @@ def main():
|
|
|
993
993
|
args.adapter_scheme = BUILDIN_ADAPTERS.get(args.adapter_name.upper())
|
|
994
994
|
if args.adapter_scheme is None:
|
|
995
995
|
logging.error(
|
|
996
|
-
f"Adapter name '{args.adapter_name}
|
|
996
|
+
f"Adapter name '{args.adapter_name} not found in built-in adapters."
|
|
997
997
|
)
|
|
998
998
|
# sys.exit(1) # Consider exiting if a bad name is given and no scheme
|
|
999
999
|
# For now, allow fallback to adapter_scheme = adapter_name if not found
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Adapter Schemes
|
|
2
|
+
This file is auto-generated by `scripts/update_adapter_docs.py`. Do not edit manually.
|
|
3
|
+
|
|
4
|
+
This document lists the built-in adapter schemes available in `cutseq`. These can be used with the `-A` or `--adapter-name` option in the `cutseq run` command.
|
|
5
|
+
|
|
6
|
+
### SMALLRNA (Small RNA Libraries)
|
|
7
|
+
|
|
8
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: AGTTCTACAGTCCGACGATC>AGATCGGAAGAGCACACGTC" data-scheme="AGTTCTACAGTCCGACGATC>AGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGTTCTACAGTCCGACGATC</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
9
|
+
- Used for small RNA sequencing
|
|
10
|
+
- Double ligation method
|
|
11
|
+
- Forward orientation
|
|
12
|
+
- Optional 2nt trimming on both ends for quality
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
### SMRNA (Small RNA (Legacy))
|
|
16
|
+
|
|
17
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: AGTTCTACAGTCCGACGATC>TGGAATTCTCGGGTGCCAAG" data-scheme="AGTTCTACAGTCCGACGATC>TGGAATTCTCGGGTGCCAAG"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGTTCTACAGTCCGACGATC</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">TGGAATTCTCGGGTGCCAAG</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
18
|
+
- Legacy version for small RNA sequencing
|
|
19
|
+
- Refer to library preparation protocol for details.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
### INLINE (Custom Barcoded Libraries)
|
|
23
|
+
|
|
24
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: AGTTCTACAGTCCGACGATCNNNNN>NNNNN(ATCACG)AGATCGGAAGAGCACACGTC" data-scheme="AGTTCTACAGTCCGACGATCNNNNN>NNNNN(ATCACG)AGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGTTCTACAGTCCGACGATC</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNN</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNN</span><span style="background-color: #FFD700; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ATCACG</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
25
|
+
- Used for libraries with inline barcodes
|
|
26
|
+
- Dual UMI design (5nt each)
|
|
27
|
+
- Forward orientation
|
|
28
|
+
- Contains fixed inline barcode (ATCACG)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
### TAKARAV2 (Takara V2)
|
|
32
|
+
|
|
33
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXXX<XXXAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXXX<XXXAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
34
|
+
- Contains masked regions (XXX)
|
|
35
|
+
- Refer to Takara V2 library preparation protocol for details.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
### STRANDED (Stranded RNA)
|
|
39
|
+
|
|
40
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTX<XXXAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTX<XXXAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
41
|
+
- Contains masked regions (X, XXX)
|
|
42
|
+
- Refer to stranded RNA library preparation protocol for details.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
### UNSTRANDED (Unstranded RNA/DNA)
|
|
46
|
+
|
|
47
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXX-XXAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXX-XXAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">-</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
48
|
+
- Contains masked regions (XX)
|
|
49
|
+
- Refer to library preparation protocol for details.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
### TAKARAV3 (Takara V3)
|
|
53
|
+
|
|
54
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXXX<XXXXXXNNNNNNNNAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXXX<XXXXXXNNNNNNNNAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
55
|
+
- Contains masked regions (XXX, XXXXXX)
|
|
56
|
+
- Contains UMI sequences (NNNNNNNN)
|
|
57
|
+
- Refer to Takara V3 library preparation protocol for details.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
### ECLIP6 (eCLIP (6nt UMI))
|
|
61
|
+
|
|
62
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXX<XNNNNNNAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXX<XNNNNNNAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
63
|
+
- Contains masked regions (XX, X)
|
|
64
|
+
- Contains UMI sequences (NNNNNN)
|
|
65
|
+
- Used for eCLIP experiments with a 6-nucleotide UMI.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
### ECLIP10 (eCLIP (10nt UMI))
|
|
69
|
+
|
|
70
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXX<XNNNNNNNNNNAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXX<XNNNNNNNNNNAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
71
|
+
- Contains masked regions (XX, X)
|
|
72
|
+
- Contains UMI sequences (NNNNNNNNNN)
|
|
73
|
+
- Used for eCLIP experiments with a 10-nucleotide UMI.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
### SACSEQ (SAC-Seq)
|
|
77
|
+
|
|
78
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCT<XXXXNNNNNNAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCT<XXXXNNNNNNAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXX</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
79
|
+
- Contains masked regions (XXXX)
|
|
80
|
+
- Contains UMI sequences (NNNNNN)
|
|
81
|
+
- Used for SAC-Seq (Single-cell RNA-Seq) or similar protocols.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
### SACSEQV3 (SAC-Seq V3)
|
|
85
|
+
|
|
86
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNN</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
87
|
+
- Contains masked regions (X, XX)
|
|
88
|
+
- Contains dual UMI sequences (NNNNNNNN on both sides)
|
|
89
|
+
- Refer to SAC-Seq V3 library preparation protocol for details.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
### XGENRNA (xGen RNA)
|
|
93
|
+
|
|
94
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXXXXXXXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
95
|
+
- Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)
|
|
96
|
+
- Likely for specific xGen RNA library preps, check protocol.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
### ILLUMINARNA (Illumina Stranded RNA (Nextera-based))
|
|
100
|
+
|
|
101
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT" data-scheme="AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATGTGTATAAGAGACAG</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">CTGTCTCTTATACACATCT</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
102
|
+
- Uses Nextera-style adapter sequences.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
### DSLIGATION (dsDNA Ligation)
|
|
106
|
+
|
|
107
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCT>AGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCT>AGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
108
|
+
- Basic dsDNA ligation with A-tailing
|
|
109
|
+
- No UMIs or special trimming needed
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
### XGENMETHY (xGen Methyl-Seq)
|
|
113
|
+
|
|
114
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXX>XXXXXXXXXXAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXX>XXXXXXXXXXAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
115
|
+
- Contains masked regions (XX, XXXXXXXXXX)
|
|
116
|
+
- Designed for xGen Methyl-Seq library kits.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
### XGENSNMC (xGen snmC-Seq)
|
|
120
|
+
|
|
121
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXXXXXX>XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXXXXXX>XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXXXXXXXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
122
|
+
- Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)
|
|
123
|
+
- Designed for xGen single-nucleus methylC-Seq (snmC-Seq) library kits.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
### PBAT (PBAT (Post-Bisulfite Adapter Tagging))
|
|
127
|
+
|
|
128
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXAGATCGGAAGAGCACACGTC" data-scheme="ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXAGATCGGAAGAGCACACGTC"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span></div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
129
|
+
- Contains masked regions (XXXXXX on both sides)
|
|
130
|
+
- Used for PBAT-style bisulfite sequencing libraries.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
### NEXTERA (Nextera (General))
|
|
134
|
+
|
|
135
|
+
<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;"><div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: AGATGTGTATAAGAGACAG>CTGTCTCTTATACACATCT" data-scheme="AGATGTGTATAAGAGACAG>CTGTCTCTTATACACATCT"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATGTGTATAAGAGACAG</span><div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span></div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">CTGTCTCTTATACACATCT</span></div><div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div></div>
|
|
136
|
+
- Standard Nextera transposase-based library preparation.
|
|
137
|
+
- No UMIs by default in this basic scheme.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
<script>(function() { function showTooltip(el) { var tooltip = el.parentElement.querySelector(".scheme-raw-tooltip"); if (tooltip) { tooltip.style.display = "block"; setTimeout(function() { tooltip.style.display = "none"; }, 1200); } } document.querySelectorAll(".copy-scheme-raw").forEach(function(block) { block.addEventListener("mouseenter", function() { block.style.boxShadow = "0 0 0 2px #FF6F61"; }); block.addEventListener("mouseleave", function() { block.style.boxShadow = ""; }); block.addEventListener("click", function(e) { var scheme = block.getAttribute("data-scheme"); if (navigator.clipboard) { navigator.clipboard.writeText(scheme).then(function() { showTooltip(block); }); } else { var textarea = document.createElement("textarea"); textarea.value = scheme; document.body.appendChild(textarea); textarea.select(); document.execCommand("copy"); document.body.removeChild(textarea); showTooltip(block); } }); });})();</script>
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
import sys
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
# Add project root to sys.path to allow importing cutseq.common
|
|
6
|
+
project_root = Path(__file__).parent.parent
|
|
7
|
+
sys.path.insert(0, str(project_root))
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
from cutseq.common import BarcodeConfig
|
|
11
|
+
except ImportError as e:
|
|
12
|
+
print(f"Error importing BarcodeConfig from cutseq.common: {e}")
|
|
13
|
+
print(f"Current sys.path: {sys.path}")
|
|
14
|
+
print(f"Project root: {project_root}")
|
|
15
|
+
sys.exit(1)
|
|
16
|
+
|
|
17
|
+
try:
|
|
18
|
+
import tomllib # Python 3.11+
|
|
19
|
+
except ImportError:
|
|
20
|
+
try:
|
|
21
|
+
import tomli as tomllib # Python < 3.11
|
|
22
|
+
except ImportError:
|
|
23
|
+
print(
|
|
24
|
+
"Error: 'tomli' is not installed. Please install it with 'pip install tomli' for Python < 3.11."
|
|
25
|
+
)
|
|
26
|
+
sys.exit(1)
|
|
27
|
+
|
|
28
|
+
COLOR_PALETTE = {
|
|
29
|
+
"p5": "#A8E6CF",
|
|
30
|
+
"p7": "#D1E8D1",
|
|
31
|
+
"umi": "#B2EBF2",
|
|
32
|
+
"inline": "#FFD700",
|
|
33
|
+
"mask": "#DCDCDC",
|
|
34
|
+
"strand_bg": "#FF6F61", # A distinct background for the strand indicator
|
|
35
|
+
"default_seq": "#E0E0E0",
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def get_part_type(part_name):
|
|
40
|
+
"""Determines the 'type' of adapter part for color selection."""
|
|
41
|
+
if "p5" in part_name:
|
|
42
|
+
return "p5"
|
|
43
|
+
if "p7" in part_name:
|
|
44
|
+
return "p7"
|
|
45
|
+
if "umi" in part_name:
|
|
46
|
+
return "umi"
|
|
47
|
+
if "inline" in part_name:
|
|
48
|
+
return "inline"
|
|
49
|
+
if "mask" in part_name:
|
|
50
|
+
return "mask"
|
|
51
|
+
return "default_seq" # Fallback
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def main():
|
|
55
|
+
adapters_toml_path = project_root / "cutseq" / "adapters.toml"
|
|
56
|
+
adapters_md_path = project_root / "docs" / "adapters.md"
|
|
57
|
+
|
|
58
|
+
print(f"Adapters TOML path: {adapters_toml_path}")
|
|
59
|
+
print(f"Adapters MD path: {adapters_md_path}")
|
|
60
|
+
|
|
61
|
+
if not adapters_toml_path.exists():
|
|
62
|
+
print(
|
|
63
|
+
f"Error: {adapters_toml_path} not found. Make sure the script is run from the project root or the path is correct."
|
|
64
|
+
)
|
|
65
|
+
sys.exit(1)
|
|
66
|
+
|
|
67
|
+
try:
|
|
68
|
+
with open(adapters_toml_path, "rb") as f:
|
|
69
|
+
adapters_data = tomllib.load(f)
|
|
70
|
+
except Exception as e:
|
|
71
|
+
print(f"Error parsing {adapters_toml_path}: {e}")
|
|
72
|
+
sys.exit(1)
|
|
73
|
+
|
|
74
|
+
# --- Generate Markdown Content ---
|
|
75
|
+
all_markdown_parts = []
|
|
76
|
+
all_markdown_parts.append("# Adapter Schemes\n")
|
|
77
|
+
all_markdown_parts.append(
|
|
78
|
+
"This file is auto-generated by `scripts/update_adapter_docs.py`. Do not edit manually.\n\n"
|
|
79
|
+
)
|
|
80
|
+
all_markdown_parts.append(
|
|
81
|
+
"This document lists the built-in adapter schemes available in `cutseq`. "
|
|
82
|
+
)
|
|
83
|
+
all_markdown_parts.append(
|
|
84
|
+
"These can be used with the `-A` or `--adapter-name` option in the `cutseq run` command.\n\n"
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
for adapter_key, adapter_info in adapters_data.items():
|
|
88
|
+
if not isinstance(adapter_info, dict) or not all(
|
|
89
|
+
k in adapter_info for k in ["scheme", "description_name", "points"]
|
|
90
|
+
):
|
|
91
|
+
print(
|
|
92
|
+
f"Warning: Skipping adapter '{adapter_key}' due to missing 'scheme', 'description_name', or 'points' fields."
|
|
93
|
+
)
|
|
94
|
+
continue
|
|
95
|
+
|
|
96
|
+
all_markdown_parts.append(
|
|
97
|
+
f"### {adapter_key} ({adapter_info['description_name']})\n\n"
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
# HTML Visualization
|
|
101
|
+
bc = BarcodeConfig(adapter_info["scheme"])
|
|
102
|
+
scheme_raw = adapter_info["scheme"]
|
|
103
|
+
|
|
104
|
+
html_parts = [
|
|
105
|
+
'<div class="adapter-scheme" style="margin-bottom: 15px; position: relative;">',
|
|
106
|
+
f'<div class="copy-scheme-raw" style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto; cursor: pointer; background: #f8f8f8; transition: box-shadow 0.2s;" title="Click to copy scheme: {scheme_raw}" data-scheme="{scheme_raw}">' # clickable block
|
|
107
|
+
]
|
|
108
|
+
|
|
109
|
+
adapter_components_ordered = [
|
|
110
|
+
"p5",
|
|
111
|
+
"inline5",
|
|
112
|
+
"umi5",
|
|
113
|
+
"mask5",
|
|
114
|
+
"strand",
|
|
115
|
+
"mask3",
|
|
116
|
+
"umi3",
|
|
117
|
+
"inline3",
|
|
118
|
+
"p7",
|
|
119
|
+
]
|
|
120
|
+
|
|
121
|
+
for part_name in adapter_components_ordered:
|
|
122
|
+
seq_val = ""
|
|
123
|
+
is_strand_part = False
|
|
124
|
+
|
|
125
|
+
if part_name == "strand":
|
|
126
|
+
strand_char_map = {"+": ">", "-": "<", None: "-"}
|
|
127
|
+
seq_val = strand_char_map.get(getattr(bc, 'strand', None), "-")
|
|
128
|
+
is_strand_part = True
|
|
129
|
+
elif hasattr(bc, part_name):
|
|
130
|
+
barcode_seq_obj = getattr(bc, part_name)
|
|
131
|
+
if hasattr(barcode_seq_obj, "fw"):
|
|
132
|
+
seq_val = barcode_seq_obj.fw
|
|
133
|
+
|
|
134
|
+
if seq_val:
|
|
135
|
+
if is_strand_part:
|
|
136
|
+
html_parts.append(
|
|
137
|
+
f'<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;"><div style="background-color: {COLOR_PALETTE["strand_bg"]}; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div><span style="position: relative; z-index: 1; color: white; font-weight: bold;">{seq_val}</span></div>'
|
|
138
|
+
)
|
|
139
|
+
else:
|
|
140
|
+
part_type = get_part_type(part_name)
|
|
141
|
+
color = COLOR_PALETTE.get(part_type, COLOR_PALETTE["default_seq"])
|
|
142
|
+
html_parts.append(
|
|
143
|
+
f'<span style="background-color: {color}; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">{seq_val}</span>'
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
html_parts.append("</div>") # Close flex container
|
|
147
|
+
# Add a hidden raw scheme and a tooltip for copy feedback
|
|
148
|
+
html_parts.append(
|
|
149
|
+
'<div class="scheme-raw-tooltip" style="display:none; position:absolute; top:-30px; left:0; background:#222; color:#fff; padding:3px 8px; border-radius:4px; font-size:12px; z-index:10;">Copied!</div>'
|
|
150
|
+
)
|
|
151
|
+
html_parts.append("</div>\n") # Close adapter-scheme div
|
|
152
|
+
|
|
153
|
+
all_markdown_parts.extend(html_parts)
|
|
154
|
+
|
|
155
|
+
# Bullet Points
|
|
156
|
+
if adapter_info["points"]:
|
|
157
|
+
for point in adapter_info["points"]:
|
|
158
|
+
all_markdown_parts.append(f"- {point}\n")
|
|
159
|
+
all_markdown_parts.append("\n---\n") # Add a horizontal rule for separation
|
|
160
|
+
|
|
161
|
+
# --- End Generate Markdown Content ---
|
|
162
|
+
# Remove unused markdown_content assignment
|
|
163
|
+
# Add JS/CSS for copy-to-clipboard functionality at the end of the markdown
|
|
164
|
+
all_markdown_parts.append(
|
|
165
|
+
'<script>'
|
|
166
|
+
'(function() {'
|
|
167
|
+
' function showTooltip(el) {'
|
|
168
|
+
' var tooltip = el.parentElement.querySelector(".scheme-raw-tooltip");'
|
|
169
|
+
' if (tooltip) {'
|
|
170
|
+
' tooltip.style.display = "block";'
|
|
171
|
+
' setTimeout(function() { tooltip.style.display = "none"; }, 1200);'
|
|
172
|
+
' }'
|
|
173
|
+
' }'
|
|
174
|
+
' document.querySelectorAll(".copy-scheme-raw").forEach(function(block) {'
|
|
175
|
+
' block.addEventListener("mouseenter", function() {'
|
|
176
|
+
' block.style.boxShadow = "0 0 0 2px #FF6F61";'
|
|
177
|
+
' });'
|
|
178
|
+
' block.addEventListener("mouseleave", function() {'
|
|
179
|
+
' block.style.boxShadow = "";'
|
|
180
|
+
' });'
|
|
181
|
+
' block.addEventListener("click", function(e) {'
|
|
182
|
+
' var scheme = block.getAttribute("data-scheme");'
|
|
183
|
+
' if (navigator.clipboard) {'
|
|
184
|
+
' navigator.clipboard.writeText(scheme).then(function() {'
|
|
185
|
+
' showTooltip(block);'
|
|
186
|
+
' });'
|
|
187
|
+
' } else {'
|
|
188
|
+
' var textarea = document.createElement("textarea");'
|
|
189
|
+
' textarea.value = scheme;'
|
|
190
|
+
' document.body.appendChild(textarea);'
|
|
191
|
+
' textarea.select();'
|
|
192
|
+
' document.execCommand("copy");'
|
|
193
|
+
' document.body.removeChild(textarea);'
|
|
194
|
+
' showTooltip(block);'
|
|
195
|
+
' }'
|
|
196
|
+
' });'
|
|
197
|
+
' });'
|
|
198
|
+
'})();'
|
|
199
|
+
'</script>'
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
try:
|
|
203
|
+
adapters_md_path.parent.mkdir(parents=True, exist_ok=True)
|
|
204
|
+
with open(adapters_md_path, "w", encoding="utf-8") as f:
|
|
205
|
+
f.write("".join(all_markdown_parts))
|
|
206
|
+
print(f"Successfully updated {adapters_md_path}")
|
|
207
|
+
except Exception as e:
|
|
208
|
+
print(f"Error writing to {adapters_md_path}: {e}")
|
|
209
|
+
sys.exit(1)
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
if __name__ == "__main__":
|
|
213
|
+
main()
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
# Built-in adapter schemes for cutseq
|
|
2
|
-
|
|
3
|
-
# RNA library
|
|
4
|
-
|
|
5
|
-
[SMALLRNA]
|
|
6
|
-
scheme = "AGTTCTACAGTCCGACGATC>AGATCGGAAGAGCACACGTC"
|
|
7
|
-
description_name = "Small RNA Libraries"
|
|
8
|
-
points = [
|
|
9
|
-
"Used for small RNA sequencing",
|
|
10
|
-
"Double ligation method",
|
|
11
|
-
"Forward orientation",
|
|
12
|
-
"Optional 2nt trimming on both ends for quality"
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
[SMRNA]
|
|
16
|
-
scheme = "AGTTCTACAGTCCGACGATC>TGGAATTCTCGGGTGCCAAG"
|
|
17
|
-
description_name = "Small RNA (Legacy)"
|
|
18
|
-
points = [
|
|
19
|
-
"Legacy version for small RNA sequencing",
|
|
20
|
-
"Scheme: AGTTCTACAGTCCGACGATC>TGGAATTCTCGGGTGCCAAG",
|
|
21
|
-
"Forward orientation",
|
|
22
|
-
"Refer to library preparation protocol for details."
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
[INLINE]
|
|
26
|
-
scheme = "AGTTCTACAGTCCGACGATCNNNNN>NNNNN(ATCACG)AGATCGGAAGAGCACACGTC"
|
|
27
|
-
description_name = "Custom Barcoded Libraries"
|
|
28
|
-
points = [
|
|
29
|
-
"Used for libraries with inline barcodes",
|
|
30
|
-
"Dual UMI design (5nt each)",
|
|
31
|
-
"Forward orientation",
|
|
32
|
-
"Contains fixed inline barcode (ATCACG)",
|
|
33
|
-
"Scheme: AGTTCTACAGTCCGACGATCNNNNN>NNNNN(ATCACG)AGATCGGAAGAGCACACGTC"
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
[TAKARAV2]
|
|
37
|
-
scheme = "ACACGACGCTCTTCCGATCTXXX<XXXAGATCGGAAGAGCACACGTC"
|
|
38
|
-
description_name = "Takara V2"
|
|
39
|
-
points = [
|
|
40
|
-
"Scheme: ACACGACGCTCTTCCGATCTXXX<XXXAGATCGGAAGAGCACACGTC",
|
|
41
|
-
"Reverse orientation ('<')",
|
|
42
|
-
"Contains masked regions (XXX)",
|
|
43
|
-
"Refer to Takara V2 library preparation protocol for details."
|
|
44
|
-
]
|
|
45
|
-
|
|
46
|
-
[STRANDED]
|
|
47
|
-
scheme = "ACACGACGCTCTTCCGATCTX<XXXAGATCGGAAGAGCACACGTC"
|
|
48
|
-
description_name = "Stranded RNA"
|
|
49
|
-
points = [
|
|
50
|
-
"Scheme: ACACGACGCTCTTCCGATCTX<XXXAGATCGGAAGAGCACACGTC",
|
|
51
|
-
"Reverse orientation ('<')",
|
|
52
|
-
"Contains masked regions (X, XXX)",
|
|
53
|
-
"Refer to stranded RNA library preparation protocol for details."
|
|
54
|
-
]
|
|
55
|
-
|
|
56
|
-
[UNSTRANDED]
|
|
57
|
-
scheme = "ACACGACGCTCTTCCGATCTXX-XXAGATCGGAAGAGCACACGTC"
|
|
58
|
-
description_name = "Unstranded RNA/DNA"
|
|
59
|
-
points = [
|
|
60
|
-
"Scheme: ACACGACGCTCTTCCGATCTXX-XXAGATCGGAAGAGCACACGTC",
|
|
61
|
-
"Unstranded ('-')",
|
|
62
|
-
"Contains masked regions (XX)",
|
|
63
|
-
"Refer to library preparation protocol for details."
|
|
64
|
-
]
|
|
65
|
-
|
|
66
|
-
[TAKARAV3]
|
|
67
|
-
scheme = "ACACGACGCTCTTCCGATCTXXX<XXXXXXNNNNNNNNAGATCGGAAGAGCACACGTC"
|
|
68
|
-
description_name = "Takara V3"
|
|
69
|
-
points = [
|
|
70
|
-
"Scheme: ACACGACGCTCTTCCGATCTXXX<XXXXXXNNNNNNNNAGATCGGAAGAGCACACGTC",
|
|
71
|
-
"Reverse orientation ('<')",
|
|
72
|
-
"Contains masked regions (XXX, XXXXXX)",
|
|
73
|
-
"Contains UMI sequences (NNNNNNNN)",
|
|
74
|
-
"Refer to Takara V3 library preparation protocol for details."
|
|
75
|
-
]
|
|
76
|
-
|
|
77
|
-
[ECLIP6]
|
|
78
|
-
scheme = "ACACGACGCTCTTCCGATCTXX<XNNNNNNAGATCGGAAGAGCACACGTC"
|
|
79
|
-
description_name = "eCLIP (6nt UMI)"
|
|
80
|
-
points = [
|
|
81
|
-
"Scheme: ACACGACGCTCTTCCGATCTXX<XNNNNNNAGATCGGAAGAGCACACGTC",
|
|
82
|
-
"Reverse orientation ('<')",
|
|
83
|
-
"Contains masked regions (XX, X)",
|
|
84
|
-
"Contains UMI sequences (NNNNNN)",
|
|
85
|
-
"Used for eCLIP experiments with a 6-nucleotide UMI."
|
|
86
|
-
]
|
|
87
|
-
|
|
88
|
-
[ECLIP10]
|
|
89
|
-
scheme = "ACACGACGCTCTTCCGATCTXX<XNNNNNNNNNNAGATCGGAAGAGCACACGTC"
|
|
90
|
-
description_name = "eCLIP (10nt UMI)"
|
|
91
|
-
points = [
|
|
92
|
-
"Scheme: ACACGACGCTCTTCCGATCTXX<XNNNNNNNNNNAGATCGGAAGAGCACACGTC",
|
|
93
|
-
"Reverse orientation ('<')",
|
|
94
|
-
"Contains masked regions (XX, X)",
|
|
95
|
-
"Contains UMI sequences (NNNNNNNNNN)",
|
|
96
|
-
"Used for eCLIP experiments with a 10-nucleotide UMI."
|
|
97
|
-
]
|
|
98
|
-
|
|
99
|
-
[SACSEQ]
|
|
100
|
-
scheme = "ACACGACGCTCTTCCGATCT<XXXXNNNNNNAGATCGGAAGAGCACACGTC"
|
|
101
|
-
description_name = "SAC-Seq"
|
|
102
|
-
points = [
|
|
103
|
-
"Scheme: ACACGACGCTCTTCCGATCT<XXXXNNNNNNAGATCGGAAGAGCACACGTC",
|
|
104
|
-
"Reverse orientation ('<')",
|
|
105
|
-
"Contains masked regions (XXXX)",
|
|
106
|
-
"Contains UMI sequences (NNNNNN)",
|
|
107
|
-
"Used for SAC-Seq (Single-cell RNA-Seq) or similar protocols."
|
|
108
|
-
]
|
|
109
|
-
|
|
110
|
-
[SACSEQV3]
|
|
111
|
-
scheme = "ACACGACGCTCTTCCGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC"
|
|
112
|
-
description_name = "SAC-Seq V3"
|
|
113
|
-
points = [
|
|
114
|
-
"Scheme: ACACGACGCTCTTCCGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC",
|
|
115
|
-
"Forward orientation ('>')",
|
|
116
|
-
"Contains masked regions (X, XX)",
|
|
117
|
-
"Contains dual UMI sequences (NNNNNNNN on both sides)",
|
|
118
|
-
"Refer to SAC-Seq V3 library preparation protocol for details."
|
|
119
|
-
]
|
|
120
|
-
|
|
121
|
-
[XGENRNA]
|
|
122
|
-
scheme = "ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC"
|
|
123
|
-
description_name = "xGen RNA"
|
|
124
|
-
points = [
|
|
125
|
-
"Scheme: ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC",
|
|
126
|
-
"Reverse orientation ('<')",
|
|
127
|
-
"Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)",
|
|
128
|
-
"Likely for specific xGen RNA library preps, check protocol."
|
|
129
|
-
]
|
|
130
|
-
|
|
131
|
-
[ILLUMINARNA]
|
|
132
|
-
scheme = "AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT"
|
|
133
|
-
description_name = "Illumina Stranded RNA (Nextera-based)"
|
|
134
|
-
points = [
|
|
135
|
-
"Scheme: AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT",
|
|
136
|
-
"Reverse orientation ('<')",
|
|
137
|
-
"Uses Nextera-style adapter sequences."
|
|
138
|
-
]
|
|
139
|
-
|
|
140
|
-
# DNA library
|
|
141
|
-
|
|
142
|
-
[DSLIGATION]
|
|
143
|
-
scheme = "ACACGACGCTCTTCCGATCT>AGATCGGAAGAGCACACGTC"
|
|
144
|
-
description_name = "dsDNA Ligation"
|
|
145
|
-
points = [
|
|
146
|
-
"Basic dsDNA ligation with A-tailing",
|
|
147
|
-
"Forward orientation",
|
|
148
|
-
"No UMIs or special trimming needed"
|
|
149
|
-
]
|
|
150
|
-
|
|
151
|
-
# xGenDNA = "ACACGACGCTCTTCCGATCTXXX>(CCCCCCCCCCCCCCCCCCCC;noninternal;e=0.5;o=1)AGATCGGAAGAGCACACGTC" # Commented out
|
|
152
|
-
|
|
153
|
-
[XGENMETHY]
|
|
154
|
-
scheme = "ACACGACGCTCTTCCGATCTXX>XXXXXXXXXXAGATCGGAAGAGCACACGTC"
|
|
155
|
-
description_name = "xGen Methyl-Seq"
|
|
156
|
-
points = [
|
|
157
|
-
"Scheme: ACACGACGCTCTTCCGATCTXX>XXXXXXXXXXAGATCGGAAGAGCACACGTC",
|
|
158
|
-
"Forward orientation ('>')",
|
|
159
|
-
"Contains masked regions (XX, XXXXXXXXXX)",
|
|
160
|
-
"Designed for xGen Methyl-Seq library kits."
|
|
161
|
-
]
|
|
162
|
-
|
|
163
|
-
[XGENSNMC]
|
|
164
|
-
scheme = "ACACGACGCTCTTCCGATCTXXXXXX>XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC"
|
|
165
|
-
description_name = "xGen snmC-Seq"
|
|
166
|
-
points = [
|
|
167
|
-
"Scheme: ACACGACGCTCTTCCGATCTXXXXXX>XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC",
|
|
168
|
-
"Forward orientation ('>')",
|
|
169
|
-
"Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)",
|
|
170
|
-
"Designed for xGen single-nucleus methylC-Seq (snmC-Seq) library kits."
|
|
171
|
-
]
|
|
172
|
-
|
|
173
|
-
[PBAT]
|
|
174
|
-
scheme = "ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXAGATCGGAAGAGCACACGTC"
|
|
175
|
-
description_name = "PBAT (Post-Bisulfite Adapter Tagging)"
|
|
176
|
-
points = [
|
|
177
|
-
"Scheme: ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXAGATCGGAAGAGCACACGTC",
|
|
178
|
-
"Reverse orientation ('<')",
|
|
179
|
-
"Contains masked regions (XXXXXX on both sides)",
|
|
180
|
-
"Used for PBAT-style bisulfite sequencing libraries."
|
|
181
|
-
]
|
|
182
|
-
|
|
183
|
-
[NEXTERA]
|
|
184
|
-
scheme = "AGATGTGTATAAGAGACAG>CTGTCTCTTATACACATCT"
|
|
185
|
-
description_name = "Nextera (General)"
|
|
186
|
-
points = [
|
|
187
|
-
"Scheme: AGATGTGTATAAGAGACAG>CTGTCTCTTATACACATCT",
|
|
188
|
-
"Forward orientation ('>')",
|
|
189
|
-
"Standard Nextera transposase-based library preparation.",
|
|
190
|
-
"No UMIs by default in this basic scheme."
|
|
191
|
-
]
|
cutseq-0.0.63/docs/adapters.md
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
# Adapter Schemes
|
|
2
|
-
This file is auto-generated by `scripts/update_adapter_docs.py`. Do not edit manually.
|
|
3
|
-
|
|
4
|
-
This document lists the built-in adapter schemes available in `cutseq`. These can be used with the `-A` or `--adapter-name` option in the `cutseq run` command.
|
|
5
|
-
|
|
6
|
-
### SMALLRNA (Small RNA Libraries)
|
|
7
|
-
|
|
8
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGTTCTACAGTCCGACGATC</span>
|
|
9
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
10
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
11
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
12
|
-
</div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
13
|
-
- Used for small RNA sequencing
|
|
14
|
-
- Double ligation method
|
|
15
|
-
- Forward orientation
|
|
16
|
-
- Optional 2nt trimming on both ends for quality
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
### SMRNA (Small RNA (Legacy))
|
|
20
|
-
|
|
21
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGTTCTACAGTCCGACGATC</span>
|
|
22
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
23
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
24
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
25
|
-
</div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">TGGAATTCTCGGGTGCCAAG</span></div></div>
|
|
26
|
-
- Legacy version for small RNA sequencing
|
|
27
|
-
- Scheme: AGTTCTACAGTCCGACGATC>TGGAATTCTCGGGTGCCAAG
|
|
28
|
-
- Forward orientation
|
|
29
|
-
- Refer to library preparation protocol for details.
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
### INLINE (Custom Barcoded Libraries)
|
|
33
|
-
|
|
34
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGTTCTACAGTCCGACGATC</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNN</span>
|
|
35
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
36
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
37
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
38
|
-
</div><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNN</span><span style="background-color: #FFD700; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ATCACG</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
39
|
-
- Used for libraries with inline barcodes
|
|
40
|
-
- Dual UMI design (5nt each)
|
|
41
|
-
- Forward orientation
|
|
42
|
-
- Contains fixed inline barcode (ATCACG)
|
|
43
|
-
- Scheme: AGTTCTACAGTCCGACGATCNNNNN>NNNNN(ATCACG)AGATCGGAAGAGCACACGTC
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
### TAKARAV2 (Takara V2)
|
|
47
|
-
|
|
48
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span>
|
|
49
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
50
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
51
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
52
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
53
|
-
- Scheme: ACACGACGCTCTTCCGATCTXXX<XXXAGATCGGAAGAGCACACGTC
|
|
54
|
-
- Reverse orientation ('<')
|
|
55
|
-
- Contains masked regions (XXX)
|
|
56
|
-
- Refer to Takara V2 library preparation protocol for details.
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
### STRANDED (Stranded RNA)
|
|
60
|
-
|
|
61
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span>
|
|
62
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
63
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
64
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
65
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
66
|
-
- Scheme: ACACGACGCTCTTCCGATCTX<XXXAGATCGGAAGAGCACACGTC
|
|
67
|
-
- Reverse orientation ('<')
|
|
68
|
-
- Contains masked regions (X, XXX)
|
|
69
|
-
- Refer to stranded RNA library preparation protocol for details.
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
### UNSTRANDED (Unstranded RNA/DNA)
|
|
73
|
-
|
|
74
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span>
|
|
75
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
76
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
77
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">-</span>
|
|
78
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
79
|
-
- Scheme: ACACGACGCTCTTCCGATCTXX-XXAGATCGGAAGAGCACACGTC
|
|
80
|
-
- Unstranded ('-')
|
|
81
|
-
- Contains masked regions (XX)
|
|
82
|
-
- Refer to library preparation protocol for details.
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
### TAKARAV3 (Takara V3)
|
|
86
|
-
|
|
87
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXX</span>
|
|
88
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
89
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
90
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
91
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
92
|
-
- Scheme: ACACGACGCTCTTCCGATCTXXX<XXXXXXNNNNNNNNAGATCGGAAGAGCACACGTC
|
|
93
|
-
- Reverse orientation ('<')
|
|
94
|
-
- Contains masked regions (XXX, XXXXXX)
|
|
95
|
-
- Contains UMI sequences (NNNNNNNN)
|
|
96
|
-
- Refer to Takara V3 library preparation protocol for details.
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
### ECLIP6 (eCLIP (6nt UMI))
|
|
100
|
-
|
|
101
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span>
|
|
102
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
103
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
104
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
105
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
106
|
-
- Scheme: ACACGACGCTCTTCCGATCTXX<XNNNNNNAGATCGGAAGAGCACACGTC
|
|
107
|
-
- Reverse orientation ('<')
|
|
108
|
-
- Contains masked regions (XX, X)
|
|
109
|
-
- Contains UMI sequences (NNNNNN)
|
|
110
|
-
- Used for eCLIP experiments with a 6-nucleotide UMI.
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
### ECLIP10 (eCLIP (10nt UMI))
|
|
114
|
-
|
|
115
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span>
|
|
116
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
117
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
118
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
119
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
120
|
-
- Scheme: ACACGACGCTCTTCCGATCTXX<XNNNNNNNNNNAGATCGGAAGAGCACACGTC
|
|
121
|
-
- Reverse orientation ('<')
|
|
122
|
-
- Contains masked regions (XX, X)
|
|
123
|
-
- Contains UMI sequences (NNNNNNNNNN)
|
|
124
|
-
- Used for eCLIP experiments with a 10-nucleotide UMI.
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
### SACSEQ (SAC-Seq)
|
|
128
|
-
|
|
129
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span>
|
|
130
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
131
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
132
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
133
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXX</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
134
|
-
- Scheme: ACACGACGCTCTTCCGATCT<XXXXNNNNNNAGATCGGAAGAGCACACGTC
|
|
135
|
-
- Reverse orientation ('<')
|
|
136
|
-
- Contains masked regions (XXXX)
|
|
137
|
-
- Contains UMI sequences (NNNNNN)
|
|
138
|
-
- Used for SAC-Seq (Single-cell RNA-Seq) or similar protocols.
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
### SACSEQV3 (SAC-Seq V3)
|
|
142
|
-
|
|
143
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNN</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">X</span>
|
|
144
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
145
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
146
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
147
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span><span style="background-color: #B2EBF2; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">NNNNNNNN</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
148
|
-
- Scheme: ACACGACGCTCTTCCGATCTNNNNNNNNX>XXNNNNNNNNAGATCGGAAGAGCACACGTC
|
|
149
|
-
- Forward orientation ('>')
|
|
150
|
-
- Contains masked regions (X, XX)
|
|
151
|
-
- Contains dual UMI sequences (NNNNNNNN on both sides)
|
|
152
|
-
- Refer to SAC-Seq V3 library preparation protocol for details.
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
### XGENRNA (xGen RNA)
|
|
156
|
-
|
|
157
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span>
|
|
158
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
159
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
160
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
161
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXXXXXXXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
162
|
-
- Scheme: ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC
|
|
163
|
-
- Reverse orientation ('<')
|
|
164
|
-
- Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)
|
|
165
|
-
- Likely for specific xGen RNA library preps, check protocol.
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
### ILLUMINARNA (Illumina Stranded RNA (Nextera-based))
|
|
169
|
-
|
|
170
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATGTGTATAAGAGACAG</span>
|
|
171
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
172
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
173
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
174
|
-
</div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">CTGTCTCTTATACACATCT</span></div></div>
|
|
175
|
-
- Scheme: AGATGTGTATAAGAGACAG<CTGTCTCTTATACACATCT
|
|
176
|
-
- Reverse orientation ('<')
|
|
177
|
-
- Uses Nextera-style adapter sequences.
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
### DSLIGATION (dsDNA Ligation)
|
|
181
|
-
|
|
182
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span>
|
|
183
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
184
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
185
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
186
|
-
</div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
187
|
-
- Basic dsDNA ligation with A-tailing
|
|
188
|
-
- Forward orientation
|
|
189
|
-
- No UMIs or special trimming needed
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
### XGENMETHY (xGen Methyl-Seq)
|
|
193
|
-
|
|
194
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XX</span>
|
|
195
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
196
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
197
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
198
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
199
|
-
- Scheme: ACACGACGCTCTTCCGATCTXX>XXXXXXXXXXAGATCGGAAGAGCACACGTC
|
|
200
|
-
- Forward orientation ('>')
|
|
201
|
-
- Contains masked regions (XX, XXXXXXXXXX)
|
|
202
|
-
- Designed for xGen Methyl-Seq library kits.
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
### XGENSNMC (xGen snmC-Seq)
|
|
206
|
-
|
|
207
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span>
|
|
208
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
209
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
210
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
211
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXXXXXXXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
212
|
-
- Scheme: ACACGACGCTCTTCCGATCTXXXXXX>XXXXXXXXXXXXXXXAGATCGGAAGAGCACACGTC
|
|
213
|
-
- Forward orientation ('>')
|
|
214
|
-
- Contains extensive masked regions (XXXXXX, XXXXXXXXXXXXXXX)
|
|
215
|
-
- Designed for xGen single-nucleus methylC-Seq (snmC-Seq) library kits.
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
### PBAT (PBAT (Post-Bisulfite Adapter Tagging))
|
|
219
|
-
|
|
220
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">ACACGACGCTCTTCCGATCT</span><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span>
|
|
221
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
222
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
223
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;"><</span>
|
|
224
|
-
</div><span style="background-color: #DCDCDC; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">XXXXXX</span><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATCGGAAGAGCACACGTC</span></div></div>
|
|
225
|
-
- Scheme: ACACGACGCTCTTCCGATCTXXXXXX<XXXXXXAGATCGGAAGAGCACACGTC
|
|
226
|
-
- Reverse orientation ('<')
|
|
227
|
-
- Contains masked regions (XXXXXX on both sides)
|
|
228
|
-
- Used for PBAT-style bisulfite sequencing libraries.
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
### NEXTERA (Nextera (General))
|
|
232
|
-
|
|
233
|
-
<div class="adapter-scheme" style="margin-bottom: 15px;"><div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;"><span style="background-color: #A8E6CF; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">AGATGTGTATAAGAGACAG</span>
|
|
234
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
235
|
-
<div style="background-color: #FF6F61; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
236
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">></span>
|
|
237
|
-
</div><span style="background-color: #D1E8D1; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">CTGTCTCTTATACACATCT</span></div></div>
|
|
238
|
-
- Scheme: AGATGTGTATAAGAGACAG>CTGTCTCTTATACACATCT
|
|
239
|
-
- Forward orientation ('>')
|
|
240
|
-
- Standard Nextera transposase-based library preparation.
|
|
241
|
-
- No UMIs by default in this basic scheme.
|
|
242
|
-
|
|
243
|
-
---
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
import sys
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
|
|
5
|
-
# Add project root to sys.path to allow importing cutseq.common
|
|
6
|
-
project_root = Path(__file__).parent.parent
|
|
7
|
-
sys.path.insert(0, str(project_root))
|
|
8
|
-
|
|
9
|
-
try:
|
|
10
|
-
from cutseq.common import BarcodeConfig
|
|
11
|
-
except ImportError as e:
|
|
12
|
-
print(f"Error importing BarcodeConfig from cutseq.common: {e}")
|
|
13
|
-
print(f"Current sys.path: {sys.path}")
|
|
14
|
-
print(f"Project root: {project_root}")
|
|
15
|
-
sys.exit(1)
|
|
16
|
-
|
|
17
|
-
try:
|
|
18
|
-
import tomllib # Python 3.11+
|
|
19
|
-
except ImportError:
|
|
20
|
-
try:
|
|
21
|
-
import tomli as tomllib # Python < 3.11
|
|
22
|
-
except ImportError:
|
|
23
|
-
print("Error: 'tomli' is not installed. Please install it with 'pip install tomli' for Python < 3.11.")
|
|
24
|
-
sys.exit(1)
|
|
25
|
-
|
|
26
|
-
COLOR_PALETTE = {
|
|
27
|
-
"p5": "#A8E6CF",
|
|
28
|
-
"p7": "#D1E8D1",
|
|
29
|
-
"umi": "#B2EBF2",
|
|
30
|
-
"inline": "#FFD700",
|
|
31
|
-
"mask": "#DCDCDC",
|
|
32
|
-
"strand_bg": "#FF6F61", # A distinct background for the strand indicator
|
|
33
|
-
"default_seq": "#E0E0E0",
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
def get_part_type(part_name):
|
|
37
|
-
"""Determines the 'type' of adapter part for color selection."""
|
|
38
|
-
if "p5" in part_name: return "p5"
|
|
39
|
-
if "p7" in part_name: return "p7"
|
|
40
|
-
if "umi" in part_name: return "umi"
|
|
41
|
-
if "inline" in part_name: return "inline"
|
|
42
|
-
if "mask" in part_name: return "mask"
|
|
43
|
-
return "default_seq" # Fallback
|
|
44
|
-
|
|
45
|
-
def main():
|
|
46
|
-
adapters_toml_path = project_root / "cutseq" / "adapters.toml"
|
|
47
|
-
adapters_md_path = project_root / "docs" / "adapters.md"
|
|
48
|
-
|
|
49
|
-
print(f"Adapters TOML path: {adapters_toml_path}")
|
|
50
|
-
print(f"Adapters MD path: {adapters_md_path}")
|
|
51
|
-
|
|
52
|
-
if not adapters_toml_path.exists():
|
|
53
|
-
print(f"Error: {adapters_toml_path} not found. Make sure the script is run from the project root or the path is correct.")
|
|
54
|
-
sys.exit(1)
|
|
55
|
-
|
|
56
|
-
try:
|
|
57
|
-
with open(adapters_toml_path, "rb") as f:
|
|
58
|
-
adapters_data = tomllib.load(f)
|
|
59
|
-
except Exception as e:
|
|
60
|
-
print(f"Error parsing {adapters_toml_path}: {e}")
|
|
61
|
-
sys.exit(1)
|
|
62
|
-
|
|
63
|
-
# --- Generate Markdown Content ---
|
|
64
|
-
all_markdown_parts = []
|
|
65
|
-
all_markdown_parts.append("# Adapter Schemes\n")
|
|
66
|
-
all_markdown_parts.append("This file is auto-generated by `scripts/update_adapter_docs.py`. Do not edit manually.\n\n")
|
|
67
|
-
all_markdown_parts.append("This document lists the built-in adapter schemes available in `cutseq`. ")
|
|
68
|
-
all_markdown_parts.append("These can be used with the `-A` or `--adapter-name` option in the `cutseq run` command.\n\n")
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
for adapter_key, adapter_info in adapters_data.items():
|
|
72
|
-
if not isinstance(adapter_info, dict) or not all(k in adapter_info for k in ['scheme', 'description_name', 'points']):
|
|
73
|
-
print(f"Warning: Skipping adapter '{adapter_key}' due to missing 'scheme', 'description_name', or 'points' fields.")
|
|
74
|
-
continue
|
|
75
|
-
|
|
76
|
-
all_markdown_parts.append(f"### {adapter_key} ({adapter_info['description_name']})\n\n")
|
|
77
|
-
|
|
78
|
-
# HTML Visualization
|
|
79
|
-
bc = BarcodeConfig(adapter_info['scheme'])
|
|
80
|
-
|
|
81
|
-
html_parts = ['<div class="adapter-scheme" style="margin-bottom: 15px;">']
|
|
82
|
-
html_parts.append('<div style="display: flex; flex-wrap: nowrap; align-items: center; font-family: monospace; font-size: 14px; border: 1px solid #ccc; padding: 5px; border-radius: 5px; overflow-x: auto;">')
|
|
83
|
-
|
|
84
|
-
adapter_components_ordered = ["p5", "inline5", "umi5", "mask5", "strand", "mask3", "umi3", "inline3", "p7"]
|
|
85
|
-
|
|
86
|
-
for part_name in adapter_components_ordered:
|
|
87
|
-
seq_val = ""
|
|
88
|
-
is_strand_part = False
|
|
89
|
-
|
|
90
|
-
if part_name == "strand":
|
|
91
|
-
strand_char_map = {"+": ">", "-": "<", None: "-"}
|
|
92
|
-
seq_val = strand_char_map.get(bc.strand, "-")
|
|
93
|
-
is_strand_part = True
|
|
94
|
-
elif hasattr(bc, part_name):
|
|
95
|
-
barcode_seq_obj = getattr(bc, part_name)
|
|
96
|
-
if hasattr(barcode_seq_obj, 'fw'):
|
|
97
|
-
seq_val = barcode_seq_obj.fw
|
|
98
|
-
# else: might be an older structure or direct string, handle if necessary
|
|
99
|
-
|
|
100
|
-
if seq_val: # Only render if there's a sequence or it's the strand part
|
|
101
|
-
if is_strand_part:
|
|
102
|
-
# Strand indicator with polygon background
|
|
103
|
-
html_parts.append(f'''
|
|
104
|
-
<div style="position: relative; width: 30px; height: 30px; margin: 0 2px; text-align: center; line-height: 30px;">
|
|
105
|
-
<div style="background-color: {COLOR_PALETTE['strand_bg']}; width: 100%; height: 100%; position: absolute; top: 0; left: 0; clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);"></div>
|
|
106
|
-
<span style="position: relative; z-index: 1; color: white; font-weight: bold;">{seq_val}</span>
|
|
107
|
-
</div>''')
|
|
108
|
-
else:
|
|
109
|
-
part_type = get_part_type(part_name)
|
|
110
|
-
color = COLOR_PALETTE.get(part_type, COLOR_PALETTE["default_seq"])
|
|
111
|
-
html_parts.append(f'<span style="background-color: {color}; padding: 5px 8px; margin: 0 2px; border-radius: 3px; white-space: nowrap;">{seq_val}</span>')
|
|
112
|
-
|
|
113
|
-
html_parts.append('</div></div>\n') # Close flex container and adapter-scheme div
|
|
114
|
-
all_markdown_parts.extend(html_parts)
|
|
115
|
-
|
|
116
|
-
# Bullet Points
|
|
117
|
-
if adapter_info['points']:
|
|
118
|
-
for point in adapter_info['points']:
|
|
119
|
-
all_markdown_parts.append(f"- {point}\n")
|
|
120
|
-
all_markdown_parts.append("\n---\n") # Add a horizontal rule for separation
|
|
121
|
-
|
|
122
|
-
markdown_content = "".join(all_markdown_parts)
|
|
123
|
-
# --- End Generate Markdown Content ---
|
|
124
|
-
|
|
125
|
-
try:
|
|
126
|
-
adapters_md_path.parent.mkdir(parents=True, exist_ok=True)
|
|
127
|
-
with open(adapters_md_path, "w", encoding="utf-8") as f:
|
|
128
|
-
f.write(markdown_content)
|
|
129
|
-
print(f"Successfully updated {adapters_md_path}")
|
|
130
|
-
except Exception as e:
|
|
131
|
-
print(f"Error writing to {adapters_md_path}: {e}")
|
|
132
|
-
sys.exit(1)
|
|
133
|
-
|
|
134
|
-
if __name__ == "__main__":
|
|
135
|
-
main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|