package jalview.ws.dbsources;
+import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefSource;
-import jalview.ws.seqfetcher.DbSourceProxy;
+import jalview.io.FormatAdapter;
+import jalview.io.IdentifyFile;
+import jalview.ws.intermine.IntermineFetchClient;
import jalview.ws.seqfetcher.DbSourceProxyImpl;
+import java.util.Iterator;
+
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+
import com.stevesoft.pat.Regex;
-public class Intermine extends DbSourceProxyImpl implements DbSourceProxy
+public class Intermine extends DbSourceProxyImpl // implements DbSourceProxy
{
@Override
@Override
public String getDbVersion()
{
- // TODO Auto-generated method stub
- return null;
+ return "0";
}
@Override
public String getAccessionSeparator()
{
- // TODO Auto-generated method stub
return null;
}
@Override
public Regex getAccessionValidator()
{
- // TODO Auto-generated method stub
return null;
}
- // @Override
- // public Hashtable getDbSourceProperties()
- // {
- // // TODO Auto-generated method stub
- // return null;
- // }
@Override
public String getTestQuery()
{
// TODO Auto-generated method stub
- return null;
+ return "http://www.flymine.org/query/service/jbrowse/7227/features/2L?start=100000&end=100200&reference=true";
}
@Override
public boolean isValidReference(String accession)
{
- // TODO Auto-generated method stub
return false;
}
@Override
- public AlignmentI getSequenceRecords(String queries) throws Exception
+ public AlignmentI getSequenceRecords(String query) throws Exception
{
- // TODO Auto-generated method stub
- return null;
+ startQuery();
+ String jsonString = IntermineFetchClient.fetchData(query);
+
+ Object sequenceString = "";
+ System.out.println("Found json: " + jsonString);
+ org.json.simple.parser.JSONParser jsonParser = new org.json.simple.parser.JSONParser();
+ try
+ {
+ JSONObject jobj = (JSONObject) jsonParser.parse(jsonString);
+ JSONArray responses = (JSONArray) jobj.get("features");
+ for (Iterator<JSONObject> rvals = responses.iterator(); rvals
+ .hasNext();)
+ {
+ JSONObject feature = rvals.next();
+ Object seq = feature.get("seq");
+ System.out.println("Sequence : " + seq.toString());
+ }
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ stopQuery();
+ return parseResult(sequenceString.toString());
}
@Override
- public boolean queryInProgress()
+ protected Alignment parseResult(String result) throws Exception
{
- // TODO Auto-generated method stub
- return false;
+ Alignment sequences = null;
+ String format = new IdentifyFile().Identify(result, "Paste");
+ if (FormatAdapter.isValidFormat(format))
+ {
+ sequences = new FormatAdapter().readFile(result, "Paste",
+ format);
+ }
+ return sequences;
}
- @Override
- public StringBuffer getRawRecords()
- {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public boolean isA(Object dbsourceproperty)
- {
- // TODO Auto-generated method stub
- return false;
- }
+
+
@Override
public int getTier()
{
- // TODO Auto-generated method stub
return 0;
}