BioJava:CookbookFrench:SeqIO:GBToFasta
Comment extraire les Sequences à partir de fichiers en format GenBank/ EMBL/ SwissProt etc., pour ensuite les écrire en format Fasta?
Pour accomplir cette tâche de conversion, nous allons modifier le lecteur de base de la démo précédente pour y inclure la possibilité d’écrire les données de séquence en format FASTA. L’exmple fourni fonctionne à partir de la version 1.3 de BioJava.
```java import java.io.*;
import org.biojava.bio.*; import org.biojava.bio.seq.*; import org.biojava.bio.seq.io.*;
public class GeneralReader {
/**
* Ce programme lira n'importe quel fichier dans un format supporté par SeqIOTools.
* Il prend trois arguments: le 1er est le nom du fichier, le 2ème le format et le 3ème
* est le type de molecule qui est lu. Les combinaisons illégales (par ex. séquence d'ADN
* en SwissProt) lancera une exception.
*
* Formats permis: (minuscule ou majuscule).
*
* FASTA
* EMBL
* GENBANK
* SWISSPROT (or swiss)
* GENPEPT
*
* Types de séquence permises: (minuscule ou majuscule).
*
* DNA
* AA (or Protein)
* RNA
*
*/
public static void main(String[] args) {
try {
//prépare un BufferedReader pour lecture du fichier
BufferedReader br = new BufferedReader(new FileReader(args[0]));
//le format du fichier
String format = args[1];
//l'Alphabet
String alpha = args[2];
/*
* créer un SequenceIterator pour parcourir toutes les séquences du fichier.
* SeqIOTools.fileToBiojava() retourne un Object. Si le fichier lu est un
* alignment, tel que MSF, un objet Alignment est retourné, sinon un
* SequenceIterator est retourné.
*/
SequenceIterator iter =
(SequenceIterator)SeqIOTools.fileToBiojava(format, alpha, br);
// faire quelque chose avec les séquences
SeqIOTools.writeFasta(System.out, iter);
}
catch (FileNotFoundException ex) {
//ne trouve pas le fichier spécifié en args[0]
ex.printStackTrace();
}catch (BioException ex) {
//nom de format de fichier invalide
ex.printStackTrace();
}catch (IOException ex){
//erreur d'écriture du format fasta
ex.printStackTrace();
}
}
} ```