теперь у меня есть два файла, file1
— это файл последовательности, а file2
— область привязки с оценкой предсказания, file1
выглядит так:
другой file2
выглядит так:
теперь я хочу сопоставить оценку прогноза с последовательностью (более 100 последовательностей), результат, который я хочу:
Как я мог получить результат? Спасибо!
Я пытался использовать pd.str.match()
, но он не может совпадать в несколько строк одновременно.
Вы можете попробовать что-то вроде этого
file1 = file1.reset_index()
file2 = file2.set_index("id")
for seq_id in file1.columns:
region = file2.loc[seq_id, "region"]
score = file2.loc[seq_id, "score"]
seq = "".join(file1[seq_id].tolist())
seq_start_index = seq.find(region)
seq_stop_index = start_index + len(region) - 1
file1[f"{seq_id} score"] = 0
file1.loc[seq_start_index:seq_stop_index, f"{seq_id} score"] = score
Я бы сделал примерно то же самое, просто имейте в виду, что str.find
возвращает только первое совпадение, вам может понадобиться re.finditer
, чтобы получить несколько совпадений :)
pandas
здесь вам не поможет. Вы должны прочитать файл (ы) в строку, где вы можете выполнять простой поиск строк.