Diff of /app.py [000000] .. [978f77]

Switch to unified view

a b/app.py
1
import os
2
import xlrd
3
import pickle
4
import openpyxl
5
import numpy as np
6
import urllib.request, json 
7
from flask import Flask, render_template
8
from flask import request, jsonify
9
from werkzeug.utils import secure_filename
10
from livereload import Server
11
12
13
app = Flask(__name__)
14
model = pickle.load(open('model.pkl', 'rb'))
15
16
@app.route('/')
17
def home():
18
    return render_template('home.html')
19
20
@app.route('/page')
21
def page():
22
    return render_template('page.html')
23
24
@app.route('/result')
25
def result():
26
    return render_template('result.html')
27
28
@app.route('/gene')
29
def gene():
30
    return render_template('gene.html')
31
32
@app.route('/predict',methods=['GET', 'POST'])
33
def predict():
34
    '''
35
    For rendering results on HTML GUI
36
    '''
37
    if request.method == 'POST':
38
        f = request.files['file']
39
        f.filename = 'patient_data.xlsx'
40
        f.save(secure_filename(f.filename))
41
        # return 'file uploaded successfully'
42
43
    path = 'patient_data.xlsx'
44
    wb_obj = openpyxl.load_workbook(path)
45
    sheet_obj = wb_obj.active
46
    # print(sheet_obj.cell(row = 2, column = 1).value)
47
48
    d1 = sheet_obj.cell(row = 2, column = 2).value
49
    d2 = sheet_obj.cell(row = 2, column = 3).value
50
    d3 = sheet_obj.cell(row = 2, column = 4).value
51
    d4 = sheet_obj.cell(row = 2, column = 5).value
52
    d5 = sheet_obj.cell(row = 2, column = 6).value
53
    d6 = sheet_obj.cell(row = 2, column = 7).value
54
    d7 = sheet_obj.cell(row = 2, column = 8).value
55
    d8 = sheet_obj.cell(row = 2, column = 9).value
56
    d9 = sheet_obj.cell(row = 2, column = 10).value
57
    d10= sheet_obj.cell(row = 2, column = 11).value
58
    d11= sheet_obj.cell(row = 2, column = 12).value
59
    d12= sheet_obj.cell(row = 2, column = 13).value
60
    d13= sheet_obj.cell(row = 2, column = 14).value
61
    d14= sheet_obj.cell(row = 2, column = 15).value
62
    d15= sheet_obj.cell(row = 2, column = 16).value
63
    d16= sheet_obj.cell(row = 2, column = 17).value
64
    d17= sheet_obj.cell(row = 2, column = 18).value
65
    d18= sheet_obj.cell(row = 2, column = 19).value
66
    d19= sheet_obj.cell(row = 2, column = 20).value
67
    d20= sheet_obj.cell(row = 2, column = 21).value
68
    arr=np.array([[d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20]])
69
70
    #int_features = [int(x) for x in request.form.values()]
71
    #final_features = [np.array(int_features)]
72
    prediction = model.predict(arr)
73
74
    output = prediction[0]
75
    if output==0:
76
        print("Chemotherapy Not Suitable")
77
    else:
78
        print("Chemotherapy Suitable")
79
    return render_template('result.html', data=prediction, prediction_text='{}'.format(output))
80
81
@app.route('/predict1',methods=['POST'])
82
def predict1():
83
    '''
84
    For rendering results on HTML GUI
85
    '''
86
    d1= request.form['a']
87
    d2= request.form['b']
88
    d3= request.form['c']
89
    d4= request.form['d']
90
    d5= request.form['e']
91
    d6= request.form['f']
92
    d7= request.form['g']
93
    d8= request.form['h']
94
    d9= request.form['i']
95
    d10= request.form['j']
96
    d11=request.form['k']
97
    d12= request.form['l']
98
    d13= request.form['m']
99
    d14= request.form['n']
100
    d15= request.form['o']
101
    d16= request.form['p']
102
    d17= request.form['q']
103
    d18= request.form['r']
104
    d19= request.form['s']
105
    d20= request.form['t']
106
    arr=np.array([[d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20]])
107
108
    #int_features = [int(x) for x in request.form.values()]
109
    #final_features = [np.array(int_features)]
110
    prediction1 = model.predict(arr)
111
112
    output = prediction1[0]
113
    if output==0:
114
        print("Chemotherapy Not Suitable")
115
    else:
116
        print("Chemotherapy Suitable")
117
    return render_template('result.html', data=prediction1, prediction_text='{}'.format(output))
118
119
@app.route('/search',methods=['POST'])
120
def search():
121
    if request.method == 'POST':
122
        word = request.form['query']
123
        search_word = word.upper()
124
        print(search_word)
125
        link = "https://clinicaltables.nlm.nih.gov/api/ncbi_genes/v3/search?terms="+search_word
126
        with urllib.request.urlopen(link) as url:
127
            data = json.loads(url.read().decode())
128
            # print(data)
129
    return jsonify({ 'htmlresponse': render_template('table.html', data = data, n = int(len(data[1])), word = search_word ) })
130
131
if __name__ == "__main__":
132
    # app.run(debug=True)
133
    server = Server(app.wsgi_app)
134
    server.serve()