.parseResults(searchResultsPaths);
translationTable = CodonTranslationTable
.parseTableFile(translationTableFile);
for (PeptideSearchResult peptideSearchResult : peptideSearchResults) {
GeneInfo geneInfo = genome.getGene(peptideSearchResult
.getProteinName());
if (geneInfo == null) {
System.err.println(peptideSearchResult.getProteinName()
+ " not found in the genome");
continue;
}
if (peptideFilter != null && (!peptideFilter.accepts(peptideSearchResult))){
continue;
}
int virtualGeneStart = geneInfo.getStart() - 1;
int virtualGeneStop = geneInfo.getStop() - 1;
int peptideAbsoluteStart;
int peptideAbsoluteStop;
int startOffset = (peptideSearchResult.getPeptideStart() - 1) * GenomeConstant.BASES_PER_CODON;
int stopOffset = (peptideSearchResult.getPeptideStop() - 1) * GenomeConstant.BASES_PER_CODON;
if (geneInfo.isForward()) {
peptideAbsoluteStart = virtualGeneStart + startOffset;
peptideAbsoluteStop = virtualGeneStart + stopOffset;
} else {
peptideAbsoluteStart = virtualGeneStop - startOffset;
peptideAbsoluteStop = virtualGeneStop - stopOffset;
}
GenomeNucleotides genomeNucleotides = getGenomeNucleotides(geneInfo.getChromosome());
int startPosition = searchStart(peptideSearchResult, peptideAbsoluteStart, genomeNucleotides, geneInfo);
int stopPosition = searchStop(peptideSearchResult, peptideAbsoluteStop, genomeNucleotides, geneInfo, false);
if (startPosition == NOT_FOUND || stopPosition == NOT_FOUND) {
continue;
}
ProteinLocation loc = new ProteinLocation("?", getStartPosition(startPosition, stopPosition) , Math.abs(stopPosition - startPosition),
geneInfo.getDirectionStr(), "0", peptideSearchResult.getConfidenceScore(),
peptideSearchResult.getProteinName() + "(" + (virtualGeneStart + 1) + "-" + (virtualGeneStop + 1) + ")", geneInfo.getChromosome());
loc.setAbsoluteStartStop(getStartPosition(startPosition, stopPosition) + "_" + Math.abs(stopOffset - startOffset));
loc.setOrigin("VPMerger");
proteinLocations.add(loc);
}
return proteinLocations;