|
@@ -1,6 +1,9 @@
|
|
import json
|
|
import json
|
|
import logging
|
|
import logging
|
|
|
|
+import time
|
|
|
|
+
|
|
import matplotlib
|
|
import matplotlib
|
|
|
|
+
|
|
matplotlib.use('Agg')
|
|
matplotlib.use('Agg')
|
|
import pandas as pd
|
|
import pandas as pd
|
|
from pandas.api.types import is_string_dtype
|
|
from pandas.api.types import is_string_dtype
|
|
@@ -27,6 +30,7 @@ from celery.utils.log import get_task_logger
|
|
|
|
|
|
logger = get_task_logger(__name__)
|
|
logger = get_task_logger(__name__)
|
|
|
|
|
|
|
|
+
|
|
@shared_task
|
|
@shared_task
|
|
def get_AUC(order_id):
|
|
def get_AUC(order_id):
|
|
matplotlib.use('Agg')
|
|
matplotlib.use('Agg')
|
|
@@ -85,22 +89,6 @@ def get_AUC(order_id):
|
|
plt.savefig(base_path + name + '.png')
|
|
plt.savefig(base_path + name + '.png')
|
|
# plt.show()
|
|
# plt.show()
|
|
|
|
|
|
- def a_curve(clf, X_test, y_test, name):
|
|
|
|
- plt.plot(X_test, y_test, color='darkorange',
|
|
|
|
- lw=2, label='ROC curve (arebody = json.loads(request.body)a = %0.2f)' % auc(fpr_rf, tpr_rf))
|
|
|
|
- plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
|
|
|
|
- plt.xlim([0.0, 1.0])
|
|
|
|
- plt.ylim([0.0, 1.05])
|
|
|
|
- plt.xlabel('False Positive Rate')
|
|
|
|
- plt.ylabel('True Positive Rate')
|
|
|
|
- # plt.title('Receiver operating characteristic example')
|
|
|
|
- plt.title(name)
|
|
|
|
- plt.legend(loc="lower right")
|
|
|
|
- # plt.savefig(plt.savefig('figs/savefig_example.png'))
|
|
|
|
-
|
|
|
|
- plt.savefig(base_path + name + '.png')
|
|
|
|
-
|
|
|
|
-
|
|
|
|
logger.info('797979')
|
|
logger.info('797979')
|
|
# 读取非胃癌数据
|
|
# 读取非胃癌数据
|
|
data_health = pyreadr.read_r(str(files[0].file_path)) # 'COAD.Rdata'
|
|
data_health = pyreadr.read_r(str(files[0].file_path)) # 'COAD.Rdata'
|
|
@@ -124,6 +112,53 @@ def get_AUC(order_id):
|
|
# 计算基因数目
|
|
# 计算基因数目
|
|
list_final = gene_list + ['Tumor_Sample_Barcode', 'D']
|
|
list_final = gene_list + ['Tumor_Sample_Barcode', 'D']
|
|
data_final = pd.DataFrame(columns=list_final)
|
|
data_final = pd.DataFrame(columns=list_final)
|
|
|
|
+
|
|
|
|
+ def save_Variant_Type():
|
|
|
|
+ Variant_Type = data['Variant_Type'].value_counts()
|
|
|
|
+ # 创建一个条形图
|
|
|
|
+ plt.bar(Variant_Type.index, Variant_Type.values)
|
|
|
|
+ # 添加标题和轴标签
|
|
|
|
+ plt.title('Variant Type Counts')
|
|
|
|
+ plt.xlabel('Variant Type')
|
|
|
|
+ plt.ylabel('Count')
|
|
|
|
+ # 保存图形为 PNG 文件
|
|
|
|
+ plt.savefig(base_path + 'Variant_Type' + '.png')
|
|
|
|
+
|
|
|
|
+ def save_Variant_Type2(name, max_value=100):
|
|
|
|
+ Variant_Type2 = data[name].value_counts()
|
|
|
|
+ # 创建一个条形图
|
|
|
|
+ plt.plot(Variant_Type2.values, Variant_Type2.index)
|
|
|
|
+ plt.ylim([0.0, max_value])
|
|
|
|
+ plt.xlim([0.0, len(Variant_Type2.index)])
|
|
|
|
+ # 添加标题和轴标签
|
|
|
|
+ plt.title(name)
|
|
|
|
+ plt.xlabel(name)
|
|
|
|
+ plt.ylabel('Count')
|
|
|
|
+ # 保存图形为 PNG 文件
|
|
|
|
+ plt.savefig(base_path + name + '.png')
|
|
|
|
+
|
|
|
|
+ time.sleep(1)
|
|
|
|
+ save_Variant_Type()
|
|
|
|
+ time.sleep(1)
|
|
|
|
+ save_Variant_Type2('t_ref_count', max_value=1000)
|
|
|
|
+ time.sleep(1)
|
|
|
|
+ save_Variant_Type2('t_alt_count', max_value=1000)
|
|
|
|
+ time.sleep(1)
|
|
|
|
+ save_Variant_Type2('t_depth', max_value=1000)
|
|
|
|
+ time.sleep(1)
|
|
|
|
+ # 绘制图像
|
|
|
|
+ # plt.imshow(data['t_depth'])
|
|
|
|
+ # 保存为图片文件
|
|
|
|
+ # plt.savefig(base_path + "t_depth.png", format='png')
|
|
|
|
+
|
|
|
|
+ # t_depth
|
|
|
|
+ #
|
|
|
|
+ # t_ref_count
|
|
|
|
+ #
|
|
|
|
+ # t_alt_count
|
|
|
|
+ #
|
|
|
|
+ # n_depth
|
|
|
|
+
|
|
ind = 0
|
|
ind = 0
|
|
for sample in sample_list:
|
|
for sample in sample_list:
|
|
tempdata = data[data['Tumor_Sample_Barcode'] == sample]
|
|
tempdata = data[data['Tumor_Sample_Barcode'] == sample]
|
|
@@ -152,7 +187,7 @@ def get_AUC(order_id):
|
|
logger.info('3333')
|
|
logger.info('3333')
|
|
# ROC绘图 SC_GRS方法
|
|
# ROC绘图 SC_GRS方法
|
|
ROC_curve(clf, X_test, y_test, name='SC_GRS')
|
|
ROC_curve(clf, X_test, y_test, name='SC_GRS')
|
|
- logger.info('130130130130 '+ base_path + 'gene_list.npy')
|
|
|
|
|
|
+ logger.info('130130130130 ' + base_path + 'gene_list.npy')
|
|
# 模型预测,假设data_final是输入数据,注意,data_final已经是处理好对应的基因数目的数据
|
|
# 模型预测,假设data_final是输入数据,注意,data_final已经是处理好对应的基因数目的数据
|
|
# 模型加载
|
|
# 模型加载
|
|
gene_list = np.load(base_path + 'gene_list.npy')
|
|
gene_list = np.load(base_path + 'gene_list.npy')
|
|
@@ -165,7 +200,10 @@ def get_AUC(order_id):
|
|
y_pre = clf.predict(X_test) # 分类结果预测
|
|
y_pre = clf.predict(X_test) # 分类结果预测
|
|
prob_pre = clf.predict_proba(X_test) # 结果概率预测
|
|
prob_pre = clf.predict_proba(X_test) # 结果概率预测
|
|
logger.info('4444')
|
|
logger.info('4444')
|
|
- # logger.info(95, prob_pre)
|
|
|
|
|
|
+ # 绘制图像
|
|
|
|
+ plt.imshow(prob_pre)
|
|
|
|
+ # 保存为图片文件
|
|
|
|
+ plt.savefig(base_path + "SC_GRS_prob_pre.png", format='png')
|
|
|
|
|
|
# -------------------------------------DL_GRS方法-----------------------------------------
|
|
# -------------------------------------DL_GRS方法-----------------------------------------
|
|
# 模型训练
|
|
# 模型训练
|
|
@@ -189,7 +227,10 @@ def get_AUC(order_id):
|
|
X_test = data_final[gene_list]
|
|
X_test = data_final[gene_list]
|
|
y_pre = clf.predict(X_test) # 分类结果预测
|
|
y_pre = clf.predict(X_test) # 分类结果预测
|
|
prob_pre = clf.predict_proba(X_test) # 结果概率预测
|
|
prob_pre = clf.predict_proba(X_test) # 结果概率预测
|
|
- # logger.info(119, prob_pre)
|
|
|
|
|
|
+ # 绘制图像
|
|
|
|
+ plt.imshow(prob_pre)
|
|
|
|
+ # 保存为图片文件
|
|
|
|
+ plt.savefig(base_path + "DL_GRS_prob_pre.png", format='png')
|
|
|
|
|
|
# -------------------------------------OR_GRS方法-----------------------------------------
|
|
# -------------------------------------OR_GRS方法-----------------------------------------
|
|
# or值计算
|
|
# or值计算
|
|
@@ -224,6 +265,10 @@ def get_AUC(order_id):
|
|
X_test = (data_final[gene_list] * omega_or).sum(axis=1).values.reshape(-1, 1)
|
|
X_test = (data_final[gene_list] * omega_or).sum(axis=1).values.reshape(-1, 1)
|
|
y_pre = clf.predict(X_test) # 分类结果预测
|
|
y_pre = clf.predict(X_test) # 分类结果预测
|
|
prob_pre = clf.predict_proba(X_test) # 结果概率预测
|
|
prob_pre = clf.predict_proba(X_test) # 结果概率预测
|
|
|
|
+ # 绘制图像
|
|
|
|
+ plt.imshow(prob_pre)
|
|
|
|
+ # 保存为图片文件
|
|
|
|
+ plt.savefig(base_path + "OR_GRS_prob_pre.png", format='png')
|
|
# logger.info(154, prob_pre)
|
|
# logger.info(154, prob_pre)
|
|
# 更新order状态
|
|
# 更新order状态
|
|
try:
|
|
try:
|