import jalview.datamodel.DBRefSource;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.PDBEntry.Type;
+import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.datamodel.features.SequenceFeaturesI;
import jalview.io.DataSourceType;
import jalview.io.FileFormat;
import jalview.io.FileFormatI;
@Override
public Regex getAccessionValidator()
{
- return new Regex("(AF-[A-Z]+[0-9]+[A-Z0-9]+-F1)");
+ Regex validator = new Regex("(AF-[A-Z]+[0-9]+[A-Z0-9]+-F1)");
+ validator.setIgnoreCase(true);
+ return validator;
}
/*
@Override
public AlignmentI getSequenceRecords(String queries) throws Exception
{
+ return getSequenceRecords(queries, null);
+ }
+
+ public AlignmentI getSequenceRecords(String queries, String retrievalUrl)
+ throws Exception
+ {
AlignmentI pdbAlignment = null;
String chain = null;
String id = null;
return null;
}
String alphaFoldCif = getAlphaFoldCifDownloadUrl(id);
+ if (retrievalUrl != null)
+ {
+ alphaFoldCif = retrievalUrl;
+ }
try
{
- File tmpFile = File.createTempFile(id, "cif");
+ File tmpFile = File.createTempFile(id, ".cif");
UrlDownloadClient.download(alphaFoldCif, tmpFile);
-
+
// may not need this check ?
file = tmpFile.getAbsolutePath();
if (file == null)
return null;
}
- pdbAlignment = importDownloadedStructureFromUrl(alphaFoldCif, tmpFile, id, chain, getDbSource(),getDbVersion());
-
+ pdbAlignment = importDownloadedStructureFromUrl(alphaFoldCif, tmpFile,
+ id, chain, getDbSource(), getDbVersion());
if (pdbAlignment == null || pdbAlignment.getHeight() < 1)
{
}
/**
- * general purpose structure importer - designed to yield alignment useful for transfer of annotation to associated sequences
+ * general purpose structure importer - designed to yield alignment useful for
+ * transfer of annotation to associated sequences
+ *
* @param alphaFoldCif
* @param tmpFile
* @param id
* @return
* @throws Exception
*/
- public static AlignmentI importDownloadedStructureFromUrl(String alphaFoldCif,
- File tmpFile, String id, String chain, String dbSource, String dbVersion) throws Exception
+ public static AlignmentI importDownloadedStructureFromUrl(
+ String alphaFoldCif, File tmpFile, String id, String chain,
+ String dbSource, String dbVersion) throws Exception
{
String file = tmpFile.getAbsolutePath();
// todo get rid of Type and use FileFormatI instead?
dbVersion, (chid == null ? id : id + chid));
// dbentry.setMap()
pdbcs.addDBRef(dbentry);
+ // update any feature groups
+ List<SequenceFeature> allsf = pdbcs.getFeatures()
+ .getAllFeatures();
+ List<SequenceFeature> newsf = new ArrayList<SequenceFeature>();
+ if (allsf != null && allsf.size() > 0)
+ {
+ for (SequenceFeature f : allsf)
+ {
+ if (file.equals(f.getFeatureGroup()))
+ {
+ f = new SequenceFeature(f, f.type, f.begin, f.end, id,
+ f.score);
+ }
+ newsf.add(f);
+ }
+ pdbcs.setSequenceFeatures(newsf);
+ }
}
}
else
{
return new PDBFeatureSettings();
}
+
}