Fonctions Python apprises avec la chimioinfomatique

introduction

Dans le prolongement du Traitement itératif de Python appris par chimio-automatique, j'expliquerai les «fonctions» 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 de sociétés pharmaceutiques ont résumé les fonctions en Python

Créer et utiliser des fonctions

Une fonction est un ensemble d'une série de processus et peut être créée en écrivant def function name (argument formel):. Au fait, «def» est une abréviation de «définir». Une fois que vous avez créé une fonction, il ne vous reste plus qu'à appeler le nom de la fonction pour exécuter le traitement décrit dans la fonction. La valeur de retour (valeur de retour) peut être écrite en utilisant return.

def show_smiles_pa():
    return 'OC(CCCCCCCCCCCCCCC)=O'


show_smiles_pa() # OC(CCCCCCCCCCCCCCC)=O

Dans l'exemple ci-dessus, c'est une fonction qui renvoie l'acide palmitique décrit en notation SMILES. Après avoir défini la fonction, appelez le nom de la fonction show_smiles_pa pour obtenir la valeur de retour.

Dans l'exemple ci-dessus, il n'y a pas d'argument formel lors de la création d'une fonction, mais il est possible de créer une fonction avec un argument formel. Un exemple est présenté ci-dessous.

def oxidize_fatty_acid(smiles):
    
    if smiles.count('=') <= 1:
        return 'This fatty acid is not oxidized. '
    else:
        return smiles.replace('/C=C\\', 'C(O)C')


smiles_pa = 'OC(CCCCCCCCCCCCCCC)=O'
oxidize_fatty_acid(smiles_pa) # This fatty acid is not oxidized. 

smiles_la = 'OC(CCCCCCC/C=C\C/C=C\CCCCC)=O'
oxidize_fatty_acid(smiles_la) # OC(CCCCCCCC(O)CCC(O)CCCCCC)=O

Dans l'exemple ci-dessus, SMILES (chaîne de caractères) est reçu comme argument formel, et s'il s'agit d'un acide gras saturé, "Cet acide gras n'est pas oxydé." Est retourné, et s'il s'agit d'un acide gras insaturé, c'est une double chaîne carbonée. La valeur de retour est SMILES, qui est un composé dont la liaison est oxydée.

Il est également possible de définir plusieurs arguments formels. Un exemple est présenté ci-dessous.

def calculate_exact_mass(Cn, Un):
    return 12 * Cn + 1.00783 * (2 * Cn - 2 * Un) + 15.99491 * 2


calculate_exact_mass(16, 0)

calculate_exact_mass(18, 2)

Vous pouvez également prendre un argument de mot-clé, avec nom du mot-clé = valeur. Un exemple est présenté ci-dessous.

def abbreviate_fatty_acid(Cn, Un, sep=':'):
    return str(Cn) + sep + str(Un)


abbreviate_fatty_acid(16, 0) # 16:0

abbreviate_fatty_acid(16, 0, sep='_') # 16_0

Dans l'exemple ci-dessus, si l'argument mot-clé sep n'est pas spécifié lors de l'appel de la fonction, la valeur par défaut: lors de la définition de la fonction est utilisée, et si sep est spécifié lors de l'appel de la fonction, cette valeur est utilisée. Il sera mis à jour.

Portée variable

Lorsque vous utilisez une fonction, vous devez faire attention à la "portée des variables". La portée d'une variable est la plage dans laquelle la variable peut être utilisée. Dans certains cas, elle ne peut être utilisée qu'à l'intérieur de la fonction (variable privée), et dans d'autres cas, elle peut être utilisée en dehors de la fonction (variable globale).

def abbreviate_fatty_acid(a, b):
    Cn = a
    Un = b
    return Cn, Un


Cn = 16
Un = 0

abbreviate_fatty_acid(18, 2) # Cn = 18, Un = 2

print(Cn, Un) # Cn = 16, Un = 0

Dans l'exemple ci-dessus, les variables «Cn» et «Un» qui apparaissent à l'intérieur de la fonction «abbreviate_fatty_acid» sont toutes deux des variables privées et sont différentes des «Cn» et «Un» définis en dehors de la fonction. Ainsi, appeler une fonction ne met pas à jour les valeurs des variables «Cn» et «Un».

Maintenant, si vous voulez mettre à jour les valeurs des variables «Cn» et «Un» en appelant la fonction, utilisez «global» et utilisez «global» pour faire «Cn» et «Un» dans la fonction des variables globales au lieu de variables privées. Vous devez montrer qu'il y en a.

def abbreviate_fatty_acid(a, b):
    global Cn
    global Un
    Cn = a
    Un = b
    return Cn, Un


Cn = 16
Un = 0

abbreviate_fatty_acid(18, 2) # Cn = 18, Un = 2

print(Cn, Un) # Cn = 18, Un = 2

Dans l'exemple ci-dessus, «Cn» et «Un» sont traités comme des variables globales, donc les valeurs de «Cn» et «Un» sont également mises à jour lorsque la fonction est appelée.

Résumé

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

--Une fonction est un ensemble de processus décrits ensemble. Une fois créé, le processus peut être exécuté simplement en l'appelant.

Ensuite, l'article suivant explique les classes Python.

Classe Python apprise avec chemoinfomatics

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

Fonctions Python apprises avec la chimioinfomatique
Refactoring appris avec Python (Basic)
Remplacer les fonctions de bibliothèque en Python
Ce que j'ai appris en Python
Code de caractère appris en Python
Fonctions Python
[python] Gérer les fonctions dans une liste
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
Définir dynamiquement des fonctions (méthodes) en Python
Quadtree en Python --2
Python en optimisation
[Python3] Définir dynamiquement des variables globales dans une fonction
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Utilisez facilement vos propres fonctions en Python
Branchement conditionnel de Python appris avec la chimioinfomatique
Un chercheur d'une société pharmaceutique a résumé les fonctions de Python
Époque en Python
Discord en Python
Allemand en Python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Nouvelles fonctionnalités de Python 3.4.0 (3) - Fonctions génériques à distribution unique
# Bases de Python (fonctions)
FizzBuzz en Python
Sqlite en Python
[Débutant] Fonctions Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Fonctions Python faciles à utiliser
Quad-tree en Python
bases de python: fonctions
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
[Astuces] Écriture facile à lire lors de la connexion de fonctions en Python
Distribution de probabilité de niveau 2 du test statistique apprise en Python ②
Analyse de survie apprise avec Python 2 - Estimation Kaplan-Meier