Merge branch 'Jalview-JS/jim/JAL-3253-JAL-3418' into Jalview-JS/JAL-3253-applet
[jalview.git] / srcjar / fr / orsay / lri / varna / utils / TranslateFormatRNaseP.java
1 /**
2  * File written by Raphael Champeimont
3  * UMR 7238 Genomique des Microorganismes
4  */
5 package fr.orsay.lri.varna.utils;
6
7 import java.io.BufferedReader;
8 import java.io.BufferedWriter;
9 import java.io.File;
10 import java.io.FileReader;
11 import java.io.FileWriter;
12 import java.io.IOException;
13 import java.util.ArrayList;
14 import java.util.List;
15
16 public class TranslateFormatRNaseP {
17         public static void main(String[] args) throws Exception {
18                 File templatesDir = new File(new File(System.getProperty("user.dir")), "templates");
19                 File infile = new File(new File(templatesDir, "RNaseP_bact_a"), "a_bacterial_rnas.gb");
20                 File outfile = new File(new File(templatesDir, "RNaseP_bact_a"), "alignment.fasta");
21                 
22                 BufferedReader inbuf = new BufferedReader(new FileReader(infile));
23                 String line = inbuf.readLine();
24                 String seqname;
25                 List<String> seqnames = new ArrayList<String>();
26                 List<String> sequences = new ArrayList<String>();
27                 while (line != null) {
28                         if (line.length() != 0) {
29                                 if (line.startsWith("LOCUS")) {
30                                         String parts[] = line.split("\\s+");
31                                         seqname = parts[1];
32                                         seqnames.add(seqname);
33                                         sequences.add("");
34                                 }
35                                 if (line.startsWith(" ")) {
36                                         String parts[] = line.split("\\s+");
37                                         for (int i=2; i<parts.length; i++) {
38                                                 sequences.set(sequences.size()-1, sequences.get(sequences.size()-1) + parts[i]);
39                                         }
40                                 }
41                         }
42                         line = inbuf.readLine();
43                 }
44                 inbuf.close();
45                 
46                 BufferedWriter outbuf = new BufferedWriter(new FileWriter(outfile));
47                 for (int i=2; i<seqnames.size(); i++) {
48                         outbuf.write(">" + seqnames.get(i) + "\n");
49                         outbuf.write(sequences.get(i) + "\n");
50                 }
51                 outbuf.close();
52         }
53 }