Skip to content

Commit 91e4e2e

Browse files
Salvador Martinez-BartolomeSalvador Martinez-Bartolome
authored andcommitted
new semicleavage property
1 parent 0989256 commit 91e4e2e

File tree

4 files changed

+59
-28
lines changed

4 files changed

+59
-28
lines changed

ProtClusterQuant/setup.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,11 @@ missedCleavages = NUMERIC_VALUE
161161
# Default value if not provided: 0.
162162
# Example: missedCleavages = 2
163163

164+
semiCleavage = TRUE/FALSE
165+
# This parameter allows the user to allow semi cleavaged peptides or not.
166+
# Default value if not provided: FALSE
167+
# Example: semiCleavage = TRUE
168+
164169
discardDecoys = TEXT
165170
# Regular expression for discarding decoys from input files.
166171
# If empty or not provided, no decoys will be discarded from input files.

ProtClusterQuant/src/main/java/edu/scripps/yates/pcq/ProteinClusterQuantParameters.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public class ProteinClusterQuantParameters {
9191
private boolean removeFilteredNodes;
9292
private boolean statisticalTestForProteinPairApplied;
9393
private boolean ignorePTMs;
94+
private boolean semiCleavage;
9495

9596
private ProteinClusterQuantParameters() {
9697
quantParameters = new QuantParameters();
@@ -1080,4 +1081,16 @@ public String[] getIdentificationInputFileNamesArray() {
10801081
}
10811082
return ret;
10821083
}
1084+
1085+
public boolean isSemiCleavage() {
1086+
return semiCleavage;
1087+
}
1088+
1089+
/**
1090+
* @param semiCleavage
1091+
* the semiCleavage to set
1092+
*/
1093+
public void setSemiCleavage(boolean semiCleavage) {
1094+
this.semiCleavage = semiCleavage;
1095+
}
10831096
}

ProtClusterQuant/src/main/java/edu/scripps/yates/pcq/util/PCQUtils.java

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -194,21 +194,21 @@ public static ProteinCluster mergeClusters(ProteinCluster cluster, ProteinCluste
194194

195195
public static CensusChroParser getCensusChroParser(File fastaFile, File inputFileFolder, String[] fileNames,
196196
Map<QuantCondition, QuantificationLabel> labelsByConditions, char[] enzymeArray, int missedCleavages,
197-
File uniprotReleasesFolder, String uniprotVersion, String decoyRegexp, boolean ignoreNotFoundPeptidesInDB,
198-
boolean distinguishModifiedPeptides) throws FileNotFoundException {
197+
boolean semiCleavage, File uniprotReleasesFolder, String uniprotVersion, String decoyRegexp,
198+
boolean ignoreNotFoundPeptidesInDB, boolean distinguishModifiedPeptides) throws FileNotFoundException {
199199
List<Map<QuantCondition, QuantificationLabel>> list = new ArrayList<Map<QuantCondition, QuantificationLabel>>();
200200
for (int i = 0; i < fileNames.length; i++) {
201201
list.add(labelsByConditions);
202202
}
203203
return getCensusChroParser(fastaFile, inputFileFolder, fileNames, list, enzymeArray, missedCleavages,
204-
uniprotReleasesFolder, uniprotVersion, decoyRegexp, ignoreNotFoundPeptidesInDB,
204+
semiCleavage, uniprotReleasesFolder, uniprotVersion, decoyRegexp, ignoreNotFoundPeptidesInDB,
205205
distinguishModifiedPeptides);
206206
}
207207

208208
public static CensusChroParser getCensusChroParser(File fastaFile, File inputFilefolder, String[] fileNames,
209209
List<Map<QuantCondition, QuantificationLabel>> labelsByConditions, char[] enzymeArray, int missedCleavages,
210-
File uniprotReleasesFolder, String uniprotVersion, String decoyRegexp, boolean ignoreNotFoundPeptidesInDB,
211-
boolean distinguishModifiedPeptides) throws FileNotFoundException {
210+
boolean semiCleavage, File uniprotReleasesFolder, String uniprotVersion, String decoyRegexp,
211+
boolean ignoreNotFoundPeptidesInDB, boolean distinguishModifiedPeptides) throws FileNotFoundException {
212212
// Set parser (6 files) to peptides
213213
List<RemoteSSHFileReference> xmlFiles = new ArrayList<RemoteSSHFileReference>();
214214
for (String fileName : fileNames) {
@@ -230,7 +230,8 @@ public static CensusChroParser getCensusChroParser(File fastaFile, File inputFil
230230
parser.addIonExclusion(IonSerieType.Y, 1);
231231
parser.setDecoyPattern(decoyRegexp);
232232
parser.setIgnoreNotFoundPeptidesInDB(ignoreNotFoundPeptidesInDB);
233-
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages);
233+
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages,
234+
semiCleavage);
234235
parser.setDbIndex(fastaDBIndex);
235236
parser.enableProteinMergingBySecondaryAccessions(
236237
getUniprotProteinLocalRetrieverByFolder(uniprotReleasesFolder), uniprotVersion);
@@ -242,8 +243,9 @@ public static CensusChroParser getCensusChroParser(File fastaFile, File inputFil
242243
}
243244

244245
private static DTASelectParser getDTASelectParser(File fastaFile, File inputFilefolder, String[] fileNames,
245-
char[] enzymeArray, int missedCleavages, File uniprotReleasesFolder, String uniprotVersion,
246-
String decoyRegexp, boolean ignoreNotFoundPeptidesInDB) throws FileNotFoundException {
246+
char[] enzymeArray, int missedCleavages, boolean semiCleavage, File uniprotReleasesFolder,
247+
String uniprotVersion, String decoyRegexp, boolean ignoreNotFoundPeptidesInDB)
248+
throws FileNotFoundException {
247249
// Set parser (6 files) to peptides
248250
List<RemoteSSHFileReference> xmlFiles = new ArrayList<RemoteSSHFileReference>();
249251
for (String fileName : fileNames) {
@@ -263,7 +265,8 @@ private static DTASelectParser getDTASelectParser(File fastaFile, File inputFile
263265

264266
parser.setDecoyPattern(decoyRegexp);
265267
parser.setIgnoreNotFoundPeptidesInDB(ignoreNotFoundPeptidesInDB);
266-
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages);
268+
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages,
269+
semiCleavage);
267270
parser.setDbIndex(fastaDBIndex);
268271
parser.enableProteinMergingBySecondaryAccessions(
269272
getUniprotProteinLocalRetrieverByFolder(uniprotReleasesFolder), uniprotVersion);
@@ -284,9 +287,9 @@ private static String getFileNamesKey(List<RemoteSSHFileReference> xmlFiles) {
284287

285288
private static CensusOutParser getCensusOutParser(File fastaFile, File inputFilefolder, String[] fileNames,
286289
List<Map<QuantCondition, QuantificationLabel>> labelsByConditions, char[] enzymeArray, int missedCleavages,
287-
File uniprotReleasesFolder, String uniprotVersion, String decoyRegexp, boolean ignoreNotFoundPeptidesInDB,
288-
boolean onlyOneSpectrumPerChromatographicPeakAndPerSaltStep, boolean skipSingletons,
289-
boolean distinguishModifiedPeptides) throws FileNotFoundException {
290+
boolean semiCleavage, File uniprotReleasesFolder, String uniprotVersion, String decoyRegexp,
291+
boolean ignoreNotFoundPeptidesInDB, boolean onlyOneSpectrumPerChromatographicPeakAndPerSaltStep,
292+
boolean skipSingletons, boolean distinguishModifiedPeptides) throws FileNotFoundException {
290293
// Set parser (6 files) to peptides
291294
List<RemoteSSHFileReference> xmlFiles = new ArrayList<RemoteSSHFileReference>();
292295

@@ -309,7 +312,8 @@ private static CensusOutParser getCensusOutParser(File fastaFile, File inputFile
309312
parser.setOnlyOneSpectrumPerChromatographicPeakAndPerSaltStep(
310313
onlyOneSpectrumPerChromatographicPeakAndPerSaltStep);
311314
parser.setSkipSingletons(skipSingletons);
312-
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages);
315+
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages,
316+
semiCleavage);
313317
parser.setDbIndex(fastaDBIndex);
314318
parser.enableProteinMergingBySecondaryAccessions(
315319
getUniprotProteinLocalRetrieverByFolder(uniprotReleasesFolder), uniprotVersion);
@@ -322,9 +326,9 @@ private static CensusOutParser getCensusOutParser(File fastaFile, File inputFile
322326

323327
private static SeparatedValuesParser getSeparatedValuesParser(File fastaFile, File inputFilefolder,
324328
String[] fileNames, String separator, List<Map<QuantCondition, QuantificationLabel>> labelsByConditions,
325-
char[] enzymeArray, int missedCleavages, File uniprotReleasesFolder, String uniprotVersion,
326-
String decoyRegexp, boolean ignoreNotFoundPeptidesInDB, boolean distinguishModifiedPeptides)
327-
throws FileNotFoundException {
329+
char[] enzymeArray, int missedCleavages, boolean semiCleavage, File uniprotReleasesFolder,
330+
String uniprotVersion, String decoyRegexp, boolean ignoreNotFoundPeptidesInDB,
331+
boolean distinguishModifiedPeptides) throws FileNotFoundException {
328332
// Set parser (6 files) to peptides
329333
List<RemoteSSHFileReference> xmlFiles = new ArrayList<RemoteSSHFileReference>();
330334

@@ -344,7 +348,8 @@ private static SeparatedValuesParser getSeparatedValuesParser(File fastaFile, Fi
344348
try {
345349
parser.setDecoyPattern(decoyRegexp);
346350
parser.setIgnoreNotFoundPeptidesInDB(ignoreNotFoundPeptidesInDB);
347-
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages);
351+
final DBIndexInterface fastaDBIndex = getFastaDBIndex(fastaFile, enzymeArray, missedCleavages,
352+
semiCleavage);
348353
parser.setDbIndex(fastaDBIndex);
349354
parser.enableProteinMergingBySecondaryAccessions(
350355
getUniprotProteinLocalRetrieverByFolder(uniprotReleasesFolder), uniprotVersion);
@@ -364,18 +369,20 @@ private static void addDTASelectParserToStaticMap(String fileNamesKey, DTASelect
364369
log.info(dtaSelectParsersByFileNamesKey.size() + " parsers stored.");
365370
}
366371

367-
private static DBIndexInterface getFastaDBIndex(File fastaFile, char[] enzymeArray, int missedCleavages) {
372+
private static DBIndexInterface getFastaDBIndex(File fastaFile, char[] enzymeArray, int missedCleavages,
373+
boolean semicleavage) {
368374
if (fastaFile != null) {
369375

370376
DBIndexSearchParams defaultDBIndexParams = DBIndexInterface.getDefaultDBIndexParams(fastaFile);
371377
String fastaIndexKey = IndexUtil.createFullIndexFileName(defaultDBIndexParams);
372378
if (indexByFastaIndexKey.containsKey(fastaIndexKey)) {
373379
return indexByFastaIndexKey.get(fastaIndexKey);
374380
}
375-
((DBIndexSearchParamsImpl) defaultDBIndexParams).setEnzymeArr(enzymeArray, missedCleavages, false);
381+
((DBIndexSearchParamsImpl) defaultDBIndexParams).setEnzymeArr(enzymeArray, missedCleavages, semicleavage);
376382
((DBIndexSearchParamsImpl) defaultDBIndexParams).setEnzymeOffset(0);
377383
((DBIndexSearchParamsImpl) defaultDBIndexParams).setEnzymeNocutResidues("");
378384
((DBIndexSearchParamsImpl) defaultDBIndexParams).setH2OPlusProtonAdded(true);
385+
379386
DBIndexInterface dbIndex = new DBIndexInterface(defaultDBIndexParams);
380387
indexByFastaIndexKey.put(fastaIndexKey, dbIndex);
381388
return dbIndex;
@@ -1658,8 +1665,9 @@ public static QuantParser getQuantParser(ProteinClusterQuantParameters params,
16581665
} else {
16591666
return PCQUtils.getCensusChroParser(params.getFastaFile(), params.getInputFileFolder(),
16601667
inputFileNamesArray, labelsByConditionsList, params.getEnzymeArray(),
1661-
params.getMissedCleavages(), params.getUniprotReleasesFolder(), params.getUniprotVersion(),
1662-
params.getDecoyRegexp(), params.isIgnoreNotFoundPeptidesInDB(), !params.isIgnorePTMs());
1668+
params.getMissedCleavages(), params.isSemiCleavage(), params.getUniprotReleasesFolder(),
1669+
params.getUniprotVersion(), params.getDecoyRegexp(), params.isIgnoreNotFoundPeptidesInDB(),
1670+
!params.isIgnorePTMs());
16631671
}
16641672
} else if (params.getInputType() == AnalysisInputType.CENSUS_OUT) {
16651673
if (params.getMongoDBURI() != null) {
@@ -1675,8 +1683,9 @@ public static QuantParser getQuantParser(ProteinClusterQuantParameters params,
16751683
} else {
16761684
final CensusOutParser parser = PCQUtils.getCensusOutParser(params.getFastaFile(),
16771685
params.getInputFileFolder(), inputFileNamesArray, labelsByConditionsList,
1678-
params.getEnzymeArray(), params.getMissedCleavages(), params.getUniprotReleasesFolder(),
1679-
params.getUniprotVersion(), params.getDecoyRegexp(), params.isIgnoreNotFoundPeptidesInDB(),
1686+
params.getEnzymeArray(), params.getMissedCleavages(), params.isSemiCleavage(),
1687+
params.getUniprotReleasesFolder(), params.getUniprotVersion(), params.getDecoyRegexp(),
1688+
params.isIgnoreNotFoundPeptidesInDB(),
16801689
params.isOnlyOneSpectrumPerChromatographicPeakAndPerSaltStep(), params.isSkipSingletons(),
16811690
!params.isIgnorePTMs());
16821691

@@ -1695,9 +1704,9 @@ public static QuantParser getQuantParser(ProteinClusterQuantParameters params,
16951704
} else {
16961705
final SeparatedValuesParser parser = PCQUtils.getSeparatedValuesParser(params.getFastaFile(),
16971706
params.getInputFileFolder(), inputFileNamesArray, params.getSeparator(), labelsByConditionsList,
1698-
params.getEnzymeArray(), params.getMissedCleavages(), params.getUniprotReleasesFolder(),
1699-
params.getUniprotVersion(), params.getDecoyRegexp(), params.isIgnoreNotFoundPeptidesInDB(),
1700-
!params.isIgnorePTMs());
1707+
params.getEnzymeArray(), params.getMissedCleavages(), params.isSemiCleavage(),
1708+
params.getUniprotReleasesFolder(), params.getUniprotVersion(), params.getDecoyRegexp(),
1709+
params.isIgnoreNotFoundPeptidesInDB(), !params.isIgnorePTMs());
17011710

17021711
return parser;
17031712
}
@@ -1725,8 +1734,9 @@ public static DTASelectParser getDTASelectParser(ProteinClusterQuantParameters p
17251734
params.getDecoyRegexp(), params.isIgnoreNotFoundPeptidesInDB());
17261735
} else {
17271736
return getDTASelectParser(params.getFastaFile(), params.getInputFileFolder(), inputFileNamesArray,
1728-
params.getEnzymeArray(), params.getMissedCleavages(), params.getUniprotReleasesFolder(),
1729-
params.getUniprotVersion(), params.getDecoyRegexp(), params.isIgnoreNotFoundPeptidesInDB());
1737+
params.getEnzymeArray(), params.getMissedCleavages(), params.isSemiCleavage(),
1738+
params.getUniprotReleasesFolder(), params.getUniprotVersion(), params.getDecoyRegexp(),
1739+
params.isIgnoreNotFoundPeptidesInDB());
17301740
}
17311741
}
17321742

ProtClusterQuant/src/main/java/edu/scripps/yates/pcq/util/PropertiesReader.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,9 @@ private static void readParametersFromProperties(ProteinClusterQuantProperties p
382382
final boolean ignorePTMs = Boolean.valueOf(properties.getProperty("ignorePTMs", "true"));
383383
params.setIgnorePTMs(ignorePTMs);
384384

385+
final boolean semiCleavage = Boolean.valueOf(properties.getProperty("semiCleavage", "false"));
386+
params.setSemiCleavage(semiCleavage);
387+
385388
// check errors
386389
checkErrorsInParameters(params);
387390
}

0 commit comments

Comments
 (0)