1 package jalview.ws.dbsources;
3 import jalview.datamodel.Alignment;
4 import jalview.datamodel.AlignmentI;
5 import jalview.datamodel.DBRefSource;
6 import jalview.datamodel.Sequence;
7 import jalview.io.FormatAdapter;
8 import jalview.io.IdentifyFile;
9 import jalview.ws.intermine.IntermineFetchClient;
10 import jalview.ws.seqfetcher.DbSourceProxyImpl;
12 import java.util.Iterator;
14 import org.json.simple.JSONArray;
15 import org.json.simple.JSONObject;
17 import com.stevesoft.pat.Regex;
19 public class Intermine extends DbSourceProxyImpl // implements DbSourceProxy
23 public String getDbSource()
25 return DBRefSource.INTERMINE;
29 public String getDbName()
35 public String getDbVersion()
41 public String getAccessionSeparator()
47 public Regex getAccessionValidator()
54 public String getTestQuery()
56 // TODO Auto-generated method stub
57 return "http://www.flymine.org/query/service/jbrowse/7227/features/2L?start=100000&end=100200&reference=true";
61 public boolean isValidReference(String accession)
66 @SuppressWarnings("unchecked")
68 public AlignmentI getSequenceRecords(String query) throws Exception
71 String jsonString = IntermineFetchClient.fetchData(query);
72 Sequence[] retrievedSeq = null;
75 System.out.println("Found json: " + jsonString);
76 org.json.simple.parser.JSONParser jsonParser = new org.json.simple.parser.JSONParser();
79 JSONObject jobj = (JSONObject) jsonParser.parse(jsonString);
80 JSONArray responses = (JSONArray) jobj.get("features");
82 for (Iterator<JSONObject> rvals = responses.iterator(); rvals
85 retrievedSeq = new Sequence[responses.size()];
87 JSONObject feature = rvals.next();
88 // name = feature.get("name").toString();
90 sequence = feature.get("seq").toString();
91 int start = Integer.valueOf(feature.get("start").toString());
92 int end = Integer.valueOf(feature.get("end").toString());
94 retrievedSeq[count++] = new Sequence(name, sequence, start, end);
96 System.out.println("Sequence : " + sequence);
104 return parseResult(retrievedSeq);
108 protected Alignment parseResult(String result) throws Exception
110 Alignment sequences = null;
111 String format = new IdentifyFile().Identify(result, "Paste");
112 if (FormatAdapter.isValidFormat(format))
114 sequences = new FormatAdapter().readFile(result, "Paste",
121 private Alignment parseResult(Sequence[] seqs)
123 Alignment sequences = new Alignment(seqs);