Как я могу удалить кронштейны и скобки в конце слов?Python

Программы на Python
Anonymous
Как я могу удалить кронштейны и скобки в конце слов?

Сообщение Anonymous »

Моя задача состоит в том, чтобы проанализировать имена белков, удаляя кронштейны и скобки в ряду.

Короче говоря, я хочу сохранить слова перед любыми скобками и скобками.

Обратите внимание, что мне нужно сохранить символы в основных словах, таких как H (+) /Cl (). class = "lang-py prettyprint-override">data = {
"Entry": ["A0A087X1C5", "A0A0B4J2F0", "O00468", "P51797", "O75164"],
"Reviewed": ["reviewed"] * 5,
"Entry Name": ["CP2D7_HUMAN", "PIOS1_HUMAN", "AGRIN_HUMAN", "CLCN6_HUMAN", "KDM4A_HUMAN"],
"Protein names": [
"Putative cytochrome P450 2D7 (EC 1.14.14.1)",
"Protein PIGBOS1 (PIGB opposite strand protein 1)",
"Agrin [Cleaved into: Agrin N-terminal 110 kDa subunit; Agrin C-terminal 110 kDa subunit; Agrin C-terminal 90 kDa fragment (C90); Agrin C-terminal 22 kDa fragment (C22)]",
"H(+)/Cl(-) exchange transporter 6 (Chloride channel protein 6) (ClC-6) (Chloride transport protein 6)",
"Lysine-specific demethylase 4A (EC 1.14.11.66) (EC 1.14.11.69) (JmjC domain-containing histone demethylation protein 3A) (Jumonji domain-containing protein 2A) ([histone H3]-trimethyl-L-lysine(36) demethylase 4A) ([histone H3]-trimethyl-L-lysine(9) demethylase 4A)"
],
"Gene Names": ["CYP2D7", "PIGBOS1", "AGRN AGRIN", "CLCN6 KIAA0046", "KDM4A JHDM3A JMJD2 JMJD2A KIAA0677"],
"Length": [515, 54, 2068, 869, 1064],
"STRING": [None, "9606.ENSP00000484893", "9606.ENSP00000368678", "9606.ENSP00000234488", "9606.ENSP00000361473"]
}

# Load into DataFrame
df = pd.DataFrame(data)
< /code>
result = {
"Entry": ["A0A087X1C5", "A0A0B4J2F0", "O00468", "P51797", "O75164"],
"Reviewed": ["reviewed"] * 5,
"Entry Name": ["CP2D7_HUMAN", "PIOS1_HUMAN", "AGRIN_HUMAN", "CLCN6_HUMAN", "KDM4A_HUMAN"],
"Protein names": [
"Putative cytochrome P450 2D7",
"Protein PIGBOS1",
"Agrin",
"H(+)/Cl(-) exchange transporter 6",
"Lysine-specific demethylase 4A"
],
"Gene Names": ["CYP2D7", "PIGBOS1", "AGRN AGRIN", "CLCN6 KIAA0046", "KDM4A JHDM3A JMJD2 JMJD2A KIAA0677"],
"Length": [515, 54, 2068, 869, 1064],
"STRING": [None, "9606.ENSP00000484893", "9606.ENSP00000368678", "9606.ENSP00000234488", "9606.ENSP00000361473"]
}

# Expected result
result_df = pd.DataFrame(result)
< /code>
Когда я попробовал первый подход, он удалил все скобки и скобки без учета промежуточных символов.df['Protein names'] = df["Protein names"].str.replace(r'\s*(\(|\[).*?(\)|\])\s*$', '', regex=True).str.strip()

# Before
# H(+)/Cl(-) exchange transporter 6 (Chloride channel protein 6) (ClC-6) (Chloride transport protein 6)
# After
# H
< /code>
Я также попробовал пошаговый процесс, используя второй код, но он также удалил промежуточные символы.df["Protein names"] = df["Protein names"].str.split(' \(').str[0].str.strip()
df["Protein names"] = df["Protein names"].str.split(' \[').str[0].str.strip()

# Before
# Very-long-chain (3R)-3-hydroxyacyl-CoA dehydratase 1 (EC 4.2.1.134) (3-hydroxyacyl-CoA dehydratase 1) (HACD1) (Cementum-attachment protein) (CAP) (Protein-tyrosine phosphatase-like member A)
# After
# Very-long-chain


Подробнее здесь: https://stackoverflow.com/questions/797 ... d-of-words

Вернуться в «Python»