@@ -399,27 +399,27 @@ def arg_unwrappers(args, arguments=None):
399399
400400def oneclickjson (path ):
401401 arguments = []
402- for fh in os .listdir (os .path .join (path , "artifacts/ " )):
402+ for fh in os .listdir (os .path .join (path , "artifacts" )):
403403 if fnmatch .fnmatch (fh , "*.fas" ):
404404 arguments .append ({})
405405 fh = fh .split ("." )[0 ]
406- arguments [- 1 ]['serialization-path' ] = os .path .abspath ( os .path .join (path , "artifacts/ {0}.p" .format (fh )))
406+ arguments [- 1 ]['serialization-path' ] = os .path .abspath ( os .path .join (path , "artifacts" , " {0}.p" .format (fh )))
407407
408- arguments [- 1 ]['fasta-path' ] = os .path .abspath (os .path .join (path , "artifacts/ {0}.fas" .format (fh )))
408+ arguments [- 1 ]['fasta-path' ] = os .path .abspath (os .path .join (path , "artifacts" , " {0}.fas" .format (fh )))
409409
410410 arguments [- 1 ]['minimum-length' ] = 0
411411
412412 arguments [- 1 ]['maximum-length' ] = float ('inf' )
413- arguments [- 1 ]['taxdump-path' ] = os .path .abspath (os .path .join (path , "artifacts/ taxdump.tar.gz" ))
413+ arguments [- 1 ]['taxdump-path' ] = os .path .abspath (os .path .join (path , "artifacts" , " taxdump.tar.gz" ))
414414
415415 arguments [- 1 ]['acc-to-taxid-paths' ] = []
416- for fp in os .listdir (os .path .join (path ,"artifacts/ " )):
416+ for fp in os .listdir (os .path .join (path ,"artifacts" )):
417417 if fnmatch .fnmatch (fp , "*accession2taxid*" ):
418- arguments [- 1 ]['acc-to-taxid-paths' ].append (os .path .abspath (os .path .join (path ,"artifacts/ " ,fp )))
418+ arguments [- 1 ]['acc-to-taxid-paths' ].append (os .path .abspath (os .path .join (path ,"artifacts" ,fp )))
419419
420420 arguments [- 1 ]['rollup-rank' ] = "species"
421421
422- with open (os .path .abspath (os .path .join (path ,"artifacts/ {0}.json" .format (fh ))), "w" ) as file :
422+ with open (os .path .abspath (os .path .join (path ,"artifacts" , " {0}.json" .format (fh ))), "w" ) as file :
423423 json .dump (arguments [- 1 ], file , sort_keys = True , indent = 4 )
424424
425425 return arguments
@@ -474,7 +474,10 @@ def ftp_dl(x):
474474 connection .login ()
475475
476476 while x :
477- fp_path = x .pop ()
477+ try :
478+ fp_path = x .pop ()
479+ except IndexError :
480+ break
478481 raw_path = fp_path [0 ]
479482 fp_path = fp_path [1 ]
480483 try :
@@ -582,17 +585,18 @@ def pull(path="",thread_count=1,databases ={"genbank"} ):
582585 continue
583586 except :
584587 pass
585- if line [11 ].strip ().decode ().lower ().replace (" " , "_" ) in databases :
588+ db = line [11 ].strip ().decode ().lower ().replace (" " , "_" )
589+ if db in databases :
586590 try :
587591 temp = line [19 ].split (ftp_path .encode (),1 )[1 ].decode ()
588592 temp_path = "{0}/{1}_genomic.gbff.gz" .format (temp , os .path .basename (temp ))
589593 except :
590594 continue
591595 try :
592- level2path [line [ 11 ]. strip ()].append (temp_path )
596+ level2path [db . encode ()].append (temp_path )
593597 except :
594- level2path [line [ 11 ]. strip ()] = [temp_path ]
595- to_download .append ((os .path .join (raw_path ,"flat_files/ " ),temp_path ))
598+ level2path [db . encode ()] = [temp_path ]
599+ to_download .append ((os .path .join (raw_path ,"flat_files" ),temp_path ))
596600
597601 reader = BytesIO ()
598602 connection .retrbinary ("RETR {0}{1}" .format (assembly_gb ,assembly_gb_summary ) ,reader .write )
@@ -609,32 +613,32 @@ def pull(path="",thread_count=1,databases ={"genbank"} ):
609613 continue
610614 except :
611615 pass
612-
613- if line [ 11 ]. strip (). decode (). lower (). replace ( " " , "_" ) in databases :
616+ db = line [ 11 ]. strip (). decode (). lower (). replace ( " " , "_" )
617+ if db in databases :
614618 try :
615619 temp = line [19 ].split (ftp_path .encode (),1 )[1 ].decode ()
616620 temp_path = "{0}/{1}_genomic.gbff.gz" .format (temp , os .path .basename (temp ))
617621 except :
618622 continue
619623 try :
620- level2path [line [ 11 ]. strip ()].append (temp_path )
624+ level2path [db . encode ()].append (temp_path )
621625 except :
622- level2path [line [ 11 ]. strip ()] = [temp_path ]
626+ level2path [db . encode ()] = [temp_path ]
623627
624628 to_download .append ((os .path .join (raw_path ,"flat_files/" ), temp_path ) )
625629 artifacts = [(os .path .join (raw_path ,"artifacts/" ),"/pub/taxonomy/taxdump.tar.gz" )]
626630 tax_path = "/pub/taxonomy/accession2taxid/"
627631 for file in connection .nlst (tax_path ):
628632 if not fnmatch .fnmatch (os .path .basename (file ), 'dead*' ) and not fnmatch .fnmatch (file , '*md5' ):
629- artifacts .append ((os .path .join (raw_path ,"artifacts/ " ),file ))
633+ artifacts .append ((os .path .join (raw_path , "artifacts" ), file ))
630634
631635 man = Manager ()
632636 connection .quit ()
633637 to_download += artifacts
634638 to_download = man .list (to_download )
635639
636640 proc = [Process (target = ftp_dl , args = (to_download ,)) for i in range (thread_count )]
637- with open (os .path .join (raw_path ,"artifacts/ ftp_dl.log" ), "w" ):
641+ with open (os .path .join (raw_path ,"artifacts" , " ftp_dl.log" ), "w" ):
638642 pass
639643 for p in proc :
640644 p .start ()
@@ -647,7 +651,7 @@ def pull(path="",thread_count=1,databases ={"genbank"} ):
647651 fp = "{0}_ff.txt" .format (i .decode ().replace (" " ,"_" ))
648652 with open (os .path .join (raw_path ,"artifacts/" ,fp ), "w" ) as out_file :
649653 for line in level2path [i ]:
650- out_file .write ("{0}\n " .format (os .path .join (os .path .abspath (raw_path ),"flat_files/" ,os .path .basename (line ))))
654+ out_file .write ("{0}\n " .format (os .path .join (os .path .abspath (raw_path ),"flat_files/" , os .path .basename (line ))))
651655 return string_date
652656
653657if __name__ == "__main__" :
0 commit comments