import pandas as pd
from collections import Counter
import numpy as np
K=7
dataO = pd.read_table('homoN.txt', header=None, delim_whitespace=True)
PepN = dataO.values
ll=17
sap=list()
AM = 'ACDEFGHIKLMNPQRSTVWYX';
for i in range(0, 21):
for j in range(0, 21):
sap.append(AM[i]+AM[j]);
(m, n) = PepN.shape
for k in range(0,K):
saap = np.zeros((m, 441,K))
for i in range(0,m):
pep = list()
a=PepN[i];
b=a[0]
for j in range(0,len(b)):
if j+k+1<len(b):
pep.append(b[j]+b[j+k+1]);
elif j+k+1>=len(b):
pep.append(b[j]+'X');
result = Counter(pep)
ss =list(result.keys())
val = list(result.values())
for kk in range(0,len(ss)):
mk = sap.index(ss[kk]);
saap[i,mk,k] = val[kk]/441;
saapAll = np.concatenate((saap[:,:,0],saap[:,:,1],saap[:,:,2],saap[:,:,3],saap[:,:,4],saap[:,:,5],saap[:,:,6]),axis=1)
print(saapAll)
这个改写了也没用,因为java里面没有pandas numpy和counter
你不但要将这些代码改写,还要模拟实现read_table concatenate 等等这些函数
工作量不小