p2s_mapper 1.3.0 → 1.4.0
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.
- package/dist/alphaFoldModels.d.ts +4 -0
- package/dist/alphaFoldModels.js +4 -0
- package/dist/alphaFoldModels.js.map +1 -1
- package/dist/dbIds.d.ts +1 -1
- package/dist/dbIds.js +5 -1
- package/dist/dbIds.js.map +1 -1
- package/esm/alphaFoldModels.d.ts +4 -0
- package/esm/alphaFoldModels.js +4 -0
- package/esm/alphaFoldModels.js.map +1 -1
- package/esm/dbIds.d.ts +1 -1
- package/esm/dbIds.js +5 -1
- package/esm/dbIds.js.map +1 -1
- package/package.json +1 -1
- package/src/alphaFoldModels.ts +12 -0
- package/src/dbIds.ts +6 -2
|
@@ -2,8 +2,12 @@ import type { FetchOptions } from './fetchUtils.ts';
|
|
|
2
2
|
export interface AlphaFoldModel {
|
|
3
3
|
/** UniProt accession, with an isoform suffix on an isoform model */
|
|
4
4
|
accession: string;
|
|
5
|
+
/** AlphaFold DB's id for the model, e.g. AF-P04637-F1 */
|
|
6
|
+
entity?: string;
|
|
5
7
|
url: string;
|
|
6
8
|
confidenceUrl?: string;
|
|
9
|
+
/** mean per-residue confidence (pLDDT), 0-100 */
|
|
10
|
+
meanPlddt?: number;
|
|
7
11
|
sequence: string;
|
|
8
12
|
}
|
|
9
13
|
export declare function parseAlphaFoldModels(json: unknown): AlphaFoldModel[];
|
package/dist/alphaFoldModels.js
CHANGED
|
@@ -16,8 +16,12 @@ function parseAlphaFoldModels(json) {
|
|
|
16
16
|
? [
|
|
17
17
|
{
|
|
18
18
|
accession: e.uniprotAccession,
|
|
19
|
+
entity: typeof e.modelEntityId === 'string' ? e.modelEntityId : undefined,
|
|
19
20
|
url: e.cifUrl,
|
|
20
21
|
confidenceUrl: typeof e.plddtDocUrl === 'string' ? e.plddtDocUrl : undefined,
|
|
22
|
+
meanPlddt: typeof e.globalMetricValue === 'number'
|
|
23
|
+
? e.globalMetricValue
|
|
24
|
+
: undefined,
|
|
21
25
|
sequence: e.sequence,
|
|
22
26
|
},
|
|
23
27
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alphaFoldModels.js","sourceRoot":"","sources":["../src/alphaFoldModels.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"alphaFoldModels.js","sourceRoot":"","sources":["../src/alphaFoldModels.ts"],"names":[],"mappings":"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"}
|
package/dist/dbIds.d.ts
CHANGED
package/dist/dbIds.js
CHANGED
|
@@ -18,6 +18,10 @@ const DB_ID_PATTERNS = [
|
|
|
18
18
|
{ db: 'refseq', pattern: /^[NXYA]P_\d+/i, label: 'RefSeq protein' },
|
|
19
19
|
{ db: 'ccds', pattern: /^CCDS\d+/i, label: 'CCDS' },
|
|
20
20
|
{ db: 'hgnc', pattern: /^HGNC:\d+/i, label: 'HGNC' },
|
|
21
|
+
// NCBI's GFFs carry `Dbxref=GeneID:7157`, and UniProt keeps the GeneID
|
|
22
|
+
// cross-reference for every organism NCBI annotates, where a symbol search
|
|
23
|
+
// needs a taxon and misses a TrEMBL-only gene.
|
|
24
|
+
{ db: 'geneid', pattern: /^GeneID:\d+$/i, label: 'NCBI Gene' },
|
|
21
25
|
];
|
|
22
26
|
function matchDbIdPattern(id) {
|
|
23
27
|
return DB_ID_PATTERNS.find(p => p.pattern.test(id));
|
|
@@ -37,7 +41,7 @@ function getDbIdLabel(id) {
|
|
|
37
41
|
function buildUniProtXrefQuery(id) {
|
|
38
42
|
const match = matchDbIdPattern(id);
|
|
39
43
|
return match
|
|
40
|
-
? `xref:${match.db}-${match.db === 'hgnc' ? id.replace(
|
|
44
|
+
? `xref:${match.db}-${match.db === 'hgnc' || match.db === 'geneid' ? id.replace(/^[^:]+:/, '') : id}`
|
|
41
45
|
: undefined;
|
|
42
46
|
}
|
|
43
47
|
function stripTrailingVersion(s) {
|
package/dist/dbIds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbIds.js","sourceRoot":"","sources":["../src/dbIds.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"dbIds.js","sourceRoot":"","sources":["../src/dbIds.ts"],"names":[],"mappings":";;AA0BA,4CAEC;AAGD,wDAEC;AAID,oCAGC;AAID,sDAKC;AAED,oDAEC;AA9CD,MAAM,cAAc,GAAqD;IACvE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE;IACpE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC1E,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACvE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9D,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAC/D,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,4EAA4E;IAC5E,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACnE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;IACpD,uEAAuE;IACvE,2EAA2E;IAC3E,+CAA+C;IAC/C,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE;CAC/D,CAAA;AAED,SAAgB,gBAAgB,CAAC,EAAU;IACzC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,8DAA8D;AAC9D,SAAgB,sBAAsB,CAAC,EAAU;IAC/C,OAAO,gBAAgB,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;AAC3C,CAAC;AAED;8CAC8C;AAC9C,SAAgB,YAAY,CAAC,EAAU;IACrC,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC;AAED;4EAC4E;AAC5E,SAAgB,qBAAqB,CAAC,EAAU;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAClC,OAAO,KAAK;QACV,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QACrG,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAgB,oBAAoB,CAAC,CAAU;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC"}
|
package/esm/alphaFoldModels.d.ts
CHANGED
|
@@ -2,8 +2,12 @@ import type { FetchOptions } from './fetchUtils.ts';
|
|
|
2
2
|
export interface AlphaFoldModel {
|
|
3
3
|
/** UniProt accession, with an isoform suffix on an isoform model */
|
|
4
4
|
accession: string;
|
|
5
|
+
/** AlphaFold DB's id for the model, e.g. AF-P04637-F1 */
|
|
6
|
+
entity?: string;
|
|
5
7
|
url: string;
|
|
6
8
|
confidenceUrl?: string;
|
|
9
|
+
/** mean per-residue confidence (pLDDT), 0-100 */
|
|
10
|
+
meanPlddt?: number;
|
|
7
11
|
sequence: string;
|
|
8
12
|
}
|
|
9
13
|
export declare function parseAlphaFoldModels(json: unknown): AlphaFoldModel[];
|
package/esm/alphaFoldModels.js
CHANGED
|
@@ -11,8 +11,12 @@ export function parseAlphaFoldModels(json) {
|
|
|
11
11
|
? [
|
|
12
12
|
{
|
|
13
13
|
accession: e.uniprotAccession,
|
|
14
|
+
entity: typeof e.modelEntityId === 'string' ? e.modelEntityId : undefined,
|
|
14
15
|
url: e.cifUrl,
|
|
15
16
|
confidenceUrl: typeof e.plddtDocUrl === 'string' ? e.plddtDocUrl : undefined,
|
|
17
|
+
meanPlddt: typeof e.globalMetricValue === 'number'
|
|
18
|
+
? e.globalMetricValue
|
|
19
|
+
: undefined,
|
|
16
20
|
sequence: e.sequence,
|
|
17
21
|
},
|
|
18
22
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alphaFoldModels.js","sourceRoot":"","sources":["../src/alphaFoldModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"alphaFoldModels.js","sourceRoot":"","sources":["../src/alphaFoldModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAuBpD,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACnD,iBAAiB,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC,gBAAgB,KAAK,QAAQ;QACtC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAC5B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC5B,CAAC,CAAC;YACE;gBACE,SAAS,EAAE,CAAC,CAAC,gBAAgB;gBAC7B,MAAM,EACJ,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACnE,GAAG,EAAE,CAAC,CAAC,MAAM;gBACb,aAAa,EACX,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBAC/D,SAAS,EACP,OAAO,CAAC,CAAC,iBAAiB,KAAK,QAAQ;oBACrC,CAAC,CAAC,CAAC,CAAC,iBAAiB;oBACrB,CAAC,CAAC,SAAS;gBACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB;SACF;QACH,CAAC,CAAC,EAAE,CACP,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAiB,EACjB,IAAmB;IAEnB,MAAM,GAAG,GAAG,8CAA8C,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAA;IACzF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACrC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAwB,EACxB,gBAA6D;IAE7D,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACtE,CAAA;IACD,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACxE,CAAA;IACD,OAAO,CACL,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACrE,CAAA;AACH,CAAC"}
|
package/esm/dbIds.d.ts
CHANGED
package/esm/dbIds.js
CHANGED
|
@@ -11,6 +11,10 @@ const DB_ID_PATTERNS = [
|
|
|
11
11
|
{ db: 'refseq', pattern: /^[NXYA]P_\d+/i, label: 'RefSeq protein' },
|
|
12
12
|
{ db: 'ccds', pattern: /^CCDS\d+/i, label: 'CCDS' },
|
|
13
13
|
{ db: 'hgnc', pattern: /^HGNC:\d+/i, label: 'HGNC' },
|
|
14
|
+
// NCBI's GFFs carry `Dbxref=GeneID:7157`, and UniProt keeps the GeneID
|
|
15
|
+
// cross-reference for every organism NCBI annotates, where a symbol search
|
|
16
|
+
// needs a taxon and misses a TrEMBL-only gene.
|
|
17
|
+
{ db: 'geneid', pattern: /^GeneID:\d+$/i, label: 'NCBI Gene' },
|
|
14
18
|
];
|
|
15
19
|
export function matchDbIdPattern(id) {
|
|
16
20
|
return DB_ID_PATTERNS.find(p => p.pattern.test(id));
|
|
@@ -30,7 +34,7 @@ export function getDbIdLabel(id) {
|
|
|
30
34
|
export function buildUniProtXrefQuery(id) {
|
|
31
35
|
const match = matchDbIdPattern(id);
|
|
32
36
|
return match
|
|
33
|
-
? `xref:${match.db}-${match.db === 'hgnc' ? id.replace(
|
|
37
|
+
? `xref:${match.db}-${match.db === 'hgnc' || match.db === 'geneid' ? id.replace(/^[^:]+:/, '') : id}`
|
|
34
38
|
: undefined;
|
|
35
39
|
}
|
|
36
40
|
export function stripTrailingVersion(s) {
|
package/esm/dbIds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbIds.js","sourceRoot":"","sources":["../src/dbIds.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAqD;IACvE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE;IACpE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC1E,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACvE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9D,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAC/D,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,4EAA4E;IAC5E,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACnE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"dbIds.js","sourceRoot":"","sources":["../src/dbIds.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAqD;IACvE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE;IACpE,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC1E,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACvE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9D,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAC/D,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,4EAA4E;IAC5E,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACnE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;IACnD,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;IACpD,uEAAuE;IACvE,2EAA2E;IAC3E,+CAA+C;IAC/C,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE;CAC/D,CAAA;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,sBAAsB,CAAC,EAAU;IAC/C,OAAO,gBAAgB,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;AAC3C,CAAC;AAED;8CAC8C;AAC9C,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC;AAED;4EAC4E;AAC5E,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAClC,OAAO,KAAK;QACV,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;QACrG,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAU;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "p2s_mapper",
|
|
3
3
|
"description": "Map a transcript's translation onto a protein structure: alignment, coordinates, chain choice, SIFTS, and the AlphaFold and PDBe lookups that find the structure",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"packageManager": "pnpm@11.15.1",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
package/src/alphaFoldModels.ts
CHANGED
|
@@ -6,15 +6,21 @@ import { stripStopCodon } from './stripStopCodon.ts'
|
|
|
6
6
|
export interface AlphaFoldModel {
|
|
7
7
|
/** UniProt accession, with an isoform suffix on an isoform model */
|
|
8
8
|
accession: string
|
|
9
|
+
/** AlphaFold DB's id for the model, e.g. AF-P04637-F1 */
|
|
10
|
+
entity?: string
|
|
9
11
|
url: string
|
|
10
12
|
confidenceUrl?: string
|
|
13
|
+
/** mean per-residue confidence (pLDDT), 0-100 */
|
|
14
|
+
meanPlddt?: number
|
|
11
15
|
sequence: string
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
interface PredictionEntry {
|
|
15
19
|
uniprotAccession?: unknown
|
|
20
|
+
modelEntityId?: unknown
|
|
16
21
|
cifUrl?: unknown
|
|
17
22
|
plddtDocUrl?: unknown
|
|
23
|
+
globalMetricValue?: unknown
|
|
18
24
|
sequence?: unknown
|
|
19
25
|
}
|
|
20
26
|
|
|
@@ -31,9 +37,15 @@ export function parseAlphaFoldModels(json: unknown): AlphaFoldModel[] {
|
|
|
31
37
|
? [
|
|
32
38
|
{
|
|
33
39
|
accession: e.uniprotAccession,
|
|
40
|
+
entity:
|
|
41
|
+
typeof e.modelEntityId === 'string' ? e.modelEntityId : undefined,
|
|
34
42
|
url: e.cifUrl,
|
|
35
43
|
confidenceUrl:
|
|
36
44
|
typeof e.plddtDocUrl === 'string' ? e.plddtDocUrl : undefined,
|
|
45
|
+
meanPlddt:
|
|
46
|
+
typeof e.globalMetricValue === 'number'
|
|
47
|
+
? e.globalMetricValue
|
|
48
|
+
: undefined,
|
|
37
49
|
sequence: e.sequence,
|
|
38
50
|
},
|
|
39
51
|
]
|
package/src/dbIds.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// keyword, the regex (Ensembl patterns cover human ENS, mouse ENSMUS, zebrafish
|
|
4
4
|
// ENSDAR, etc.), and a human-readable label. Recognition, label rendering, and
|
|
5
5
|
// xref-query building all derive from this list, so a new ID type is one entry.
|
|
6
|
-
type DbType = 'ensembl' | 'refseq' | 'ccds' | 'hgnc'
|
|
6
|
+
type DbType = 'ensembl' | 'refseq' | 'ccds' | 'hgnc' | 'geneid'
|
|
7
7
|
|
|
8
8
|
const DB_ID_PATTERNS: { db: DbType; pattern: RegExp; label: string }[] = [
|
|
9
9
|
{ db: 'ensembl', pattern: /^ENS[A-Z]*G\d+/i, label: 'Ensembl gene' },
|
|
@@ -18,6 +18,10 @@ const DB_ID_PATTERNS: { db: DbType; pattern: RegExp; label: string }[] = [
|
|
|
18
18
|
{ db: 'refseq', pattern: /^[NXYA]P_\d+/i, label: 'RefSeq protein' },
|
|
19
19
|
{ db: 'ccds', pattern: /^CCDS\d+/i, label: 'CCDS' },
|
|
20
20
|
{ db: 'hgnc', pattern: /^HGNC:\d+/i, label: 'HGNC' },
|
|
21
|
+
// NCBI's GFFs carry `Dbxref=GeneID:7157`, and UniProt keeps the GeneID
|
|
22
|
+
// cross-reference for every organism NCBI annotates, where a symbol search
|
|
23
|
+
// needs a taxon and misses a TrEMBL-only gene.
|
|
24
|
+
{ db: 'geneid', pattern: /^GeneID:\d+$/i, label: 'NCBI Gene' },
|
|
21
25
|
]
|
|
22
26
|
|
|
23
27
|
export function matchDbIdPattern(id: string) {
|
|
@@ -41,7 +45,7 @@ export function getDbIdLabel(id: string) {
|
|
|
41
45
|
export function buildUniProtXrefQuery(id: string) {
|
|
42
46
|
const match = matchDbIdPattern(id)
|
|
43
47
|
return match
|
|
44
|
-
? `xref:${match.db}-${match.db === 'hgnc' ? id.replace(
|
|
48
|
+
? `xref:${match.db}-${match.db === 'hgnc' || match.db === 'geneid' ? id.replace(/^[^:]+:/, '') : id}`
|
|
45
49
|
: undefined
|
|
46
50
|
}
|
|
47
51
|
|