🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

peptide

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

peptide - npm Package Compare versions

Comparing version
1.1.0
to
1.2.0
+67
src/digestSequence.js
'use strict';
var splitSequence=require('./splitSequence');
function digestSequence(sequence, options) {
var options=options || {};
sequence=sequence.replace(/^H([^a-z])/,'$1').replace(/OH$/,'');
options.enzyme = options.enzyme || 'trypsin';
if (options.minMissed===undefined) options.minMissed=0;
if (options.maxMissed===undefined) options.maxMissed=0;
if (options.minResidue===undefined) options.minResidue=0;
if (options.maxResidue===undefined) options.maxResidue=Number.MAX_VALUE;
var regexp=getRegexp(options.enzyme);
var fragments=sequence.replace(regexp,"$1 ").split(/ /);
if (!fragments[fragments.length]) fragments=fragments.slice(0, fragments.length-1);
for (var i=0; i<fragments.length; i++) {
fragments[i]={
sequence:fragments[i],
nbResidue:splitSequence(fragments[i]).length
}
}
var results=[];
for (var i=0; i<fragments.length-options.minMissed; i++) {
for (var j=options.minMissed; j<=Math.min(options.maxMissed,fragments.length-i-1); j++) {
var fragment='';
var nbResidue=0;
for (var k=i; k<=(i+j); k++) {
fragment+=fragments[k].sequence;
nbResidue+=fragments[k].nbResidue
}
if (fragment && nbResidue>=options.minResidue && nbResidue<=options.maxResidue) {
results.push("H"+fragment+"OH");
}
}
}
return results;
}
function getRegexp(enzyme) {
switch (enzyme.toLowerCase().replace(/[^a-z0-9]/g,'')) {
case 'chymotrypsin':
return /(Phe|Tyr|Trp)(?!Pro)/g;
case 'trypsin':
return /(Lys|Arg)(?!Pro)/g;
case 'lysc':
return /(Lys)(?!Pro)/g;
case 'glucph4':
return /(Glu)(?!Pro|Glu)/g;
case 'glucph8':
return /(Asp|Glu)(?!Pro|Glu)/g;
case 'thermolysin':
return /(Leu|Ile|Met|Phe|Trp)/g;
case 'cyanogenbromide':
return /(Met)/g;
}
throw new Error('Digestion enzyme: '+enzyme+' is unknown');
}
module.exports = digestSequence;
'use strict';
function splitSequence(sequence) {
var aas=sequence.replace(/([A-Z])/g," $1").split(/ /);
var begin=0;
while (aas[begin]==='' || aas[begin]==='H') {
begin++;
}
var end=aas.length-1;
while (aas[end]==='O' || aas[end]==='H') {
end--;
}
aas=aas.slice(begin,end+1);
return aas;
}
module.exports = splitSequence;
+1
-1
{
"name": "peptide",
"version": "1.1.0",
"version": "1.2.0",
"description": "Peptide",

@@ -5,0 +5,0 @@ "keywords": [

{
"name": "peptide",
"version": "1.1.0",
"version": "1.2.0",
"description": "Peptide",

@@ -5,0 +5,0 @@ "keywords": [

@@ -49,3 +49,4 @@ # peptide

You can also specify internal fragments using the options 'ya' and 'yb' as well as the maximal length for internal fragments 'maxInternal'
You can also specify internal fragments using the options 'ya' and 'yb' as well as the minimal length of internal fragments 'minInternal'
and the maximal length of internal fragments 'maxInternal'

@@ -67,2 +68,31 @@ ## Isoelectric Point

#### splitSequence(sequence)
Split a 3 letter code sequence respecting uppercase, lowercase in an array of residu.
__Arguments__
* `sequence` - string with the amino acids sequence
#### digestSequence(sequence, options)
Allows to digest virtually a sequence
__Arguments__
* `sequence` - string with the amino acids sequence
* `options`
* `minMissed` - minimal missed cleavage (default: 0)
* `maxMissed` - maximal missed cleavage (default: 0)
* `minResidue` - minimal number of residues (default: 0)
* `maxResidue` - maximal number of residues (default: infinity)
* `enzyme` - enzyme used for digestion
* chymotrypsin : (Phe|Tyr|Trp)(?!Pro)
* trypsin : (Lys|Arg)(?!Pro)
* lysc : (Lys)(?!Pro)
* glucph4 : (Glu)(?!Pro|Glu)
* glucph8 : (Asp|Glu)(?!Pro|Glu)
* thermolysin : (Leu|Ile|Met|Phe|Trp)
* cyanogenbromide : (Met)
#### calculateIEP(sequence)

@@ -69,0 +99,0 @@

@@ -6,2 +6,4 @@ 'use strict';

var chargePeptide = require('./chargePeptide');
var splitSequence = require('./splitSequence');
var digestSequence = require('./digestSequence');

@@ -14,5 +16,7 @@ exports.getInfo = function () {

exports.splitSequence=splitSequence;
exports.digestSequence=digestSequence;
exports.calculateIEP = function (sequence) {
var aas=sequence.replace(/([A-Z])/g," $1").split(/ /);
aas=aas.slice(2,aas.length-2);
var aas=splitSequence(sequence);
var result=IEP.calculateIEP(aas);

@@ -23,4 +27,3 @@ return result;

exports.calculateIEPChart = function (sequence) {
var aas=sequence.replace(/([A-Z])/g," $1").split(/ /);
aas=aas.slice(2,aas.length-2);
var aas=splitSequence(sequence);
var result=IEP.calculateChart(aas);

@@ -36,4 +39,3 @@ return result;

exports.calculateCharge = function (sequence, ph) {
var aas=sequence.replace(/([A-Z])/g," $1").split(/ /);
aas=aas.slice(2,aas.length-2);
var aas=splitSequence(sequence);
return IEP.calculateCharge(aas, ph);

@@ -57,2 +59,3 @@ }

options.maxInternal = options.maxInternal || Number.MAX_VALUE;
options.minInternal = options.minInternal || 0;

@@ -75,6 +78,8 @@ var mfs = [];

var iTerm='';
for (var k=i; k<j; k++) {
iTerm+=mfparts[k];
if ((j-i)>=options.minInternal){
for (var k = i; k < j; k++) {
iTerm += mfparts[k];
}
addITerm(mfs, iTerm, mfparts.length - i, j, options);
}
addITerm(mfs, iTerm, mfparts.length-i, j, options);
}

@@ -81,0 +86,0 @@ }