я получил формат данных, как:сортировки данных с помощью ключа в питона
ATOM 124 N GLU B 12
ATOM 125 O GLU B 12
ATOM 126 OE1 GLU B 12
ATOM 127 C GLU B 12
ATOM 128 O GLU B 14
ATOM 129 N GLU B 14
ATOM 130 OE1 GLU B 14
ATOM 131 OE2 GLU B 14
ATOM 132 CA GLU B 14
ATOM 133 C GLU B 15
ATOM 134 CA GLU B 15
ATOM 135 OE2 GLU B 15
ATOM 136 O GLU B 15
.....100+ lines
Отсюда, я хочу, чтобы отфильтровать данные, основанные на col[5]
(начиная колонки отсчет от 0) и col[2]
. Per value
от col[5]
, если OE1
или OE2
происходит только один раз, после чего набор данных должен быть отброшен. Но для каждого значения col[5]
, если OE1
и OE2
оба присутствуют, он будет сохранен.
Нужные данные после фильтрации:
ATOM 128 O GLU B 14
ATOM 129 N GLU B 14
ATOM 130 OE1 GLU B 14
ATOM 131 OE2 GLU B 14
ATOM 132 CA GLU B 14
Я попытался с помощью search_string
как:
for item in stored_list:
search_str_a = 'OE1'+item[3]+item[4]+item[5]
search_str_b = 'OE2'+item[3]+item[4]+item[5]
target_str = item[2]+item[3]+item[4]+item[5]
Это полезно для поддержания остальной col
, так при поиске OE1
или OE2
, но не полезно фильтровать и устранять, если отсутствует один из них (или их обоих).
Любые идеи были бы очень хорошими здесь.
Итак, вы хотите сохранить 'col [5] = 14'? – Kasramvd
для одного значения 'col [5]' нам нужно выполнить поиск 'col [3]' и после принятия решений относительно хранения данных или отбрасывания (в зависимости от наличия как 'OE1', так и' OE2') мы повторяем значение 'col [5]' и продолжать поиск таким же образом @Avinash Raj Это моя идея до сих пор. – diffracteD
Вы должны упомянуть, что вы разбираете файлы PDB, так как там * есть биоинформатики. В этом случае проверьте модуль Biopython ['Bio.PDB'] (http://biopython.org/wiki/The_Biopython_Structural_Bioinformatics_FAQ). Я не имею ни малейшего понятия, какую информацию вы пытаетесь получить здесь, так как ваш вопрос довольно неясен, но чтение через связанный FAQ поможет вам в значительной степени. – MattDMo