8. Historique
La version initiale de ce module était écrite en Perl et fonctionnelle dès 2003 avec des noms de fonction et une syntaxe quasiment identiques, par exemple:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# str_clean by removing first record not known $str = &pdb_str_clean($str); # str_grep and str_mgrep $str = &pdb_str_grep_get($str,"REMARK topology file"); $str = &pdb_str_mgrep_get($str,"REMARK miguel"); # str_get pdb using first record $str = &pdb_str_key_get($str,"REMARK CRYST1"); # count pdb blocks using first record and an expression on another record print &pdb_block_count($str,"REMARK",1,"number","=")."\\n"; print &pdb_block_count($str,"REMARK",0,"","=")."\\n"; # count pdb coords blocks using first record and an expression on another record print &pdb_coordsblock_count($str,"ATOM",&pdb_field_coords_id("resname"),"HIS","=")."\\n"; print &pdb_coordsblock_count($str,"ATOM",&pdb_field_coords_id("segid"),"FFFF","="); print &pdb_coordsblock_count($str,"ATOM",&pdb_field_coords_id("temp"),"30","<"); # str_block_get using first record, an expression on another record, and a block number $str = &pdb_str_block_get($str,"REMARK",1,"FILENAME","=",0); # str_coords_block_get using first record, an expression on another record, and a block number $str = &pdb_str_coordsblock_get($str,"ATOM",&pdb_field_coords_id("resname"),"HIS","=",2); $str = &pdb_str_coordsblock_get($str,"ATOM",&pdb_field_coords_id("resname"),"HIS","=",0); $str = &pdb_str_coordsblock_get($str,"ATOM",&pdb_field_coords_id("segid"),"AAAA","=",0); $str = &pdb_str_coordsblock_get($str,"ATOM",&pdb_field_coords_id("temp"),"20","<",0); |
Une version ligne de commande pilotée par des OPlist existait également de manière à être utilisable en batch, par exemple :
|
1 2 |
rem perl test.pl -i aldehyde.pdb -o temp.pdb -op { coords_sortm 'RESSEQ' } -op { coords_renum 'SERIAL' 1 } -op { coords_count } -op { print } perl test.pl -i aldehyde.pdb -o temp.pdb -op { grep 'AAAA ALA' } -op { coords_renum 'SERIAL' 100 } -op { coords_count } -op { print } |
Cet ensemble initial, une fois bien mis en cohérence permettait de faire pas mal d’opérations de recherches rapides dans des fichiers PDB et de manière assez robuste (ne pas oublier un résidu) et automatisée.
9. Conclusion
Nous disposons donc de toute une série de fonctions de base, certaines fonctionnant de manière simpliste, d’autres étant plus ajustables pour effectuer des travaux sur des fichiers PDB et renvoyer un flot de données qui correspondent à des sous-ensembles du fichier initial. D’autres structures de données (pdbmatrix, resmap) sont venues plus tard compléter le paquetage et servent de fondation pour l’analyse du fichier PDB à un niveau atomique plutôt qu’au niveau de sa syntaxe.
Remerciements: Dr N. Chabot, Q.N. Trinh Xuan, Dr C. Inard.
Liens et lectures
- Structure 1HXD [ https://www.rcsb.org/structure/1HXD ].
- Structure 1RCH [ https://www.rcsb.org/structure/1HXD ].
- Unité asymétrique (structure cristalline) [ https://fr.wikipedia.org/wiki/Structure_cristalline ].
- PDB File format [ https://www.wwpdb.org/documentation/file-format-content/format33/v3.3.html ].