SQLite

Dans un précédent article , nous vous avons parlé des bases de données, leur importance et leur intérêt. Ici je vais vous parler de SQLite , une bibliothèque donnant accès à un moteur de base de données relationnelle qui vous permettra de travailler avec du SQL et cela sans avoir besoin de configurer ou d’installer quoi que ce soit : simple, rapide et efficace. Vous pouvez à loisir l’inclure dans tous vos projets, le code source de SQLite étant dans le domaine public .

Logo SQLite

Logo SQLite

Lire la suite


Chercher des motifs dans un fichier

Langage : shell
Commandes présentées : grep , split (succintement)
Niveau : débutant

Présentation de la commande grep

La commande grep est disponible nativement sur la plupart des systèmes d’exploitation GNU/Linux. La plupart des utilisateurs utilisent cette commande pour rechercher un mot ou un groupe de mots, que nous appellerons motif ( pattern en anglais), dans un fichier texte. Cependant cette commande ne se limite pas à du simple cas par cas.
Grep recherche le motif en parcourant tout le fichier texte du début jusqu’à la fin. Ainsi, autant pour un fichier de quelques lignes, le résultat sera quasi immédiat, autant pour un fichier de plusieurs milliers de lignes le résultat peut être plus ou moins long.
Dans ce billet je vous présenterai les différentes façons dont je me sers régulièrement de grep , que ce soit de la simple recherche d’un mot clé à la recherche, plus ou moins complexe, de plusieurs motifs.

Exemple d’une commande grep sans chercher le motif exact et avec une colorisation. Auteur : Nolwenn. Image libre de droit.

Lire la suite


Monter un serveur de test pour des besoins d’analyses en bioinformatique

Dans cet article je vais vous parler d’une facette un peu moins connue de la bioinformatique en vous présentant comment il est possible, à l’heure actuelle, d’assembler un serveur d’analyse bioinformatique avec un budget serré. Il ne s’agit pas d’une étude de marché très poussée mais d’un simple exemple du matériel qu’il est possible d’utiliser pour réaliser un serveur de développement performant. En tant que bioinformaticien, il est important de savoir comment fonctionne une machine, monter soi-même un serveur est un très bon moyen de se familiariser avec le matériel que l’on utilise quotidiennement. De plus, cela n’a rien de bien compliqué et permet de réaliser des économies assez conséquentes comparé à l’achat d’un système pré-monté. Dans un premier temps, et c’est sans doute la règle de base dans ce type de démarche, il est important de faire un état des lieux et de se poser les bonnes questions pour estimer les besoins réels avant de se lancer dans un achat compulsif. Ça peut paraître idiot mais combien de labos, après avoir reçu une bourse, se sont empressés d’acheter la toute dernière machine à PCR-électrophorèse- café pour finalement ne jamais s’en servir? C’est bientôt la fin de l’année budgétaire, il reste quelques fonds pour acheter du matériel et améliorer l’infrastructure, faisons preuve de bon sens et investissons dans quelque chose d’utile : du matos informatique ! ;)

ChrisDag (CC-by-SA 2.0)

Lire la suite


Astuce : ajouter des options dans un script Bash avec getopt

But : comprendre le fonctionnement de getopt en Bash pour éviter la multiplications de script là où un seul générique pourrait suffire.

Prérequis : savoir faire des scripts Bash, connaître la substitution de commande et savoir manipuler les arguments.

Difficulté : 2 (moyen)

Pour ceux qui codent en Perl , vous connaissez déjà sûrement le module GetOpt et plus particulièrement son extension GetOpt::Long (ou encore le module getopt du langage Python ). Mais pour ceux qui souhaitent juste faire un script qui enchaine les grep et les cut pour pouvoir compter le nombre d’occurence d’une clé en fonction de certains critères, il peut être utile de pouvoir le faire uniquement en Bash plutôt que de se lancer dans un script Perl de plus. Dans cet article, je me propose donc de vous présenter la commande getopt illustrée d’un exemple simple.

Script bash en cours d'édition sous VIM

Script bash en cours d’édition sous VIM (auteur : Nolwenn) | Licence Art Libre

Lire la suite


Astuce programmation BioPython : Parser les multi-genbank et les multi-FASTA produits par Batch Entrez

Prérequis : Savoir ‘un peu’ se servir d’un shell et avoir installé Python et son module Bio.

But : Redécouper des multi-genbank ou des multi-FASTA en un fichier par entrée.

Difficulté : 2/5 (Facile)

Principe  : Le NCBI propose un outil très pratique pour récupérer facilement des jeux de données diversifiés :  BatchEntrez , vous trouverez plus d’information  ici . On télécharge ainsi un fichier texte unique réunissant toutes les données. Si les données sont au format FASTA, on obtient un multi-FASTA ; ce format est bien reconnu par les logiciels, par contre, pour des fichiers au format Genbank on obtient un multi-Genbank moins aisé à manipuler. On souhaiterait donc redécouper ce fichier de façon à obtenir un fichier unique par entrée. Il est possible de faire ce découpage à la main  mais ça reste assez contraignant dès qu’on a plus de deux entrées, mais fort heureusement, Python et sa bibliothèque Bio sont là pour nous aider !

Lire la suite


Récupérez facilement des données hébergées par le NCBI : BatchEntrez

But : Les bases de données du NCBI abritent de très nombreuses informations : génomes, protéines, références bibliographiques, etc. Si vous souhaitez récupérer l’une d’entre-elles, une recherche sur le site est la solution la plus simple, mais si vous avez besoin de récupérer de nombreuses données dans un des formats proposés, alors le NCBI a mis l’outil BatchEntrez à votre disposition. À l’aide d’une liste d’identifiants genbank , refseq ou même pubmed , il vous permet de tout télécharger en une fois (d’où la notion de ‘ batch ‘).

Difficulté : 1/5 (Très Facile)

Prenons un exemple très simple : on souhaite récupérer les séquences FASTA de trois génomes de cyanobactéries marines dont on connaît les identifiants genbank ou refseq .

On commence par créer un fichier texte (e.g. batch.test ) listant ces entrées :

NC_008319.1
NC_007516.1
NC_007513.1

Lire la suite


Comment travailler sur une grappe de serveurs (cluster)

Patrick Finnegan / CC BY 2.0

Avec les avancées en biologie ces dernières années, la quantité de données produites et les ressources informatiques nécessaires à leur traitement ont grandement augmenté. Pour faire face à ces problèmes, l’une des solutions les plus répandues est la mise en place de grappes de serveurs (plus souvent désignées par le terme anglais computer cluster ou simplement cluster ). Sur ces systèmes, les commandes à exécuter sont soumises à un gestionnaire de ressources qui répartit les tâches sur les ordinateurs du cluster . Il existe plusieurs solutions sur le marché, mais leur comportement est souvent similaire.

Aujourd’hui je vais utiliser l’une d’entre elles, Load Sharing Facility (LSF), comme exemple pour vous présenter certaines règles essentielles au bon fonctionnement d’un cluster . Cela s’adresse aux personnes débutantes sur ce type de système, mais également à ceux qui n’ont pas eu de formation avant de travailler sur un cluster .

Lire la suite


Command line Tips : passage de variable dans awk

But : Dans un fichier organisé en colonnes, nous allons extraire les lignes contenant un mot (donné en argument) dans une colonne fixée à l’avance (1ère colonne).

Prérequis : Connaître un peu le shell (pour l’exercice).

Difficulté : 2/5 (Facile)

Exercice : Pour agrémenter la note, on extraira dans quatre fichiers distincts les lignes contenant les quatre mots les plus représentés du fichier PDB ci-dessous (un mot, un fichier). On pourra nommer les fichiers sous la forme « mot.txt ».

PDB 6CSC

Lire la suite


Data Visualisation ou l’art de se faire comprendre

De nos jours il faut comprendre et se faire comprendre vite et bien. Une bonne présentation, un bon article ou bien un bon poster se distingue non seulement par un contenu pertinent mais aussi par des illustrations efficaces. On peut avoir la meilleure idée du monde, si on ne sait pas la mettre en valeur elle peut tout simplement passer à la trappe. Cet article a pour but de mettre en avant l’importance de bien présenter ses idées par des schémas et autres graphiques percutants et de rappeler que la forme influe tout autant sur l’audience que le fond. Il ne s’agit que d’une mise en bouche et d’autres articles plus techniques sur divers outils de représentation de données suivront probablement.

Lire la suite


SQL Tips : Les transactions

But : Comprendre ce qu’est une transaction au sens SQL du terme, savoir l’utiliser : les avantages, les limitations. J’aborderai superficiellement la notion de degré d’isolation.

Prérequis : Savoir faire des requêtes.

Difficulté : 1 (Facile)

Tout d’abord une définition volontairement simple : une transaction est un ensemble d’une ou plusieurs requêtes SQL regroupées au sein d’un bloc qui est exécuté sur un jeu de données.  Le début d’une transaction est marqué par le mot clef BEGIN et la fin, en fonction de ce qu’on souhaite faire, par le mot clef ROLLBACK ou COMMIT. Tout les personnes ayant utilisé un serveur de base de données ont déjà fait une transaction. Une requête SQL est la plus petite transaction possible pour laquelle les mots clef de début et fin sont rajoutés de manière implicite par le serveur de base de données.

Lire la suite