首先我的資料結構是csv格式,columns為化合物id.值為化合物所對應的uniprots:
現在想把格式轉化為更方便後續處理的格式:
上**:
import numpy as np
import pandas as pd
import os
import re
defiter_files
(path)
:# get all file_path under one folder
file_names =
for root,dirs,files in os.walk(path)
:for
file
in files:
file_name = os.path.join(root,
file
)return file_names
defdata_reconsitution
(path)
:# data reconsititution without smiles
files = iter_files(path)
forfile
in files:
if re.findall(
'\d+_\d+.csv'
,file
):
df = pd.read_csv(
file
).iloc[:,
1:] ids = df.columns
uniprots =
[list
(df[i]
[df[i]
.notnull()]
)for i in ids]
uniprots_num =
[len
(u)for u in uniprots]
values =
[file
.split(
'\\')[
4]]*
len(ids)
df_outcome = pd.dataframe(
)
df_outcome.to_csv(
file
,index =
false
)print
('{} finished'
.format
(file))
defdb_dic_smiles
(path)
:# get bingdingdb's cid_smiles dic
dic =
files = os.listdir(path)
out_files = iter_files(out_path)
forfile
in files:
df = pd.read_csv(os.path.join(path,
file))
dic.update(
)print
('{} dic finished'
.format
(file))
defpc_dic_smiles
(path_1)
:# get pubchem's cid_smiles dic(after downloading by webservice)
files = os.listdir(path_1)
dic =
forfile
in files:
df = pd.read_csv(os.path.join(path_1,
file
),sep =
'\t'
) dic.update(
)print
('{} dic finished'
.format
(file))
defcb_dic_smiles
(path_1,path_2)
:# get chembl's cid_smiles dic,add "file_fail" because of the complexity of chembl's origin data
files_1 = os.listdir(path_1)
files_2 = os.listdir(path_2)
out_files = iter_files(out_path)
dic =
file_fail =
for file_1 in files_1:
try:
df = pd.read_csv(os.path.join(path_1,file_1)
) dic.update(
)print
('{} dic finished'
.format
(file_1)
)except exception as e:
print
(e)pass
for file_2 in files_2:
try:
df = pd.read_csv(os.path.join(path_2,file_2)
) dic.update(
)print
('{} dic finished'
.format
(file_2)
)except exception as e:
print
(e)pass
defsmile_columns
(path)
# add smile columns for data outcome
files = iter_files(path)
forfile
in files:
if re.findall(
'\d+_\d+.csv'
,file):
df_out = pd.read_csv(
file
,sep =
',')
df_out[
'smiles'
]= df_out[
'id'].
map(
lambda x :dic[
str(x)])
df_out.to_csv(
file
)print
('{} finished'
.format
(file
))
初始的批量檔案路徑檔案記得要在前加上"file:檔案路徑" 才可以作為變數迴圈讀取.
以文字檔案作為file reader的輸入,每一行代表乙個檔案路徑.
利用excel取資料並拿到響應結果
減少手動操作重複勞動,在測試過程中直接沿用之前的資料 和xx一樣 1.通過入參 zmx 結果 查到資料庫表中應該在哪個sheetname新增資料 2.找到該sheetname所在的位置filepath 3.通過某一列 說明 查到excel中符合條件的第一條資料,4.將第一條資料複製到新的乙個exec...
利用excel取資料並拿到響應結果 二
1.解決第一篇遇到null pointer的問題 位置 for cell cell row 迴圈取單元格的內容的時候如果遇到空的單元格或者沒有填值的單元格取得時候報錯 解決方法 新增對空或著無值的處理 方法一 如果空或著無值強制賦值空字串 if row.getcell cellnumber null...
使用List儲存搜尋結果,資料重複
在構造搜尋引擎時,後台搜尋 為了與前端顯示結合,方便分頁,沒有直接使用lucene的hits。而是根據頁面的請求,將hits中的相應條目存入list結構中,前端顯示時讀取list的內容,顯示在螢幕上。在針對乙個關鍵字搜尋 排序 過濾時,顯示的結果均正常,使用兩個關鍵字,即先根據乙個關鍵字查詢,在結果...