BioJava:CookbookFrench:SeqIO:ReadFasta

From BioJava

Jump to: navigation, search

Comment lire les Sequences contenues dans un fichier en format Fasta?

Une des tâches d'entrée/sortie les plus fréquentes est la lecture d'un simple fichier contenant la/les sequence(s) pour les mettre en mémoire. SeqIOTools vous procure des méthodes statiques de base pour lire les fichiers et extraire les infos pour BioJava. Il existe en fait plus d'une manière de le faire. La plus spécifique est démontré en premier, la plus générale en second.

Méthode spécifique

import java.io.*;
import java.util.*;
 
import org.biojava.bio.*;
import org.biojava.bio.seq.db.*;
import org.biojava.bio.seq.io.*;
import org.biojava.bio.symbol.*;
 
public class ReadFasta {
 
/**
 * Ce programme prends 2 args: le 1er,le nom du fichier Fasta, le 2ème est le nom 
 * de l'Alphabet. Les noms permis sont DNA, RNA ou PROTEIN.
 */
 public static void main(String[] args) {
    try {
    // configurer la lecture du fichier
    String filename = args[0];
    BufferedInputStream is =
        new BufferedInputStream(new FileInputStream(filename));
 
    // obtenir l'Alphabet approprié
    Alphabet alpha = AlphabetManager.alphabetForName(args[1]);
 
    // obtenir une SequenceDB pour contenir toutes les séquences du fichier
    SequenceDB db = SeqIOTools.readFasta(is, alpha);
    }
    catch (BioException ex) {
    // pas un format Fasta ou mauvais Alphabet
    ex.printStackTrace();
    }catch (NoSuchElementException ex) {
    // aucune séquence Fasta dans le fichier
    ex.printStackTrace();
    }catch (FileNotFoundException ex) {
    // probleme à lire le fichier
    ex.printStackTrace();
    }
 }
}

Méthode générale

import java.io.*;
import java.util.*;
 
import org.biojava.bio.*;
import org.biojava.bio.seq.db.*;
import org.biojava.bio.seq.io.*;
import org.biojava.bio.symbol.*;
 
public class ReadFasta {
 
  /**
    * Ce programme prends 2 args: le 1er,le nom du fichier Fasta, le 2ème est le nom 
    * de l"Alphabet. Les noms permis sont DNA, RNA ou PROTEIN.
    */
  public static void main(String[] args) {
    try {
      // configurer la lecture du fichier
      String filename = args[0];
      BufferedInputStream is =
             new BufferedInputStream(new FileInputStream(filename));
      // obtenir l'Alphabet approprié
      Alphabet alpha = AlphabetManager.alphabetForName(args[1]);
 
      // obtenir une SequenceDB pour contenir toutes les séquences du fichier
      SequenceDB db = SeqIOTools.readFasta(is, alpha);
    }
    catch (BioException ex) {
      // pas un format Fasta ou mauvais Alphabet
      ex.printStackTrace();
    }catch (NoSuchElementException ex) {
      // aucune séquence Fasta dans le fichier
      ex.printStackTrace();
    }catch (FileNotFoundException ex) {
      //probleme à lire le fichier
      ex.printStackTrace();
    }
  }
}
Personal tools