buildez.pdb: travaux en mode string (str, strfilter)

Le paquetage buildez.pdb est spécialisé dans les manipulations de fichiers PDB: nettoyage, filtrage, requêtes, éclatement de chaines ou de ligands etc. L’objectif de cet article est de présenter quelques composants qui fonctionnent en mode chaine (string mode). Cela veut dire que le flot d’information est traité en tant que chaine de caractère et que la plupart du temps les valeurs retournées par les fonctions sont également des chaines de caractères. Dans ce cas, l’espace de nommage buildez intègre systématiquement le terme str dans le nom des modules et de fonctions.
Ces modules dont la conception date de 2006 sont des filtres, car ils utilisent les information intrinsèques du fichier PDB, alors qu’un parseur ‘strict’ recalculerait tout. Mais ils ont étés maintenus, car encore utilisables individuellement ou dans les premiers étages logiciels d’un parseur.

D’après un article publié en 2012 sur buildez.net – Revu en Avril 2025.

Navigation dans le guide

Guide [ Composants : buildez.pdb ]




1. Module str

Il s’agit d’un module (buildez.pdb.str) plutôt limité mais qui contient quelques primitives de base, pour charger un fichier PDB dans une chaine de caractères (fonction pdb_file2str) et nettoyer la chaine. Par exemple, la fonction pdb_str_clean élimine les lignes qui n’ont pas des mots clefs connus et pdb_str_addspacedr ajoute des espaces jusqu’à  la position 78 et élimine les lignes vides.
Le module fournit aussi 3 primitives de base pour l’ensemble du paquetage qui vont vectoriser (les transformer en listes de valeurs) intelligemment des lignes d’un fichier PDB. La fonction pdb_line_get vectorise une ligne quelconque, pdb_ccordsline_get vectorise une ligne de coordonnées moléculaires et pdb_coordlinetyped_get fait la même chose mais en retournant une liste Python dont les éléments sont typés. Ainsi pour un nom de résidu on aura une chaine de caractères, pour un numéro d’atome on aura un entier, pour une coordonnée xyz on aura un réel …

2. Module strfilter

Comme son nom l’indique ce module implémente des fonction de filtre mais également des compteurs et des extracteurs, il se décompose en plusieurs sections:

  • Basic grep subroutines
  • PDB extraction using grep or multiple grep
  • PDB coords block count and extraction subroutines
  • PDB non coords block count and extraction subroutines
  • Counting subroutines (bof)
  • Handling multi-model PDB strings

La plupart des fonctions de ce module utilisent comme argument principal une chaine de caractères correspondant au contenu du fichier PDB chargé avec la fonction pdb_file2str et éventuellement nettoyé, par exemple le code suivant embarque le fichier PDB correspondant à  la structure 1HXD [Weaver_2001] dans une chaine de caractères s, en préservant les sauts de lignes et espaces contenus dans le fichier.

L’unité asymétrique, montre pour la protéine correspondante, deux chaines A et B, qui sont chacune ligandées par une biotine (représentées avec des sphères atomiques):

Voila pour les deux modules, nous allons maintenant voir quelques exemples d’utilisation, en commençant par le plus simple : des extractions de lignes par mots clés ou des commandes GREP-like en mode positif ou négatif. Le tout avec quelques subtilités, sachant que l’on doit pouvoir combiner ces commandes en mode intersection ou union (additif).

Retour en haut