@rnacanvas/search 1.2.3 → 1.3.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/README.md +77 -6
- package/dist/Motif.d.ts +6 -0
- package/dist/Motif.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -50,18 +50,19 @@ new SequenceCharacter('AG'); // throws
|
|
|
50
50
|
new SequenceCharacter('asdf'); // throws
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
A `SequenceCharacter` instance may be created for any character, though.
|
|
54
54
|
|
|
55
55
|
### `toString()`
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
Returns the character as a string.
|
|
58
58
|
|
|
59
59
|
```javascript
|
|
60
60
|
var A = new SequenceCharacter('A');
|
|
61
61
|
A.toString(); // "A"
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
// preserves case
|
|
64
|
+
var r = new SequenceCharacter('r');
|
|
65
|
+
r.toString(); // "r"
|
|
65
66
|
```
|
|
66
67
|
|
|
67
68
|
### `matches()`
|
|
@@ -95,16 +96,19 @@ var N = new SequenceCharacter('N');
|
|
|
95
96
|
N.matches('A'); // true
|
|
96
97
|
N.matches('p'); // true
|
|
97
98
|
|
|
99
|
+
// gap characters
|
|
98
100
|
var period = new SequenceCharacter('.');
|
|
99
101
|
var dash = new SequenceCharacter('-');
|
|
100
102
|
|
|
101
103
|
// gap characters only match other gap characters
|
|
102
104
|
period.matches('.'); // true
|
|
103
105
|
dash.matches('-'); // true
|
|
104
|
-
|
|
106
|
+
|
|
107
|
+
N.matches('.'); // false
|
|
108
|
+
N.matches('-'); // false
|
|
105
109
|
```
|
|
106
110
|
|
|
107
|
-
|
|
111
|
+
Throws for empty strings and strings containing more than one character.
|
|
108
112
|
|
|
109
113
|
```javascript
|
|
110
114
|
var A = new SequenceCharacter('A');
|
|
@@ -116,3 +120,70 @@ A.matches(''); // throws
|
|
|
116
120
|
A.matches('AG'); // throws
|
|
117
121
|
A.matches('asdf'); // throws
|
|
118
122
|
```
|
|
123
|
+
|
|
124
|
+
### `complements()`
|
|
125
|
+
|
|
126
|
+
Returns `true` if the character complements the specified character.
|
|
127
|
+
|
|
128
|
+
```javascript
|
|
129
|
+
var A = new SequenceCharacter('A');
|
|
130
|
+
|
|
131
|
+
A.complements('U'); // true
|
|
132
|
+
A.complements('A'); // false
|
|
133
|
+
|
|
134
|
+
// T and U are interchangeable
|
|
135
|
+
A.complements('T'); // true
|
|
136
|
+
|
|
137
|
+
// case doesn't matter
|
|
138
|
+
A.complements('u'); // true
|
|
139
|
+
|
|
140
|
+
// sequence character instances can also be input
|
|
141
|
+
A.complements(new SequenceCharacter('U')); // true
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
[IUPAC nucleic acid codes](https://www.bioinformatics.org/sms/iupac.html) are recognized.
|
|
145
|
+
|
|
146
|
+
```javascript
|
|
147
|
+
var G = new SequenceCharacter('G');
|
|
148
|
+
|
|
149
|
+
// since G can pair with C, U and T
|
|
150
|
+
G.complements('Y'); // true
|
|
151
|
+
|
|
152
|
+
var U = new SequenceCharacter('U');
|
|
153
|
+
|
|
154
|
+
// since U can pair with A or G
|
|
155
|
+
U.complements('R'); // true
|
|
156
|
+
|
|
157
|
+
var N = new SequenceCharacter('N');
|
|
158
|
+
|
|
159
|
+
// the any character complements any non-gap character
|
|
160
|
+
N.complements('A'); // true
|
|
161
|
+
|
|
162
|
+
// gap characters
|
|
163
|
+
var period = new SequenceCharacter('.');
|
|
164
|
+
var dash = new SequenceCharacter('-');
|
|
165
|
+
|
|
166
|
+
// gap characters only complement other gap characters
|
|
167
|
+
period.complements('.'); // true
|
|
168
|
+
period.complements('-'); // true
|
|
169
|
+
|
|
170
|
+
N.complements('.'); // false
|
|
171
|
+
N.complements('-'); // false
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Note that the special IUPAC codes
|
|
175
|
+
`S`, `W`, `K`, `M`, `B`, `D`, `H` and `V`
|
|
176
|
+
have no complements.
|
|
177
|
+
|
|
178
|
+
This method throws for empty strings and strings containing more than one character.
|
|
179
|
+
|
|
180
|
+
```javascript
|
|
181
|
+
var A = new SequenceCharacter('A');
|
|
182
|
+
|
|
183
|
+
// empty string
|
|
184
|
+
A.complements(''); // throws
|
|
185
|
+
|
|
186
|
+
// strings containing more than one character
|
|
187
|
+
A.complements('AG'); // throws
|
|
188
|
+
A.complements('asdf'); // throws
|
|
189
|
+
```
|
package/dist/Motif.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Motif.d.ts","sourceRoot":"","sources":["../src/Motif.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;;gBAGJ,KAAK,EAAE,MAAM;IAIzB,QAAQ,IAAI,MAAM;CAGnB"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.search=t():e.search=t()}(this,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.search=t():e.search=t()}(this,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var o in r)e.o(r,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{Motif:()=>o,SequenceCharacter:()=>i});var r;class o{constructor(e){r.set(this,void 0),function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===o?n.call(e,r):n?n.value=r:t.set(e,r)}(this,r,e,"f")}toString(){return function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)}(this,r,"f")}}r=new WeakMap;var n,a=function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};class i{constructor(e){if(n.set(this,void 0),0==e.length)throw new Error("Character cannot be an empty string.");if(e.length>1)throw new Error("Character must be a single character.");!function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===o?n.call(e,r):n?n.value=r:t.set(e,r)}(this,n,e,"f")}toString(){return a(this,n,"f")}matches(e){var t,r;if("string"!=typeof e&&(e=e.toString()),0==e.length)throw new Error("Other character cannot be an empty string.");if(e.length>1)throw new Error("Other character cannot be multiple characters.");let o=a(this,n,"f").toUpperCase();return e=e.toUpperCase(),!(!c.includes(o)||!c.includes(e))||!c.includes(o)&&!c.includes(e)&&("N"===o&&!c.includes(e)||"N"===e&&!c.includes(o)||(o in s?null!==(r=null===(t=s[o])||void 0===t?void 0:t.includes(e))&&void 0!==r&&r:o===e))}complements(e){var t,r;if("string"!=typeof e&&(e=e.toString()),0==e.length)throw new Error("Other character cannot be an empty string.");if(e.length>1)throw new Error("Other character cannot be multiple characters.");let o=a(this,n,"f").toUpperCase();return e=e.toUpperCase(),!(!c.includes(o)||!c.includes(e))||!c.includes(o)&&!c.includes(e)&&("N"===o&&!c.includes(e)||"N"===e&&!c.includes(o)||o in l&&null!==(r=null===(t=l[o])||void 0===t?void 0:t.includes(e))&&void 0!==r&&r)}}n=new WeakMap;const c=[...".-"],s={A:[..."A"],C:[..."C"],G:[..."G"],U:[..."UT"],T:[..."TU"],R:[..."AG"],Y:[..."CUT"],S:[..."GC"],W:[..."AUT"],K:[..."GUT"],M:[..."AC"],B:[..."CGUTYSK"],D:[..."AGUTRWK"],H:[..."ACUTYWM"],V:[..."ACGRSM"]},l={A:[..."UT"],C:[..."G"],G:[..."CUTY"],U:[..."AGR"],T:[..."AGR"],R:[..."UT"],Y:[..."G"]};return t})());
|
package/package.json
CHANGED