Classe Python pour apprendre avec la chimioinfomatique

introduction

Dans le prolongement des fonctions Python apprises par chimioinfomatique, nous expliquerons les «classes» 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é les classes en Python

Créer et utiliser des classes

Une classe est une image comme un objet qui contient des variables et des fonctions ensemble. Il peut être créé en écrivant class class name:. De plus, il existe une «méthode d'initialisation» pour décrire les paramètres initiaux communs à toutes les instances générées à partir de la classe, et elle est décrite en utilisant «init».

class FattyAcid:
    
    def __init__(self, c, u):
        self.Cn = c
        self.Un = u
        self.abbreviation = str(c) + ':' + str(u)
        self.exact_mass = 12 * c + 1.00783 * (2 * c - 2 * u) + 15.99491 * 2
        
        
    def describe(self):
        return f'The exact mass value of {self.abbreviation} is {self.exact_mass}.'


palmitic_acid = FattyAcid(16, 0) #Générer une instance "d'acide palmitique"
linoleic_acid = FattyAcid(18, 2) #Créer une instance "d'acide linoléique"
 
print(palmitic_acid.Cn) # 16
print(palmitic_acid.Un) # 0
print(palmitic_acid.abbreviation) # 16:0
print(palmitic_acid.exact_mass) # 256.24238
print(palmitic_acid.describe()) # The exact mass value of 16:0 is 256.24238.

print(linoleic_acid.Cn) # 18
print(linoleic_acid.Un) # 2
print(linoleic_acid.abbreviation) # 18:2
print(linoleic_acid.exact_mass) # 280.24238
print(linoleic_acid.describe()) # The exact mass value of 18:2 is 280.24238.

Dans l'exemple ci-dessus, nous définissons une "classe" appelée "FattyAcid" (acide gras) et générons des "instances" appelées "palmitic_acid" (acide palmitique) et "linoleic_acid" (acide linoléique). C'est une bonne idée d'avoir l'image qu'une «classe» est comme un modèle et qu'une «instance» est comme un exemple concret. Dans la méthode d'initialisation, le nombre d'atomes de carbone, le nombre de doubles liaisons, la masse précise, etc. sont définis, et ils sont automatiquement calculés lorsqu'une instance est créée.

Héritage de classe

Les classes ont le concept d '"héritage" et les classes existantes peuvent être utilisées comme "classes parentes" pour créer des "classes enfants" qui donnent à la classe parente des fonctionnalités supplémentaires.

class FattyAcid:
    
    def __init__(self, c, u):
        self.Cn = c
        self.Un = u
        self.abbreviation = str(c) + ':' + str(u)
        self.exact_mass = 12 * c + 1.00783 * (2 * c - 2 * u) + 15.99491 * 2
        
        
    def describe(self):
        return f'The exact mass value of {self.abbreviation} is {self.exact_mass}.'
        
        
class SaturatedFattyAcid(FattyAcid):
    
    def oxidize(self):
        return f'{self.abbreviation} cannot be oxidized. ' 
    
    
class UnsaturatedFattyAcid(FattyAcid):
    
    def oxidize(self):
        return f'{self.Un} double bond(s) can be oxidized. '
    

palmitic_acid = SaturatedFattyAcid(16, 0)
linoleic_acid = UnsaturatedFattyAcid(18, 2)

print(palmitic_acid.abbreviation)
print(palmitic_acid.describe())
print(palmitic_acid.oxidize())

print(linoleic_acid.abbreviation)
print(linoleic_acid.describe())
print(linoleic_acid.oxidize())

Dans l'exemple ci-dessus, la classe parente "FattyAcid" (acide gras) produit les classes enfants "SaturatedFattyAcid" (acide gras saturé) et "Non saturéFattyAcid" (acide gras insaturé). Les acides gras saturés ne sont pas oxydés au niveau de la partie à double liaison, mais les acides gras insaturés sont oxydés à la partie à double liaison, la différence est donc exprimée par une méthode appelée «oxydation». De plus, indépendamment du fait qu'il s'agisse d'un acide gras saturé ou d'un acide gras insaturé, «exact_mass» etc. peut être calculé, ainsi ceux-ci sont définis par la méthode d'initialisation de la classe parente «FattyAcid».

Résumé

Ici, nous avons expliqué les classes Python, en nous concentrant sur les connaissances pratiques pouvant être utilisées en chimioinfomatique. Revoyons à nouveau les principaux points.

Ensuite, je vais expliquer NumPy en Python dans l'article suivant.

NumPy appris avec Chemo Informatics

Documents de référence / liens

Quel est le langage de programmation Python? Peut-il être utilisé pour l'IA et l'apprentissage automatique?

Recommended Posts

Classe Python pour apprendre avec la chimioinfomatique
Fonctions Python apprises avec la chimioinfomatique
Refactoring appris avec Python (Basic)
Ce que j'ai appris en Python
Code de caractère appris en Python
Structure de données Python apprise avec la chimioinfomatique
J'ai essayé d'étudier le processus avec Python
Utilisation élémentaire d'ITK apprise avec Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Des chercheurs de sociétés pharmaceutiques ont résumé les classes en Python
Branchement conditionnel de Python appris avec la chimioinfomatique
Époque en Python
Discord en Python
Allemand en Python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Distribution de probabilité de niveau 2 du test statistique apprise en Python ②
Analyse de survie apprise avec Python 2 - Estimation Kaplan-Meier
Distribution de probabilité de test statistique de niveau 2 apprise en Python
TensorFlow: exécuter des données apprises en Python sur Android
Liste triée en Python
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 18 en Python