Les travaux des sociétés pharmaceutiques portent souvent sur la structure des composés. Des compétences dans la mesure de la concentration et l'analyse structurelle de nouveaux composés candidats-médicaments synthétisés en interne et de leurs métabolites, ainsi que des métabolites endogènes (acides aminés, sucres, lipides, etc.) naturellement présents dans l'organisme sont importantes.
Par conséquent, ici, nous allons expliquer la programmation Python à l'aide de Lipidomics, qui est une analyse complète des lipides existant dans le corps vivant. Il existe des espèces moléculaires avec diverses structures dans le corps des lipides, et il existe plus d'un million d'espèces moléculaires qui peuvent générer des structures avec * in silico *. Il est pratiquement difficile de décrire manuellement la structure de chacune de ces espèces moléculaires et de calculer les valeurs de propriétés physiques telles que le poids moléculaire et la polarité, et la programmation est essentielle.
Si nous pouvons gérer la structure et les propriétés physiques des lipides par programmation, cela sera applicable à la chimioinfomatique pour de nouveaux composés candidats-médicaments, j'espère donc que vous l'apprendrez.
Cette fois, je vais expliquer les "variables et types de données". 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.
Un chercheur de la société pharmaceutique a résumé les règles de description de base de Python Les chercheurs des sociétés pharmaceutiques ont résumé les variables en Python Les chercheurs des sociétés pharmaceutiques ont résumé les opérateurs utilisés dans Python
Veuillez lire l'article suivant sur la construction d'environnement.
Comment installer Anaconda pour les chercheurs des sociétés pharmaceutiques
Vous pouvez créer une nouvelle variable en définissant variable = valeur
.
Vous pouvez également utiliser print ()
pour imprimer les objets entre parenthèses (valeurs des variables, résultats de l'exécution du programme, etc.).
Les chaînes de caractères après «#» sont reconnues comme commentaires et sont exclues de la plage d'exécution du programme.
Il peut être utilisé pour écrire des notes dans le script ou pour empêcher l'exécution de la partie où l'erreur se produit.
lipid_class = 'FA' #Chaîne
Cn = 16 #Valeur numérique
Un = 0 #Valeur numérique
print(lipid_class) #Lipide variable_Sortie de la valeur de "classe"
print(Cn) #Sortie de la valeur de la variable "Cn"
print(Un) #Sortie de la valeur de la variable "Un"
Vous pouvez également créer plusieurs variables sur une seule ligne, comme indiqué ci-dessous.
De plus, en définissant print (objet 1, objet 2)
, il sera affiché comme ʻobjet 1 (espace demi-largeur) objet 2. Si vous voulez changer l'espace demi-largeur en un autre caractère ou symbole, vous pouvez le changer avec
sep =. Si
sep = '' est défini, ʻobject 1
et object 2
sont concaténés et sortis sans espaces.
Cn, Un = 16, 0 # 「Cn = 16、Un =Signifie "0"
print(Cn) #"16" est sorti
print(Un) #"0" est émis
print(Cn, Un) #"160" est émis
print(Cn, Un, sep='Quand') # 「16Quand0」Quand出力される
Tout d'abord, le nom de la variable utilise essentiellement des mots anglais, et il n'est pas possible de donner un nom de variable commençant par un nombre (il est également possible d'utiliser un nombre s'il s'agit du deuxième caractère ou plus tard). Il est bon d'utiliser un nom de variable qui vous permet de voir en un coup d'œil quelle valeur est stockée dans la variable.
S'il y a plusieurs mots, séparez-les par _
(trait de soulignement) et écrivez essentiellement chaque mot dans toutes les lettres minuscules.
Lorsque vous nommez des variables, vous devez faire attention à ne pas utiliser de mots-clés (mots réservés) définis à l'avance dans Python. Vous pouvez vérifier les mots réservés avec le script suivant. (Vous n'avez pas besoin de connaître les détails tels que ʻimport` pour l'instant. J'espère que vous pourrez le vérifier en exécutant simplement le script suivant en tant que copie et rythme.)
import keyword
import pprint
pprint.pprint(keyword.kwlist, compact=True)
Le résultat de l'exécution est le suivant. N'utilisez pas de noms de variables pour tout ce qui est inclus ci-dessous.
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global',
'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise',
'return', 'try', 'while', 'with', 'yield']
La chaîne doit être placée entre `` '' (guillemets). Inversement, les nombres entre guillemets sont également traités comme des chaînes.
Cn_int = 16 #"16" comme valeur numérique
print(type(Cn_int)) # <class 'int'>
Cn_str = '16' #"16" comme chaîne de caractères
print(type(Cn_str)) # <class 'str'>
Vous pouvez vérifier le type de données de l'objet entre parenthèses en utilisant type
.
Une chaîne de caractères spéciale (séquence d'échappement) est fournie au cas où vous souhaiteriez écrire une citation ou commencer une nouvelle ligne dans la citation. Un exemple est présenté ci-dessous.
print('molecular species: FA 16:0')
print('\'molecular species: FA 16:0\'') #Ajouter des devis
print('molecular species: \nFA 16:0') #Insérer un saut de ligne
Dans l'exemple ci-dessus, \ '' représente
`'' lui-même. Par conséquent, la citation est sortie séparément de la citation qui entoure la chaîne de caractères.
De plus, «\ n» indique un saut de ligne. Par conséquent, dans le résultat de sortie de «impression», un saut de ligne est inséré après «espèce moléculaire:».
Ici, "FA" stocké dans la variable "lipid_class" est une abréviation pour "acide gras" ou "acide gras". «lipid_class» est la «classe des lipides» en japonais et indique la catégorie des lipides. De plus, "Cn" est le "nombre d'atomes de carbone", c'est-à-dire le nombre d'atomes de carbone (longueur de la chaîne carbonée). ʻUn` indique le "nombre (degré) d'insaturation" c'est-à-dire le degré d'insaturation (le nombre de doubles liaisons).
Dans la classe des lipides, les acides gras ont la structure la plus simple, et si vous spécifiez «Cn» et «Un», la structure est presque déterminée.
De nombreuses autres classes de lipides ont une structure chimique dans laquelle les acides gras sont liés au squelette, comme le glycérol, et la partie du squelette caractérise la classe des lipides.
En combinant la classe des lipides, le nombre d'atomes de carbone et le degré de saturation, l'espèce moléculaire du lipide est presque déterminée.
Alors, envisagez de combiner lipid_class
, Cn
et ʻUn` comme une chaîne.
À propos, l'espèce moléculaire des acides gras avec 16 atomes de carbone et 0 double liaison est l'acide palmitique. La structure chimique de l'acide palmitique est publiée sur la page liée ci-dessous, veuillez donc vous y référer le cas échéant. Palmitic acid (FA 16:0) | LIPID MAPS Structure Database
lipid_class = 'FA'
Cn = 16
Un = 0
molecular_species = lipid_class + ' ' + str(Cn) + ':' + str(Un)
print(molecular_species) # 「FA 16:0 "est émis
Vous pouvez combiner des chaînes en utilisant «+».
Ici, ''
est un espace demi-largeur.
De plus, str
est une abréviation de" string ", qui convertit l'objet entre parenthèses en données de chaîne.
Ceci est dû au fait que «Cn» et «Un» sont des nombres ici, ils ne peuvent donc pas être combinés comme une chaîne tels quels.
De plus, dans le domaine de la lipidomique, il est courant de relier "Cn" et "Un" avec ":".
Utilisez ʻintou
float pour convertir un numéro de chaîne en données numériques. ʻInt
est une abréviation pour "entier" et fait référence à un entier, et "float" se réfère à un nombre avec une virgule décimale (nombre à virgule flottante).
Cn = 16
Cn_str = str(Cn)
Cn_int = int(Cn_str)
print(type(Cn_str)) # <class 'str'>
print(type(Cn_int)) # <class 'int'>
exact_mass = 256.2402 #Masse de précision de l'acide palmitique
exact_mass_str = str(exact_mass)
exact_mass_float = float(exact_mass_str)
print(type(exact_mass_str)) # <class 'str'>
print(type(exact_mass_float)) # <class 'float'>
La différence entre l'utilisation de l'opérateur «+» pour les données numériques et son utilisation pour les données de chaîne de caractères est la suivante.
Cn = 16
Un = 0
print(Cn + Un) #Valeur numérique "16"
print(type(Cn + Un))
print(str(Cn) + str(Un)) #Chaîne de caractères "160" (chaîne de caractères dans laquelle les 1, 6 et 0 sont alignés)
print(type(str(Cn) + str(Un)))
Lorsque des variables numériques sont ajoutées ensemble, l'ajout est effectué normalement, mais lorsque des variables de chaîne sont ajoutées ensemble, les chaînes de caractères sont combinées.
(Ajouter Cn
et ʻUn` n'a pas de signification chimique, mais ici il est donné à titre d'exemple pour montrer le comportement du programme.)
Vous pouvez également combiner des chaînes (incorporer des valeurs de variables dans des chaînes) en écrivant comme suit.
lipid_class = 'FA'
Cn = 16
Un = 0
molecular_species = '{0} {1}:{2}'.format(lipid_class, Cn, Un)
print(molecular_species) #C'est aussi "FA 16:0 "est émis
Écrivez «{}» dans la citation, arrangez les variables entre parenthèses du «format» et mettez le 0, 1 et 2 entre parenthèses du «format» dans l'ordre du «{}». Il est intégré à partir de la variable de gauche. Dans le monde de la programmation, les numéros de série commencent souvent par le numéro 0 au lieu du numéro 1, soyez donc prudent lorsque vous démarrez la programmation.
De plus, dans Python 3.6 et versions ultérieures, il est possible d'incorporer des variables dans une chaîne de caractères avec une méthode d'écriture plus simple appelée "f-string" comme indiqué ci-dessous.
lipid_class = 'FA'
Cn = 16
Un = 0
molecular_species = f'{lipid_class} {Cn}:{Un}'
print(molecular_species)
Définissez simplement la chaîne de caractères que vous voulez créer comme «f'character string» et mettez le nom de la variable dans «{}», et la partie «{}» sera remplacée par la variable spécifiée.
Vous pouvez utiliser replace
pour remplacer une chaîne particulière par une autre.
molecular_species = 'FA 16:0'
print(molecular_species.replace(':', '_')) # 「:"(Colon) à"_"(Souligner)
print(molecular_species.replace(' ', '')) #Supprimer l'espace demi-largeur
Il existe une méthode appelée "notation SMILES (système d'entrée de ligne de saisie moléculaire simplifié)" comme méthode de description de la structure d'un composé. Vous pouvez décrire la structure chimique avec juste une chaîne, comme indiqué ci-dessous.
smiles_pa = 'OC(' + 'C' * (Cn - 1) + ')=O' # 'pa'Est'palmitic acid'Abréviation pour
print(smiles_pa)
Comme indiqué ci-dessus, la notation SMILES décrit la structure chimique sans utiliser l'atome d'hydrogène (H).
Avec la notation SMILES, la structure moléculaire peut être décrite automatiquement même si la valeur de «Cn» change.
*
peut être utilisé non seulement pour multiplier les nombres, mais aussi pour répéter la même chaîne.
Ensuite, considérons une espèce moléculaire appelée acide linoléique, qui a 18 atomes de carbone et 2 doubles liaisons. Linoleic acid (FA 18:2) | LIPID MAPS Structure Database
smiles_la = 'OC(CCCCCCC/C=C\C/C=C\CCCCC)=O' #L'acide linoléique
Les doubles jointures sont décrites en utilisant =
.
/
et \
indiquent si la double liaison est * cis * ou * trans *, * cis * si les symboles avant ou après l'atome de carbone formant la double liaison ont des orientations différentes, et s'ils ont la même orientation. Cela devient * trans *.
smiles_la = 'OC(CCCC/C=C\C/C=C\CCCCCCCC)=O' #L'acide linoléique
smiles_la_oxidized = smiles_la.replace('/C=C\C', 'C(O)CC')
print(smiles_la_oxidized)
De cette manière, le "replace" mentionné ci-dessus peut être utilisé pour exprimer l'oxydation de la partie à double liaison.
Au fait, il semble qu'il puisse être remplacé par .replace ('/ C = C \', 'C (O) C')
, mais la partie après / C = C \ '
' La séquence d'échappement mentionnée ci-dessus et les guillemets pour fermer la chaîne sont reconnus comme des guillemets dans la chaîne, ce qui entraîne une erreur de syntaxe. Donc, ici, j'ai mis un autre atome de carbone à droite et l'ai fait
.replace ('/ C = C \ C', 'C (O) CC')`.
Les valeurs booléennes (Boolean) font référence à des types de données qui sont soit «Vrai» soit «Faux». Il peut être utilisé pour comparer si plusieurs variables sont identiques ou pour savoir si une certaine condition est remplie.
palmitic_acid = 'FA 16:0' #Acide palmitique (acide gras saturé à 16 atomes de carbone)
stearic_acid = 'FA 18:0' #Acide stealique (acide gras saturé avec 18 atomes de carbone)
print(molecular_species == palmitic_acid) # True
print(molecular_species == stearic_acid) # False
Un acide gras avec 16 atomes de carbone et 0 double liaison est "acide palmitique", et non "acide stéarique".
Ici, nous avons expliqué les variables et les types de données Python, en nous concentrant sur les connaissances pratiques qui peuvent être utilisées en chimioinfomatique. Revoyons à nouveau les principaux points.
nom de variable = valeur
.chaîne de caractères * nombre
. Il peut être utilisé lors de la spécification du nombre d'atomes de carbone en notation SMILES.Ensuite, l'article suivant explique la structure des données de Python (liste, dictionnaire, etc.).
Structure de données Python apprise avec chemoinfomatics
Recommended Posts