seqtree 0.1.0__tar.gz → 0.2.0__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.
- {seqtree-0.1.0 → seqtree-0.2.0}/PKG-INFO +8 -3
- {seqtree-0.1.0 → seqtree-0.2.0}/README.md +7 -2
- {seqtree-0.1.0 → seqtree-0.2.0}/include/seqtree/seqtree.hpp +1 -1
- {seqtree-0.1.0 → seqtree-0.2.0}/pyproject.toml +1 -1
- seqtree-0.2.0/src/structural.inc +31 -0
- seqtree-0.1.0/src/structural.inc +0 -31
- {seqtree-0.1.0 → seqtree-0.2.0}/.gitattributes +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/.gitignore +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/CMakeLists.txt +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/LICENSE +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/ROADMAP.md +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/.gitignore +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/.latexmkrc +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/Makefile +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/epitope_detection.pdf +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/evalue.pdf +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/evalue.tex +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/evalue_matrix.pdf +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/mhc1_rocpr.pdf +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/mhc2_rocpr.pdf +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/appendix/refs.bib +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/include/seqtree/kmer_index.hpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/include/seqtree/types.hpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/__init__.py +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/control.py +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/data/control_human_trb_aa.txt.gz +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/evalue.py +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/layout.py +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/pmhc.py +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/pmhc_evalue.py +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/python/seqtree/py.typed +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/_bindings.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/blosum62.inc +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/codec.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/engine_seqtm.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/engine_seqtrie.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/engines.hpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/index.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/kmer_index.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/pam100.inc +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/pam250.inc +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/positional_matrix.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/searcher.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/substitution_matrix.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/trie.cpp +0 -0
- {seqtree-0.1.0 → seqtree-0.2.0}/src/trie.hpp +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: seqtree
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Fast fuzzy search over biological sequences (C++ core, Python bindings)
|
|
5
5
|
Keywords: sequence-search,fuzzy-matching,CDR3,immunology,bioinformatics,trie
|
|
6
6
|
Author-Email: ISALGO laboratory <mikhail.shugay@gmail.com>
|
|
@@ -59,8 +59,13 @@ to their own payloads (V gene, MHC, counts) and filter.
|
|
|
59
59
|
Beyond search, seqtree ships:
|
|
60
60
|
|
|
61
61
|
- **Substitution matrices** — built-in `identity`, `BLOSUM62`, `PAM250`, `PAM100`, and `structural`
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
— a **Miyazawa–Jernigan interaction-strength** matrix: each residue's strength `q(a)=mean_b e(a,b)`
|
|
63
|
+
is read off the MJ contact potential, so substitutions between residues of like interaction strength
|
|
64
|
+
are cheap. It separates strong (hydrophobic `F W C L Y M I V`) from weak (polar/charged
|
|
65
|
+
`S Q D E K`) interactors — the strong/weak-interactor axis of TCR-recognition models
|
|
66
|
+
([Košmrlj et al., *PNAS* 2008](https://doi.org/10.1073/pnas.0808081105); MJ contact energies from
|
|
67
|
+
Miyazawa & Jernigan, *J Mol Biol* 1996) — letting dissimilar-but-chemically-equivalent loops align.
|
|
68
|
+
Plus custom matrices via `SubstitutionMatrix.from_similarity` (Gram penalty `s(a,a)+s(b,b)−2·s(a,b)`).
|
|
64
69
|
- **E-values / significance** — calibrate hit counts against a background control repertoire
|
|
65
70
|
(`load_control` + `evalues`), the TCRNET approach on a finite-sample footing. See the
|
|
66
71
|
[E-value guide](https://antigenomics.github.io/seqtree/evalue.html).
|
|
@@ -26,8 +26,13 @@ to their own payloads (V gene, MHC, counts) and filter.
|
|
|
26
26
|
Beyond search, seqtree ships:
|
|
27
27
|
|
|
28
28
|
- **Substitution matrices** — built-in `identity`, `BLOSUM62`, `PAM250`, `PAM100`, and `structural`
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
— a **Miyazawa–Jernigan interaction-strength** matrix: each residue's strength `q(a)=mean_b e(a,b)`
|
|
30
|
+
is read off the MJ contact potential, so substitutions between residues of like interaction strength
|
|
31
|
+
are cheap. It separates strong (hydrophobic `F W C L Y M I V`) from weak (polar/charged
|
|
32
|
+
`S Q D E K`) interactors — the strong/weak-interactor axis of TCR-recognition models
|
|
33
|
+
([Košmrlj et al., *PNAS* 2008](https://doi.org/10.1073/pnas.0808081105); MJ contact energies from
|
|
34
|
+
Miyazawa & Jernigan, *J Mol Biol* 1996) — letting dissimilar-but-chemically-equivalent loops align.
|
|
35
|
+
Plus custom matrices via `SubstitutionMatrix.from_similarity` (Gram penalty `s(a,a)+s(b,b)−2·s(a,b)`).
|
|
31
36
|
- **E-values / significance** — calibrate hit counts against a background control repertoire
|
|
32
37
|
(`load_control` + `evalues`), the TCRNET approach on a finite-sample footing. See the
|
|
33
38
|
[E-value guide](https://antigenomics.github.io/seqtree/evalue.html).
|
|
@@ -39,7 +39,7 @@ public:
|
|
|
39
39
|
static SubstitutionMatrix blosum62();
|
|
40
40
|
static SubstitutionMatrix pam250(); // EMBOSS EPAM250 (NCBI log-odds)
|
|
41
41
|
static SubstitutionMatrix pam100(); // EMBOSS EPAM100 (NCBI log-odds)
|
|
42
|
-
static SubstitutionMatrix structural(); //
|
|
42
|
+
static SubstitutionMatrix structural(); // Miyazawa-Jernigan interaction-strength similarity
|
|
43
43
|
// Convert a similarity matrix (row-major, size*size) to penalties via the Gram /
|
|
44
44
|
// squared-distance transform pen[a][b] = sim[a][a] + sim[b][b] - 2*sim[a][b].
|
|
45
45
|
static SubstitutionMatrix from_similarity(uint8_t size, const int32_t* sim);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Miyazawa-Jernigan interaction-strength similarity (strong/weak interactors; 0..10).
|
|
2
|
+
// Row/column order: A R N D C Q E G H I L K M F P S T W Y V B Z X *
|
|
3
|
+
// Generated by bench/gen_matrices.py -- do not edit by hand.
|
|
4
|
+
static const int32_t kStructuralSize = 24;
|
|
5
|
+
static const int32_t kStructural[24 * 24] = {
|
|
6
|
+
// A R N D C Q E G H I L K M F P S T W Y V B Z X *
|
|
7
|
+
10, 9, 9, 7, 6, 8, 7, 10, 9, 6, 6, 5, 6, 5, 9, 8, 9, 6, 6, 7, 8, 7, 7, 0,
|
|
8
|
+
9, 10, 10, 8, 4, 9, 8, 8, 8, 5, 4, 6, 5, 4, 10, 10, 9, 4, 5, 6, 9, 9, 7, 0,
|
|
9
|
+
9, 10, 10, 8, 4, 9, 8, 8, 8, 5, 4, 6, 5, 4, 10, 10, 9, 4, 5, 6, 9, 9, 7, 0,
|
|
10
|
+
7, 8, 8, 10, 3, 9, 10, 7, 6, 3, 3, 8, 3, 2, 8, 9, 8, 3, 3, 4, 9, 9, 6, 0,
|
|
11
|
+
6, 4, 4, 3, 10, 4, 2, 6, 7, 9, 10, 1, 9, 9, 4, 4, 5, 10, 10, 8, 4, 3, 6, 0,
|
|
12
|
+
8, 9, 9, 9, 4, 10, 9, 8, 7, 4, 4, 7, 4, 3, 9, 10, 9, 3, 4, 5, 9, 9, 7, 0,
|
|
13
|
+
7, 8, 8, 10, 2, 9, 10, 6, 6, 3, 2, 8, 3, 2, 8, 8, 7, 2, 3, 4, 9, 9, 6, 0,
|
|
14
|
+
10, 8, 8, 7, 6, 8, 6, 10, 9, 7, 6, 5, 6, 5, 8, 8, 9, 6, 6, 8, 8, 7, 7, 0,
|
|
15
|
+
9, 8, 8, 6, 7, 7, 6, 9, 10, 7, 7, 4, 7, 6, 8, 7, 8, 6, 7, 8, 7, 6, 7, 0,
|
|
16
|
+
6, 5, 5, 3, 9, 4, 3, 7, 7, 10, 9, 1, 10, 9, 5, 5, 6, 9, 10, 9, 4, 4, 7, 0,
|
|
17
|
+
6, 4, 4, 3, 10, 4, 2, 6, 7, 9, 10, 1, 10, 9, 4, 4, 5, 10, 10, 8, 4, 3, 6, 0,
|
|
18
|
+
5, 6, 6, 8, 1, 7, 8, 5, 4, 1, 1, 10, 1, 0, 6, 6, 6, 0, 1, 2, 7, 8, 4, 0,
|
|
19
|
+
6, 5, 5, 3, 9, 4, 3, 6, 7, 10, 10, 1, 10, 9, 5, 5, 5, 9, 10, 9, 4, 4, 7, 0,
|
|
20
|
+
5, 4, 4, 2, 9, 3, 2, 5, 6, 9, 9, 0, 9, 10, 4, 4, 4, 10, 9, 8, 3, 2, 6, 0,
|
|
21
|
+
9, 10, 10, 8, 4, 9, 8, 8, 8, 5, 4, 6, 5, 4, 10, 10, 9, 4, 5, 6, 9, 9, 7, 0,
|
|
22
|
+
8, 10, 10, 9, 4, 10, 8, 8, 7, 5, 4, 6, 5, 4, 10, 10, 9, 4, 4, 6, 9, 9, 7, 0,
|
|
23
|
+
9, 9, 9, 8, 5, 9, 7, 9, 8, 6, 5, 6, 5, 4, 9, 9, 10, 5, 5, 7, 9, 8, 7, 0,
|
|
24
|
+
6, 4, 4, 3, 10, 3, 2, 6, 6, 9, 10, 0, 9, 10, 4, 4, 5, 10, 9, 8, 3, 3, 6, 0,
|
|
25
|
+
6, 5, 5, 3, 10, 4, 3, 6, 7, 10, 10, 1, 10, 9, 5, 4, 5, 9, 10, 9, 4, 3, 6, 0,
|
|
26
|
+
7, 6, 6, 4, 8, 5, 4, 8, 8, 9, 8, 2, 9, 8, 6, 6, 7, 8, 9, 10, 5, 5, 7, 0,
|
|
27
|
+
8, 9, 9, 9, 4, 9, 9, 8, 7, 4, 4, 7, 4, 3, 9, 9, 9, 3, 4, 5, 9, 9, 7, 0,
|
|
28
|
+
7, 9, 9, 9, 3, 9, 9, 7, 6, 4, 3, 8, 4, 2, 9, 9, 8, 3, 3, 5, 9, 9, 6, 0,
|
|
29
|
+
7, 7, 7, 6, 6, 7, 6, 7, 7, 7, 6, 4, 7, 6, 7, 7, 7, 6, 6, 7, 7, 6, 7, 0,
|
|
30
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
|
|
31
|
+
};
|
seqtree-0.1.0/src/structural.inc
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// TeXshade structural similarity (sidechain volume + hydropathy; 0..10).
|
|
2
|
-
// Row/column order: A R N D C Q E G H I L K M F P S T W Y V B Z X *
|
|
3
|
-
// Generated by bench/gen_matrices.py -- do not edit by hand.
|
|
4
|
-
static const int32_t kStructuralSize = 24;
|
|
5
|
-
static const int32_t kStructural[24 * 24] = {
|
|
6
|
-
// A R N D C Q E G H I L K M F P S T W Y V B Z X *
|
|
7
|
-
10, 3, 5, 6, 3, 5, 6, 8, 3, 3, 3, 5, 5, 5, 8, 8, 8, 3, 3, 8, 6, 6, 5, 0,
|
|
8
|
-
3, 10, 5, 3, 3, 5, 5, 5, 6, 3, 3, 8, 3, 1, 5, 5, 5, 3, 1, 3, 4, 5, 4, 0,
|
|
9
|
-
5, 5, 10, 8, 3, 5, 6, 5, 6, 3, 1, 6, 1, 3, 3, 8, 6, 0, 5, 3, 9, 6, 5, 0,
|
|
10
|
-
6, 3, 8, 10, 1, 6, 8, 6, 5, 1, 1, 5, 3, 1, 5, 6, 5, 0, 3, 5, 9, 7, 4, 0,
|
|
11
|
-
3, 3, 3, 1, 10, 1, 0, 5, 3, 3, 3, 0, 3, 5, 3, 6, 3, 5, 5, 3, 2, 0, 3, 0,
|
|
12
|
-
5, 5, 5, 6, 1, 10, 6, 3, 6, 1, 3, 6, 3, 1, 5, 5, 5, 1, 3, 3, 6, 8, 4, 0,
|
|
13
|
-
6, 5, 6, 8, 0, 6, 10, 6, 3, 1, 1, 6, 3, 3, 5, 5, 5, 1, 1, 6, 7, 8, 4, 0,
|
|
14
|
-
8, 5, 5, 6, 5, 3, 6, 10, 1, 3, 3, 3, 1, 3, 6, 8, 6, 5, 3, 6, 6, 4, 5, 0,
|
|
15
|
-
3, 6, 6, 5, 3, 6, 3, 1, 10, 3, 5, 5, 3, 3, 5, 5, 3, 1, 5, 1, 6, 4, 4, 0,
|
|
16
|
-
3, 3, 3, 1, 3, 1, 1, 3, 3, 10, 8, 3, 6, 6, 3, 3, 5, 5, 5, 3, 2, 1, 4, 0,
|
|
17
|
-
3, 3, 1, 1, 3, 3, 1, 3, 5, 8, 10, 3, 8, 6, 5, 3, 3, 6, 5, 3, 1, 2, 4, 0,
|
|
18
|
-
5, 8, 6, 5, 0, 6, 6, 3, 5, 3, 3, 10, 3, 1, 3, 5, 6, 1, 1, 5, 6, 6, 4, 0,
|
|
19
|
-
5, 3, 1, 3, 3, 3, 3, 1, 3, 6, 8, 3, 10, 5, 3, 4, 5, 5, 3, 6, 2, 3, 4, 0,
|
|
20
|
-
5, 1, 3, 1, 5, 1, 3, 3, 3, 6, 6, 1, 5, 10, 5, 5, 3, 5, 8, 6, 2, 2, 4, 0,
|
|
21
|
-
8, 5, 3, 5, 3, 5, 5, 6, 5, 3, 5, 3, 3, 5, 10, 6, 6, 3, 3, 6, 4, 5, 5, 0,
|
|
22
|
-
8, 5, 8, 6, 6, 5, 5, 8, 5, 3, 3, 5, 4, 5, 6, 10, 8, 3, 5, 6, 7, 5, 6, 0,
|
|
23
|
-
8, 5, 6, 5, 3, 5, 5, 6, 3, 5, 3, 6, 5, 3, 6, 8, 10, 1, 3, 6, 6, 5, 5, 0,
|
|
24
|
-
3, 3, 0, 0, 5, 1, 1, 5, 1, 5, 6, 1, 5, 5, 3, 3, 1, 10, 5, 5, 0, 1, 3, 0,
|
|
25
|
-
3, 1, 5, 3, 5, 3, 1, 3, 5, 5, 5, 1, 3, 8, 3, 5, 3, 5, 10, 5, 4, 2, 4, 0,
|
|
26
|
-
8, 3, 3, 5, 3, 3, 6, 6, 1, 3, 3, 5, 6, 6, 6, 6, 6, 5, 5, 10, 4, 4, 5, 0,
|
|
27
|
-
6, 4, 9, 9, 2, 6, 7, 6, 6, 2, 1, 6, 2, 2, 4, 7, 6, 0, 4, 4, 9, 6, 4, 0,
|
|
28
|
-
6, 5, 6, 7, 0, 8, 8, 4, 4, 1, 2, 6, 3, 2, 5, 5, 5, 1, 2, 4, 6, 8, 4, 0,
|
|
29
|
-
5, 4, 5, 4, 3, 4, 4, 5, 4, 4, 4, 4, 4, 4, 5, 6, 5, 3, 4, 5, 4, 4, 4, 0,
|
|
30
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
|
|
31
|
-
};
|
|
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
|
|
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
|
|
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
|