import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
+import jalview.datamodel.PDBEntry.Type;
+import jalview.ext.jmol.JmolParser;
+import jalview.structure.StructureImportSettings;
import jalview.util.MessageManager;
import java.io.File;
/**
* List of valid format strings used in the isValidFormat method
*/
- public static final String[] READABLE_FORMATS = new String[]
- { "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH",
- "PDB", "JnetFile", "RNAML", PhylipFile.FILE_DESC, JSONFile.FILE_DESC, IdentifyFile.GFF3File,
- "HTML" };
+ public static final String[] READABLE_FORMATS = new String[] { "BLC",
+ "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH", "PDB",
+ "JnetFile", "RNAML", PhylipFile.FILE_DESC, JSONFile.FILE_DESC,
+ IdentifyFile.FeaturesFile, "HTML", "mmCIF" };
/**
* List of readable format file extensions by application in order
* corresponding to READABLE_FNAMES
*/
- public static final String[] READABLE_EXTENSIONS = new String[]
- { "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
+ public static final String[] READABLE_EXTENSIONS = new String[] {
+ "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
"sto,stk", "xml,rnaml", PhylipFile.FILE_EXT, JSONFile.FILE_EXT,
- ".gff2,gff3",
- "jar,jvp", HtmlFile.FILE_EXT };
+ ".gff2,gff3", "jar,jvp", HtmlFile.FILE_EXT, "cif" };
/**
* List of readable formats by application in order corresponding to
* READABLE_EXTENSIONS
*/
- public static final String[] READABLE_FNAMES = new String[]
- { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Stockholm",
- "RNAML", PhylipFile.FILE_DESC, JSONFile.FILE_DESC, IdentifyFile.GFF3File, "Jalview",
- HtmlFile.FILE_DESC };
+ public static final String[] READABLE_FNAMES = new String[] { "Fasta",
+ "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Stockholm", "RNAML",
+ PhylipFile.FILE_DESC, JSONFile.FILE_DESC, IdentifyFile.FeaturesFile,
+ "Jalview", HtmlFile.FILE_DESC, "mmCIF" };
/**
* List of valid format strings for use by callers of the formatSequences
* method
*/
- public static final String[] WRITEABLE_FORMATS = new String[]
- { "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "AMSA",
- "STH", PhylipFile.FILE_DESC, JSONFile.FILE_DESC };
+ public static final String[] WRITEABLE_FORMATS = new String[] { "BLC",
+ "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "AMSA", "STH",
+ PhylipFile.FILE_DESC, JSONFile.FILE_DESC };
/**
* List of extensions corresponding to file format types in WRITABLE_FNAMES
* that are writable by the application.
*/
- public static final String[] WRITABLE_EXTENSIONS = new String[]
- { "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
+ public static final String[] WRITABLE_EXTENSIONS = new String[] {
+ "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
"sto,stk", PhylipFile.FILE_EXT, JSONFile.FILE_EXT, "jvp" };
/**
* List of writable formats by the application. Order must correspond with the
* WRITABLE_EXTENSIONS list of formats.
*/
- public static final String[] WRITABLE_FNAMES = new String[]
- { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "STH",
+ public static final String[] WRITABLE_FNAMES = new String[] { "Fasta",
+ "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "STH",
PhylipFile.FILE_DESC, JSONFile.FILE_DESC, "Jalview" };
public static String INVALID_CHARACTERS = "Contains invalid characters";
return list.toString();
}
-
public void setNewlineString(String nl)
{
newline = nl;
}
else if (format.equals("PDB"))
{
- alignFile = new MCview.PDBfile(annotFromStructure,
- localSecondaryStruct, serviceSecondaryStruct, inFile, type);
- // Uncomment to test Jmol data based PDB processing: JAL-1213
- // afile = new jalview.ext.jmol.PDBFileWithJmol(inFile, type);
+ // TODO obtain config value from preference settings.
+ // Set value to 'true' to test PDB processing with Jmol: JAL-1213
+ boolean isParseWithJMOL = StructureImportSettings
+ .getDefaultPDBFileParser().equalsIgnoreCase(
+ StructureImportSettings.StructureParser.JMOL_PARSER
+ .toString());
+ if (isParseWithJMOL)
+ {
+ StructureImportSettings.addSettings(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct);
+ alignFile = new jalview.ext.jmol.JmolParser(inFile, type);
+ }
+ else
+ {
+ StructureImportSettings.addSettings(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct);
+ StructureImportSettings.setShowSeqFeatures(true);
+ alignFile = new MCview.PDBfile(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct, inFile,
+ type);
+ }
+ ((StructureFile) alignFile).setDbRefType(format);
+ }
+ else if (format.equalsIgnoreCase("mmCIF"))
+ {
+ StructureImportSettings.addSettings(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct);
+ alignFile = new jalview.ext.jmol.JmolParser(inFile, type);
+ ((StructureFile) alignFile).setDbRefType(format);
}
else if (format.equals("STH"))
{
{
alignFile = new RnamlFile(inFile, type);
}
- else if (format.equals(IdentifyFile.GFF3File))
+ else if (format.equals(IdentifyFile.FeaturesFile))
{
- alignFile = new Gff3File(inFile, type);
+ alignFile = new FeaturesFile(true, inFile, type);
}
return buildAlignmentFrom(alignFile);
} catch (Exception e)
}
else if (format.equals("PDB"))
{
- alignFile = new MCview.PDBfile(annotFromStructure,
- localSecondaryStruct, serviceSecondaryStruct, source);
+ // TODO obtain config value from preference settings
+ boolean isParseWithJMOL = false;
+ if (isParseWithJMOL)
+ {
+ StructureImportSettings.addSettings(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct);
+ alignFile = new JmolParser(source);
+ }
+ else
+ {
+ StructureImportSettings.setShowSeqFeatures(true);
+ alignFile = new MCview.PDBfile(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct, source);
+ }
+ ((StructureFile) alignFile).setDbRefType(Type.PDB);
+ }
+ else if (format.equalsIgnoreCase("mmCIF"))
+ {
+ StructureImportSettings.addSettings(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct);
+ alignFile = new JmolParser(source);
+ ((StructureFile) alignFile).setDbRefType(Type.MMCIF);
}
else if (format.equals("STH"))
{
{
alignFile = new PhylipFile(source);
}
- else if (format.equals(IdentifyFile.GFF3File))
+ else if (format.equals(IdentifyFile.FeaturesFile))
{
- alignFile = new Gff3File(inFile, type);
+ alignFile = new FeaturesFile(inFile, type);
}
else if (format.equals(JSONFile.FILE_DESC))
{
}
}
-
/**
* boilerplate method to handle data from an AlignFile and construct a new
* alignment or import to an existing alignment
/**
* create an alignment flatfile from a Jalview alignment view
+ *
* @param format
* @param jvsuffix
* @param av
{
afile = new PhylipFile();
}
- else if (format.equalsIgnoreCase(JSONFile.FILE_DESC))
- {
+ else if (format.equalsIgnoreCase(JSONFile.FILE_DESC))
+ {
afile = new JSONFile();
- }
+ }
else if (format.equalsIgnoreCase("RNAML"))
{
afile = new RnamlFile();
else
{
- throw new Exception(MessageManager.getString("error.implementation_error_unknown_file_format_string"));
+ throw new Exception(
+ MessageManager
+ .getString("error.implementation_error_unknown_file_format_string"));
}
afile.setNewlineString(newline);
long memf = -r.totalMemory() + r.freeMemory();
long t1 = -System.currentTimeMillis();
AlignmentI al = afa.readFile(args[i], FILE,
- new IdentifyFile().Identify(args[i], FILE));
+ new IdentifyFile().identify(args[i], FILE));
t1 += System.currentTimeMillis();
System.gc();
memf += r.totalMemory() - r.freeMemory();
} catch (Exception e)
{
System.err
- .println("Couln't format the alignment for output as a FASTA file.");
+ .println("Couln't format the alignment for output as a FASTA file.");
e.printStackTrace(System.err);
}
}
}
System.out.println("Read took " + (t1 / 1000.0) + " seconds.");
System.out
- .println("Difference between free memory now and before is "
- + (memf / (1024.0 * 1024.0) * 1.0) + " MB");
+ .println("Difference between free memory now and before is "
+ + (memf / (1024.0 * 1024.0) * 1.0) + " MB");
} catch (Exception e)
{
System.err.println("Exception when dealing with " + i
} catch (Exception ex)
{
System.err
- .println("Exception checking resources: " + file + " " + ex);
+ .println("Exception checking resources: " + file + " " + ex);
}
if (file.indexOf("://") > -1)
{
try
{
- String idformat = new jalview.io.IdentifyFile().Identify(file,
+ String idformat = new jalview.io.IdentifyFile().identify(file,
protocol);
if (idformat == null)
{
if (debug)
{
System.out
- .println("File deemed not accessible via " + protocol);
+ .println("File deemed not accessible via " + protocol);
}
fp.close();
return null;