/usr/share/doc/libbiojava-java-demos/examples/RFetch.java is in libbiojava-java-demos 1:1.7.1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | import java.io.*;
import java.util.*;
import org.biojava.bio.seq.*;
import org.biojava.bio.symbol.*;
import org.biojava.bio.program.gff.*;
import org.biojava.bio.seq.db.*;
import org.biojava.bio.seq.io.*;
import org.biojava.bio.seq.io.agave.*;
import org.biojava.directory.*;
import org.biojava.bio.program.xff.*;
import org.biojava.utils.xml.*;
public class RFetch {
private static void printUsage() {
System.err.println("usage: rfetch [-fasta | -gff | -embl | -genbank | -agave | -xff] namespace id1 id2 ...");
}
public static void main(String[] args)
throws Exception
{
String format = "fasta";
boolean all = false;
int startArgs = 0;
while (startArgs < args.length && args[startArgs].startsWith("-")) {
String sw = args[startArgs];
if ("-fasta".equals(sw)) {
format = "fasta";
} else if ("-gff".equals(sw)) {
format = "gff";
} else if ("-embl".equals(sw)) {
format = "embl";
} else if ("-genbank".equals(sw)) {
format = "genbank";
} else if ("-agave".equals(sw)) {
format = "agave";
} else if ("-xff".equals(sw)) {
format = "xff";
}else if ("-list".equals(sw)) {
format = "list";
} else if ("-all".equals(sw)) {
all = true;
} else {
System.err.println("Unknown switch: " + sw);
printUsage();
return;
}
++startArgs;
}
if (args.length - startArgs< 1) {
printUsage();
return;
}
SequenceDBLite seqDB;
String namespace = args[startArgs++];
try {
seqDB = SystemRegistry.instance().getDatabase(namespace);
} catch (Exception ex) {
ex.printStackTrace();
System.err.println("Can't access namespace " + namespace);
return;
}
if (all) {
if (seqDB instanceof SequenceDB) {
SequenceDB lseqDB = (SequenceDB) seqDB;
for (SequenceIterator si = lseqDB.sequenceIterator(); si.hasNext(); ) {
writeSequence(si.nextSequence(), format);
}
} else {
System.err.println("Can't list namespace " + namespace);
}
} else if ("list".equals(format)) {
if (seqDB instanceof SequenceDB) {
SequenceDB lseqDB = (SequenceDB) seqDB;
for (Iterator i = lseqDB.ids().iterator(); i.hasNext(); ) {
System.out.println(i.next());
}
} else {
System.err.println("Can't list namespace " + namespace);
}
} else {
while (startArgs < args.length) {
String name = args[startArgs++];
Sequence seq = null;
try {
seq = seqDB.getSequence(name);
} catch (Exception ex) {
ex.printStackTrace();
}
if (seq != null) {
writeSequence(seq, format);
}
}
}
}
private static void writeSequence(Sequence seq, String format)
throws Exception
{
if ("embl".equals(format)) {
new EmblLikeFormat().writeSequence(seq, System.out);
} else if ("genbank".equals(format)) {
new GenbankFormat().writeSequence(seq, System.out);
} else if ("fasta".equals(format)) {
new FastaFormat().writeSequence(seq, System.out);
} else if ("gff".equals(format)) {
SequencesAsGFF seqgff = new SequencesAsGFF();
seqgff.setRecurse(true);
PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
GFFWriter gffw = new GFFWriter(pw);
seqgff.processSequence(seq, gffw);
pw.flush();
} else if ("xff".equals(format)) {
XFFWriter xffw = new XFFWriter();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
XMLWriter xw = new PrettyXMLWriter(pw);
xffw.writeFeatureSet(seq, xw);
pw.flush();
} else if ("agave".equals(format)) {
new AgaveWriter().writeSequence(seq, System.out);
}
}
}
|