Structure de données Python apprise avec la chimioinfomatique

introduction

Dans le prolongement des variables Python et types de données appris de la chimioinfomatique, nous expliquerons la "structure des données" avec le thème de la lipidomique (analyse complète des lipides). .. Nous expliquerons principalement des exemples pratiques de chimioinfomatique, donc si vous souhaitez vérifier les bases, veuillez lire l'article suivant avant de lire cet article.

Les chercheurs des sociétés pharmaceutiques ont résumé la structure des données de Python

liste

Créer une liste, parcourir les valeurs des éléments, mettre à jour

Une liste est un type de données qui stocke plusieurs éléments et peut être créée avec nom de la liste = [élément 1, élément 2, ...]. L'exemple ci-dessous est une liste qui ne contient que des chaînes de caractères, mais vous pouvez également entrer des nombres et des valeurs booléennes, plusieurs éléments avec la même valeur et un mélange de plusieurs types de données. Les éléments de la liste peuvent être référencés par leur nom de liste [numéro d'index]. Il convient de noter que le numéro d'index commence par «0», pas par «1».

fatty_acids = ['FA 16:0', 'FA 18:0', 'FA 18:1', 'FA 18:2', 'FA 18:3']

print(fatty_acids[0]) #Premier (premier) élément
print(fatty_acids[1]) #Deuxième élément
print(fatty_acids[-1]) #Premier (dernier) élément de l'arrière
print(fatty_acids[2:4]) #3e au 4e éléments
print(fatty_acids[3:]) #4e et suivants éléments
print(fatty_acids[:3]) #Jusqu'à 4 éléments
print(fatty_acids[:-2]) #Le deuxième élément de l'arrière

Vous pouvez mettre à jour la valeur de l'élément avec le numéro d'index spécifié en définissant nom de la liste [numéro d'index] = valeur.

fatty_acids[3] = 'FA 18:2 (6Z, 9Z)'
print(fatty_acids)

À propos, «(6Z, 9Z)» représente la position et le style de la double liaison. «6» et «9» indiquent le nombre d'atomes de carbone formant la double liaison à partir de l'atome de carbone sur le côté opposé de l'acide carboxylique, et «Z» signifie que la double liaison est * cis *. Cela montre que. Si c'est ʻE`, ce sera * trans *. Pour plus de détails sur la structure de l'acide linoléique, veuillez consulter le lien ci-dessous. Linoleic acid (FA 18:2) S'il y a une double liaison, il est nécessaire de spécifier la position et le mode de liaison de la double liaison comme décrit ci-dessus, mais ce sera un peu plus long, donc nous l'omettons à partir de maintenant.

Obtenez le nombre d'éléments dans la liste

Vous pouvez vérifier le nombre d'éléments dans la liste avec len. Au fait, «len» est une abréviation de «longueur».

print(len(fatty_acids))

Calcul de liste

Les opérations de liste les plus couramment utilisées sont «+» et «». Vous pouvez combiner des listes avec «+» et créer une liste avec le nombre spécifié des mêmes éléments avec «».

saturated_fatty_acids = ['FA 16:0', 'FA 18:0'] #Acides gras saturés (acides gras sans doubles liaisons)
unsaturated_fatty_acids = ['FA 18:1', 'FA 18:2', 'FA 18:3'] #Acides gras insaturés (acides gras à doubles liaisons)
fatty_acids = saturated_fatty_acids + unsaturated_fatty_acids #Rejoindre la liste
print(fatty_acids)

number_carbons = [16] + [18]*4 #Joindre et dupliquer la liste
print(number_carbons)

«nombre_carbons» est le nombre d'atomes de carbone dans la liste «acides gras». Puisque «acides gras» contient quatre espèces moléculaires avec 18 atomes de carbone, il est dupliqué avec «*».

Méthode de liste

Les méthodes souvent utilisées dans la liste sont présentées ci-dessous.

fatty_acids = ['FA 16:0', 'FA 18:0', 'FA 18:1', 'FA 18:2', 'FA 18:3']

fatty_acids_copy = fatty_acids.copy() #Faire une copie
print(fatty_acids_copy)

fatty_acids.append('FA 20:4') #Ajouter un élément à la fin
print(fatty_acids)

fatty_acids.extend(['FA 20:5', 'FA 22:6']) #Ajouter plusieurs éléments à la fin
print(fatty_acids)

fatty_acids.insert(1, 'FA 16:1') #Ajouter un élément au numéro d'index spécifié
print(fatty_acids)

fatty_acids.remove('FA 18:3') #Supprimer l'élément spécifié
print(fatty_acids)

print(fatty_acids.pop()) #Supprimer le dernier élément et afficher l'élément supprimé

print(fatty_acids.pop(2)) #Supprimer le troisième élément et afficher l'élément supprimé

fatty_acids.sort(key=None, reverse=True) #Trier les éléments par ordre décroissant
print(fatty_acids)

fatty_acids.sort(key=None, reverse=False) #Trier les éléments par ordre croissant
print(fatty_acids)

print(fatty_acids.index('FA 18:2')) #Numéro d'index de l'élément spécifié
print(fatty_acids.count('FA 18:2')) #Nombre d'éléments spécifiés

.extend (['FA 20: 5', 'FA 22: 6') peut être écrit comme .append (['FA 20: 5', 'FA 22: 6']). Cependant, le résultat de l'exécution changera. Si vous utilisez ʻextend, deux éléments sont ajoutés, "" FA 20: 5 "et" "FA 22: 6", mais si vous utilisez ʻappend, ['FA 20 La liste: 5 ',' FA 22: 6 '] ʻest ajoutée comme un élément. En d'autres termes, si vous utilisez ʻappend, la liste sera incluse dans la liste. Soyez prudent lorsque vous utilisez correctement ʻappend et ʻextend.

Gestion des chaînes de caractères

Les chaînes peuvent être traitées comme des listes. Vous pouvez considérer une chaîne comme une liste à un seul caractère, faire référence au cinquième caractère à partir du début, et ainsi de suite.

palmitic_acid = fatty_acids[0] #Liste "gras_premier élément "acide"
print(palmitic_acid) # FA 16:0
print(palmitic_acid[0]) # 「FA 16:Le premier caractère de la chaîne de caractères "0", c'est-à-dire "F"
print(len(palmitic_acid)) #nombre de mots

lipid_class = palmitic_acid[0:2]
print(lipid_class) # FA
Cn = int(palmitic_acid[3:5])
print(Cn) #16 (valeur numérique)
Un = int(palmitic_acid[6])
print(Un) #0 (valeur numérique)

Application: notation SMILES

En guise d'application, envisagez de compter le nombre d'atomes de carbone et de doubles liaisons d'acides gras en notation SMILES.

smiles_la = 'OC(CCCCCCC/C=C\C/C=C\CCCCC)=O' #Sourires d'acide linoléique

Cn = smiles_la.count('C') #Nombre d'atomes de carbone
Un = smiles_la.count('=') - 1 #Nombre de doubles liaisons dans la chaîne carbonée

linoleic_acid = f'FA {Cn}:{Un}' # f-string
print(linoleic_acid)

Taple

Un tuple est un type de données de type liste qui peut être créé avec tupple name = (élément 1, élément 2, ...). Comme pour la liste, vous pouvez voir la valeur par nom du taple [numéro d'index], mais vous ne pouvez pas mettre à jour la valeur. Donc, si vous souhaitez créer un tableau de données dont vous ne souhaitez pas réécrire la valeur, vous pouvez utiliser taple.

fatty_acids = ('FA 16:0', 'FA 18:0', 'FA 18:1', 'FA 18:2', 'FA 18:3')

print(fatty_acids[0]) #Premier élément
print(fatty_acids[1]) #Deuxième élément
print(fatty_acids[-1]) #Premier élément de l'arrière
print(fatty_acids[2:4]) #3e au 4e éléments
print(fatty_acids[3:]) #4e et suivants éléments
print(fatty_acids[:3]) #Jusqu'à 4 éléments
print(fatty_acids[:-2]) #Le deuxième élément de l'arrière

dictionnaire

Créer un dictionnaire

Un dictionnaire est une correspondance univoque entre des «clés» et des «valeurs», et un tableau de ces combinaisons clé / valeur. Il peut être créé avec nom du dictionnaire = {clé 1: valeur 1, clé 2: valeur 2, ...}.

Cn = 18 #Nombre d'atomes de carbone (longueur de chaîne) d'acide gras
Un = 2 #Nombre de doubles liaisons (insaturation)

num_C = Cn #Nombre d'atomes de carbone dans la molécule entière
num_H = Cn * 2 - Un * 2 #Nombre d'atomes d'hydrogène dans la molécule entière
num_O = 2 #Nombre d'atomes d'oxygène dans la molécule entière

molecular_formula = {'C': num_C, 'H': num_H, 'O': num_O}

Référence des éléments du dictionnaire

Dans l'exemple ci-dessus, un dictionnaire est créé avec le nombre d'atomes comme valeur, en utilisant le symbole d'élément comme clé. Pour voir toutes les clés et valeurs du dictionnaire:

print(molecular_formula.keys()) #Liste des clés
print(molecular_formula.values()) #Liste de valeurs
print(molecular_formula.items()) #Liste des tuples de clé et de valeur

Mettre à jour et ajouter des éléments de dictionnaire

Avec dictionary name [key] = value, la valeur est mise à jour si la clé existe déjà dans le dictionnaire, et une nouvelle clé et valeur sont ajoutées si la clé n'existe pas.

molecular_formula['C'] = 16 #Réécriture de valeur
molecular_formula['H'] = 32 #Réécriture de valeur
molecular_formula['N'] = 0 #Ajouter de nouvelles clés et valeurs
print(molecular_formula)

ensemble

Un ensemble peut être créé avec set name = {}. Il n'y a pas de concept d'ordre, et il est utilisé pour juger s'il y a ou non un élément spécifique sans spécifier l'élément par numéro d'index.

fatty_acids = {'FA 16:0', 'FA 18:0', 'FA 18:1', 'FA 18:2', 'FA 18:3'}

Résumé

Ici, nous avons expliqué la structure de données de Python, en nous concentrant sur les connaissances pratiques qui peuvent être utilisées en chimioinfomatique. Revoyons à nouveau les principaux points.

Ensuite, l'article suivant explique le branchement conditionnel en Python.

Branchage conditionnel de Python appris par chemoinfomatics

Documents de référence / liens

Étonnamment peu! ?? Connaissances "minimales" requises pour la programmation dans une entreprise pharmaceutique

Recommended Posts

Structure de données Python apprise avec la chimioinfomatique
Analyse de données avec python 2
Analyse de données avec Python
Variables Python et types de données appris avec la chimio-automatique
Exemple de données créées avec python
Obtenez des données Youtube avec python
Classe Python pour apprendre avec la chimioinfomatique
Fonctions Python apprises avec la chimioinfomatique
Lire des données json avec python
[Python] Programmation orientée objet apprise avec Pokemon
[Python] Obtenez des données économiques avec DataReader
Expérience d'apprentissage Perceptron apprise avec Python
Ramassage efficace du réseau avec Python
1. Statistiques apprises avec Python 1-1. Statistiques de base (Pandas)
Visualisez facilement vos données avec Python seaborn.
Traiter les données Pubmed .xml avec python
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
[Python] Chapitre 04-06 Différentes structures de données (création de dictionnaire)
Obtenez des données supplémentaires vers LDAP avec python
[Python] Extensions réactives apprises avec RxPY (3.0.1) [Rx]
Construction de pipeline de données avec Python et Luigi
Recevoir des données textuelles de mysql avec python
[Note] Obtenir des données de PostgreSQL avec Python
Traiter les données Pubmed .xml avec python [Partie 2]
Livre Ali en python: Sec.2-4, structure de données
Essayez de travailler avec des données binaires en Python
Générer des données de test japonais avec Python Faker
Branchement conditionnel de Python appris avec la chimioinfomatique
[Python] Chapitre 04-03 Diverses structures de données (liste multidimensionnelle)
[Python] Chapitre 04-04 Diverses structures de données (voir liste)
Convertir des données Excel en JSON avec python
Téléchargez les données de cours des actions japonaises avec Python
[Python] Chapitre 04-02 Diverses structures de données (manipulation de liste)
1. Statistiques apprises avec Python 1-3. Calcul de diverses statistiques (statistiques)
[Python] Chapitre 04-07 Diverses structures de données (manipulation de dictionnaire)
Recommandation d'Altair! Visualisation des données avec Python
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Faisons la manipulation des données MySQL avec Python
Organisez les données séparées par dossier avec Python
Gérez les structures de données 3D avec les pandas
Traitez le Big Data avec Dataflow (ApacheBeam) + Python3
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go