diff --git a/phagetermvirome/functions_PhageTerm.py b/phagetermvirome/functions_PhageTerm.py index 79a11dd17df103a32ed3a69ee5345bb13dc81329..c9e9b8249ea5b0407fd961f6cd5f710abd5c927c 100644 --- a/phagetermvirome/functions_PhageTerm.py +++ b/phagetermvirome/functions_PhageTerm.py @@ -118,7 +118,12 @@ def readsCoverage(inRawDArgs,refseq,inDArgs,fParms,return_dict, core_id,line_sta p_res=chk_handler.load(core_id,idx_refseq) gen_len,host_len,termini_coverage, whole_coverage, paired_whole_coverage, phage_hybrid_coverage, host_hybrid_coverage,\ - host_whole_coverage, list_hybrid, insert, paired_missmatch, k, count_line, read_match=init_ws(p_res, refseq, inDArgs.hostseq) + host_whole_coverage, list_hybrid, insert, paired_mismatch, k, count_line, read_match=init_ws(p_res, refseq, inDArgs.hostseq) + if p_res==None: + # no existing checkpoint and starting processing of a new sequence + chk_handler.start(count_line,core_id,idx_refseq,termini_coverage,whole_coverage,paired_whole_coverage,\ + phage_hybrid_coverage, host_hybrid_coverage, \ + host_whole_coverage,list_hybrid,insert,paired_mismatch,count_line,read_match) if logger!=None: logger.add_rw(p_res) test_read_seq = match = 0 diff --git a/phagetermvirome/readsCoverage_res.py b/phagetermvirome/readsCoverage_res.py index ba94792a612d14af323e3d91bba979c3a7ad1105..74f317a7e55606418d7c4e08bd848e455995a7b3 100644 --- a/phagetermvirome/readsCoverage_res.py +++ b/phagetermvirome/readsCoverage_res.py @@ -291,6 +291,18 @@ class RCCheckpoint_handler: host_whole_coverage,list_hybrid,insert,paired_mismatch,reads_tested,read_match) chkp.save(self.dir_chk,core_id,idx_seq) + # When running on a cluster, ptv may be killed due to timeout. It is possible that in that case, that the processing of sequence n-1 is over + # (there is no more checkpoint for n-1) and ptv has not yet created a checkpoint for sequence n. + # The following method is used for creating a checkpoint at the beginning of processing of sequence n to avoid ptv + # having to restart from the beginning if it is killed due to timeout + def start(self,count_line,core_id,idx_seq,termini_coverage,whole_coverage,paired_whole_coverage,\ + phage_hybrid_coverage, host_hybrid_coverage, \ + host_whole_coverage,list_hybrid,insert,paired_mismatch,reads_tested,read_match): + if self.chk_freq != 0 and self.test_mode == False: + chkp = RCCheckpoint(count_line, core_id, idx_seq, termini_coverage, whole_coverage, paired_whole_coverage, \ + phage_hybrid_coverage, host_hybrid_coverage, \ + host_whole_coverage, list_hybrid, insert, paired_mismatch, reads_tested, read_match) + chkp.save(self.dir_chk, core_id, idx_seq) def end(self,core_id): if (self.test_mode==False and self.chk_freq!=0) :