comparison data_manager_amrfinderplus/data_manager/data_manager_amrfinderplus.py @ 4:f119fb382a21 draft

Uploaded
author estrain
date Mon, 23 May 2022 09:55:24 +0000
parents 2c887282d3ef
children d6c3cee5fe48
comparison
equal deleted inserted replaced
3:2c887282d3ef 4:f119fb382a21
10 import re 10 import re
11 import argparse 11 import argparse
12 from ftplib import FTP 12 from ftplib import FTP
13 13
14 14
15 def download_from_ncbi(): 15 def download_from_ncbi(output_direcotry):
16 NCBI_FTP_SERVER = 'ftp.ncbi.nlm.nih.gov' 16 NCBI_FTP_SERVER = 'ftp.ncbi.nlm.nih.gov'
17 FILENAME = 'version.txt' 17 FILENAME = 'version.txt'
18 NCBI_DOWNLOAD_PATH = '/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/latest/' 18 NCBI_DOWNLOAD_PATH = '/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/latest/'
19 19
20 email = 'anonymous@example.com' 20 email = 'anonymous@example.com'
21
22 cwd = os.getcwd()
23 os.chdir(output_directory)
21 24
22 ftp = FTP( NCBI_FTP_SERVER ) 25 ftp = FTP( NCBI_FTP_SERVER )
23 ftp.login( 'anonymous', email) 26 ftp.login( 'anonymous', email)
24 ftp.cwd(NCBI_DOWNLOAD_PATH) 27 ftp.cwd(NCBI_DOWNLOAD_PATH)
25 28
54 with open("version.txt") as f: 57 with open("version.txt") as f:
55 version = f.readline().rstrip() 58 version = f.readline().rstrip()
56 59
57 ftp.quit() 60 ftp.quit()
58 61
62 os.chdir(cwd)
63
59 return version 64 return version
60 65
61 def print_json (version,argspath,argsname,argsout): 66 def print_json (version,argspath,argsname,argsout):
62 67
63 data_table_entry = { 68 data_table_entry = {
81 parser.add_argument('--name', type=str, required=True, nargs=1, help='Database name') 86 parser.add_argument('--name', type=str, required=True, nargs=1, help='Database name')
82 parser.add_argument('--out', type=str, required=True, nargs=1, help='output file') 87 parser.add_argument('--out', type=str, required=True, nargs=1, help='output file')
83 88
84 args = parser.parse_args() 89 args = parser.parse_args()
85 90
91 with open(args.out[0]) as fh:
92 params = json.load(fh)
86 93
87 with open(args.out[0]) as fh: 94 output_directory = params['output_data'][0]['extra_files_path']
88 config = json.load(fh) 95 os.mkdir(output_directory)
89
90 output_directory = config.get("output_data", [{}])[0].get("extra_files_path", None)
91 os.mkdir( output_directory )
92 data_manager_dict = {} 96 data_manager_dict = {}
93 97
94 #Fetch the files and build blast databases 98 #Fetch the files and build blast databases
95 version=download_from_ncbi() 99 version=download_from_ncbi(output_directory)
96 100
97 #shutil.copytree("amrdb",args.path[0]) 101 #shutil.copytree("amrdb",args.path[0])
98 print_json(version,output_directory,args.name[0],args.out[0]) 102 print_json(version,output_directory,args.name[0],args.out[0])
99 103
100 if __name__ == "__main__": main() 104 if __name__ == "__main__": main()