Skip to content
Snippets Groups Projects
Commit 7cef7a6d authored by tjc's avatar tjc
Browse files

add ability to write out gff

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@9216 ee4ac58c-ac51-4696-9907-e4b3aa274f04
parent 2ebd05ed
Branches
Tags
No related merge requests found
......@@ -22,10 +22,16 @@
package uk.ac.sanger.artemis.io;
import java.awt.BorderLayout;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import uk.ac.sanger.artemis.components.database.DatabaseEntrySource;
import uk.ac.sanger.artemis.components.genebuilder.GeneUtils;
......@@ -225,39 +231,46 @@ public class ReadAndWriteEntry
boolean flatten = true;
boolean ignoreObsolete = true;
if(args != null && args.length == 1 && args[0].startsWith("-h"))
if( (args != null && args.length == 1 && args[0].startsWith("-h")) ||
(args == null || args.length < 1))
{
System.out.println("-h\tshow help");
System.out.println("-f\t[y|n] flatten the gene model, default is y");
System.out.println("-i\t[y|n] ignore obsolete features, default is y");
System.out.println("-s\tspace separated list of sequences to read and write out");
System.out.println("-o\t[EMBL|GFF] output format, default is EMBL");
System.exit(0);
}
if(args == null || args.length < 1)
names = new String[]{
"bin.fas",
"chab01.fas",
"chab02.fas",
"chab99.fas" };
else
{
names = args;
int format = DocumentEntryFactory.EMBL_FORMAT;
String suffix = ".embl";
for(int i = 0; i < args.length; i++)
{
if(args[i].toLowerCase().equals("-f"))
{
if(i + 1 < args.length && args[i + 1].toLowerCase().equals("n"))
flatten = false;
}
for(int i=0; i<args.length; i++)
if(args[i].toLowerCase().equals("-i"))
{
if(i + 1 < args.length && args[i + 1].toLowerCase().equals("n"))
ignoreObsolete = false;
}
if(args[i].toLowerCase().equals("-o"))
{
if(i + 1 < args.length && args[i + 1].toLowerCase().equals("gff"))
{
format = DocumentEntryFactory.GFF_FORMAT;
suffix = ".gff";
}
}
}
java.util.Vector files = null;
for(int i = 0; i < args.length; i++)
{
......@@ -289,15 +302,41 @@ public class ReadAndWriteEntry
names = new String[files.size()];
files.toArray(names);
}
}
for(int i=0;i < names.length; i++)
{
System.out.println("read and write :: "+names[i]+".embl");
System.out.println("read :: "+names[i]+" write :: "+names[i]+suffix);
Entry entry = ReadAndWriteEntry.readEntryFromDatabase(names[i], ENTRY_SOURCE);
try
{
ReadAndWriteEntry.writeDatabaseEntryToFile(
entry, new File(names[i]+suffix), flatten, ignoreObsolete, false,
format, null);
}
catch(EntryInformationException eie)
{
final JPanel msgPanel = new JPanel(new BorderLayout());
msgPanel.add(new JLabel("Destination format can't handle all " +
"keys/qualifiers - continue?"), BorderLayout.NORTH);
JTextArea msgError = new JTextArea(eie.getMessage());
msgError.setLineWrap(true);
msgError.setEditable(false);
JScrollPane scollMsg = new JScrollPane(msgError);
msgPanel.add(scollMsg, BorderLayout.CENTER);
int val = JOptionPane.showConfirmDialog(null,
msgPanel,
"Keys/Qualifier", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if(val == JOptionPane.OK_OPTION)
{
ReadAndWriteEntry.writeDatabaseEntryToFile(
entry, new File(names[i]+".embl"), flatten, ignoreObsolete, false,
DocumentEntryFactory.EMBL_FORMAT, null);
entry, new File(names[i]+suffix), flatten, ignoreObsolete, true,
format, null);
}
}
}
}
catch(Exception e)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment