anchor.diff:  		 db_msgfDB_decoy_tar(File) db_TandemDB(File) db_Tandem_decoyDB(File) 
   		 omssa_mods omssa_usermods blast_index_name numthreads pmt fmt]) {
   
  -	# Run database search tools
  +# Run database search tools
   	OmssaRes=runOmssa(mzMLFile:mzMLFiles db_blastDB_tar:db_blastDB_tar blast_index_name:blast_index_name pmt:pmt fmt:fmt omssa_mods:omssa_mods omssa_usermods:omssa_usermods);
   	OmssaDecoyRes=runOmssa(mzMLFile:mzMLFiles db_blastDB_tar:db_blastDB_decoy_tar blast_index_name:blast_index_name pmt:pmt fmt:fmt omssa_mods:omssa_mods omssa_usermods:omssa_usermods);
  -
   	MsgfRes=runMsgf(mzMLFile:mzMLFiles db_fasta:db_fasta db_msgfDB_tar:db_msgfDB_tar pmt:pmt);
   	MsgfDecoyRes=runMsgf(mzMLFile:mzMLFiles db_fasta:db_fasta_decoy db_msgfDB_tar:db_msgfDB_decoy_tar pmt:pmt);
  -
   	TandemRes=runTandem(mzMLFile:mzMLFiles db_TandemDB:db_TandemDB pmt:pmt fmt:fmt);
   	TandemDecoyRes=runTandem(mzMLFile:mzMLFiles db_TandemDB:db_Tandem_decoyDB pmt:pmt fmt:fmt);
  -
  -
  -	# Create consensus
  -	TargetResults=OmssaRes MsgfRes TandemRes;
  -	DecoyResults=OmssaDecoyRes MsgfDecoyRes TandemDecoyRes;
  -
  -	MergedTargetResults=mergeResults(idxml_results:TargetResults);
  -	MergedDecoyResults=mergeResults(idxml_results:DecoyResults);
  -
  -	ConsensusTargetResults=runConsensus(idxml_results:MergedTargetResults pmt:pmt numthreads:numthreads);
  -	ConsensusDecoyResults=runConsensus(idxml_results:MergedDecoyResults pmt:pmt numthreads:numthreads);
  -
  -	FDRResults=establishFDR(target_idxml:ConsensusTargetResults decoy_idxml:ConsensusDecoyResults numthreads:numthreads);
  -	fdrResults=mapPeptides(idxml_results:FDRResults db_fasta:db_fasta);
  -
  -	protResults=inferProteins(idxml_results:fdrResults numthreads:numthreads);
  -	filteredResults=filterResults(idxml_results:protResults mzMLFile:mzMLFiles numthreads:numthreads );
  -	idxmlResults=filteredResults;
  +# Combine decoy and target results
  +	OmssaCombRes=OmssaRes OmssaDecoyRes;
  +	MsgfComRes=MsgfRes MsgfDecoyRes;
  +	TandemCombRes=TandemRes TandemDecoyRes;
  +	OmssaCombResMerged=mergeResults(idxml_results:OmssaCombRes);
  +	MsgfComResMerged=mergeResults(idxml_results:MsgfComRes);
  +	TandemCombResMerged=mergeResults(idxml_results:TandemCombRes);
  +# Calculate posterior error probability
  +	OmssaPEP=calcPEP(idxml_results:OmssaCombResMerged);
  +	MsgfPEP=calcPEP(idxml_results:MsgfComResMerged);
  +	TandemPEP=calcPEP(idxml_results:TandemCombResMerged);
  +	
  +# Create consensus
  +	PEPResMerged=OmssaPEP MsgfPEP TandemPEP;
  +	ConsensusRes=runConsensus(idxml_results:PEPResMerged pmt:pmt fmt:fmt numthreads:numthreads);
  +	ConsResMapped=mapPeptides(idxml_results:ConsensusRes db_fasta:db_fasta);
  +	FDRResults=calculateFDR(idxml_results:ConsResMapped numthreads:numthreads);
  +	FilteredResults=filterResults(idxml_results:FDRResults mzMLFile:mzMLFiles numthreads:numthreads);
  +	idxmlResults=FilteredResults;
   }
   
   
  
positive.code: 		-fasta $db_fasta\
  		-out mappedres.idXML\
  		-missing_decoy_action warn\
  		-allow_unmatched
  	MappedResults=mappedres.idXML
  }*
  
  
negative.code: #			Other Tasks
  #
  
  deftask calcPEP(pepIdXML(File) : idxml_results(File)) in bash *{
  	IDPosteriorErrorProbability -in $idxml_results\
  		-out $pepIdXML
  }*
  
  deftask filterResults(idxml_res(File) : idxml_results(File) mzMLFile(File) numthreads) in bash *{
  	idxml_res=$(basename $mzMLFile).idXML
  	IDFilter -in $idxml_results\
  		-out $idxml_res\
  		-best:strict\
  		-unique\
  		-remove_decoys\
  		-delete_unreferenced_peptide_hits\
  		-score:pep 0.05\
  		-mz:unit Da
  }*
  
  deftask inferProteins(idxml_res(File) : idxml_results(File) numthreads) in bash *{
  