comparison util/Reader.py @ 0:bc00f5c4c59e draft

planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git
author yating-l
date Tue, 17 Oct 2017 17:28:05 -0400
parents
children 2ae1e96a8380
comparison
equal deleted inserted replaced
-1:000000000000 0:bc00f5c4c59e
1 import json
2 import re
3 import logging
4 import codecs
5 from apollo.ApolloUser import ApolloUser
6 from util import santitizer
7
8 class Reader(object):
9
10 def __init__(self, input_json_file):
11 self.inputFile = input_json_file
12 self.args = self.loadJson()
13
14
15 def loadJson(self):
16 try:
17 data_file = codecs.open(self.inputFile, 'r', 'utf-8')
18 return json.load(data_file)
19 except IOError:
20 print "Cannot find JSON file\n"
21 exit(1)
22
23 def getJBrowseHubDir(self):
24 try:
25 return self.args["jbrowse_hub"]
26 except KeyError:
27 print ("jbrowse_hub is not defined in the input file!")
28 exit(1)
29
30 def getToolDir(self):
31 try:
32 return self.args["tool_directory"]
33 except KeyError:
34 print ("tool_directory is not defined in the input file!")
35 exit(1)
36
37 def getExtFilesPath(self):
38 try:
39 return self.args["extra_files_path"]
40 except KeyError:
41 print ("extra_files_path is not defined in the input file!")
42 exit(1)
43
44 def getUserEmail(self):
45 try:
46 return self.args["user_email"]
47 except KeyError:
48 print ("user_email is not defined in the input file!")
49 exit(1)
50
51 def getDebugMode(self):
52 try:
53 return self.args["debug_mode"]
54 except KeyError:
55 print ("debug_mode is not defined in the input file!")
56 exit(1)
57
58 def getApolloHost(self):
59 apollo_host = self.args.get("apollo_host")
60 return apollo_host
61
62
63 def getSpeciesName(self):
64 species_name = santitizer.sanitize_name_input(self.args["species_name"])
65 return species_name
66
67 def getGenomeName(self):
68 jbrowse_hub = self.getJBrowseHubDir()
69 with open(jbrowse_hub, 'r') as f:
70 html = f.read()
71 m = re.search('The new Organism "(.+?)" is created on Apollo', html)
72 if m:
73 genome_name = m.group(1)
74 else:
75 print("Cannot find genome name in the jbrowse hub file!")
76 exit(1)
77 return genome_name
78
79
80 def getApolloUser(self):
81 user_info = self.args.get("apollo_user")
82 if not user_info:
83 firstname = "demo"
84 lastname = "user"
85 password = "gonramp"
86 user_email = self.getUserEmail()
87 else:
88 firstname = user_info['firstname']
89 lastname = user_info['lastname']
90 user_email = user_info['user_email']
91 password = user_info['password']
92 apollo_user = ApolloUser(user_email, firstname, lastname, password)
93 return apollo_user
94
95