- public String getJalviewAlignmentAsJsonString(AlignmentI alignment)
- throws IOException, JSONException
- {
- BioJsAlignmentPojo bjsAlignment = new BioJsAlignmentPojo();
-
- bjsAlignment.setGlobalColorScheme(getGlobalColorScheme());
- bjsAlignment.setJalviewVersion(jalviewVersion);
- bjsAlignment.setWebStartUrl(webStartLaunchServletUrl);
-
- int count = 0;
- for (SequenceI seq : alignment.getSequences())
- {
- StringBuilder name = new StringBuilder();
- name.append(seq.getName()).append("/").append(seq.getStart())
- .append("-").append(seq.getEnd());
-
- BioJsSeqPojo seqPojo = new BioJsSeqPojo();
- seqPojo.setId(String.valueOf(++count));
- seqPojo.setEnd(seq.getEnd());
- seqPojo.setStart(seq.getStart());
- seqPojo.setName(name.toString());
- seqPojo.setSeq(seq.getSequenceAsString());
-
- SequenceFeature[] seqFeatures = seq.getDatasetSequence()
- .getSequenceFeatures();
- if (seqFeatures != null)
- {
- ArrayList<BioJsFeaturePojo> bjsSeqFeatures = new ArrayList<BioJsFeaturePojo>();
- for (SequenceFeature sf : seqFeatures)
- {
- if (displayedFeatures != null
- && displayedFeatures.isVisible(sf.getType()))
- {
-
- // TODO: translate graduated/complex colourschemes to biojs model
- String featureColour = jalview.util.Format.getHexString(fr
- .findFeatureColour(Color.white, seq,
- seq.findIndex(sf.getBegin())));
- BioJsFeaturePojo bjsFeature = new BioJsFeaturePojo();
- bjsFeature.setFillColor(featureColour);
- bjsFeature.setXstart(seq.findIndex(sf.getBegin()) - 1);
- bjsFeature.setXend(seq.findIndex(sf.getEnd()));
- bjsFeature.setText(sf.getType());
- bjsSeqFeatures.add(bjsFeature);
- }
- }
- seqPojo.setFeatures(bjsSeqFeatures);
- }
- bjsAlignment.getSeqs().add(seqPojo);
- }
-
- return new com.json.JSONObject(bjsAlignment).toString()
- .replaceAll("xstart", "xStart").replaceAll("xend", "xEnd");
- }