📄 annotation.java
字号:
// while(itr.hasNext()) {
// Long i = (Long)itr.next();
// ProteinSequence s = (ProteinSequence)proteinSequence.get(i);
// buffer.append ("<line index=\"" + i + "\">");
// buffer.append (s.getAminoAcidSequence());
// buffer.append ("</line>");
//
// }
// }
//// Iterator itr = sequenceData.values().iterator();
//// int i=1;
//// while(itr.hasNext()) {
//// Sequence s = (Sequence)itr.next();
//// buffer.append ("<line index=\"" + i + "\">");
//// buffer.append (s.getBases());
//// buffer.append ("</line>");
//// i=i+s.getBases().length();
//// }
// buffer.append("</proteinSequence>");
// //zhangc added
// buffer.append ("<qualifiers>");
// if(f.getQualifiers()!= null)
// {
//
// for (Iterator qiter = f.getQualifiers().listIterator(); qiter.hasNext();)
// {
// Qualifier q= (Qualifier) qiter.next();
// buffer.append ("<qualifier name=\""+q.getName()+"\" value=\""+q.getValue()+ "\"/>");
//
// }
//
// }
// buffer.append("</qualifiers>");
// //zhangc added end
//
// buffer.append ("</feature>");
//
// }
// }
// buffer.append ("</features>");
// buffer.append("</annotation>");
// System.out.println("before out of m?");
// return buffer.toString();
// }
public String toXml() {
//TODO implement it using XStream
StringBuffer buffer = new StringBuffer();
buffer.append("<annotation id=\"" + id + "\" definition=\"" + definition + "\" length=\"" + length + "\">");
/*buffer.append("<sequenceData>");
Iterator itr = sequenceData.values().iterator();
int i=0;
while(itr.hasNext()) {
Sequence s = (Sequence)itr.next();
buffer.append ("<line index=\"" + i + "\">");
buffer.append (s.getBases());
buffer.append ("</line>");
i++;
}
buffer.append("</sequenceData>");*/
/* buffer.append ("<features>");
if (features != null) {
for (Iterator iter = features.iterator(); iter.hasNext();) {
Feature f = (Feature) iter.next();
buffer.append ("<feature id=\"" + f.getId() + "\" name=\"" + f.getName() + "\" type=\"" + f.getType() + "\" frame=\"" + f.frame + "\" complement=\"" + f.isComplement() + "\">");
buffer.append ("<location>");
Location l = f.getLocation();
if (l != null && l.getRangeList() != null) {
for (Iterator iterator = l.getRangeList().iterator(); iterator
.hasNext();) {
Range r = (Range) iterator.next();
buffer.append("<range start=\"" + r.getStart() + "\" end=\"" + r.getEnd() + "\"/>");
}
}
buffer.append ("</location>");
buffer.append ("</feature>");
}
}
buffer.append ("</features>");*/
// buffer.append("<sequenceData>");
if(sequenceData != null)
{
Iterator itr = sequenceData.keySet().iterator();
while(itr.hasNext()) {
Long i = (Long)itr.next();
Sequence s = (Sequence)sequenceData.get(i);
// buffer.append ("<line index=\"" + i + "\">");
// buffer.append (s.getBases());
// buffer.append ("</line>");
s.getBases();
}
}
// Iterator itr = sequenceData.values().iterator();
// int i=1;
// while(itr.hasNext()) {
// Sequence s = (Sequence)itr.next();
// buffer.append ("<line index=\"" + i + "\">");
// buffer.append (s.getBases());
// buffer.append ("</line>");
// i=i+s.getBases().length();
// }
// buffer.append("</sequenceData>");
// buffer.append ("<features>");
if (features != null) {
for (Iterator iter = features.iterator(); iter.hasNext();) {
Feature f = (Feature) iter.next();
// buffer.append ("<feature id=\"" + f.getId() + "\" name=\"" + f.getName() + "\" type=\"" + f.getType() + "\" frame=\"" + f.frame + "\" complement=\"" + f.isComplement() + "\">");
// buffer.append ("<location>");
Location l = f.getLocation();
if (l != null && l.getRangeList() != null) {
for (Iterator iterator = l.getRangeList().iterator(); iterator
.hasNext();) {
Range r = (Range) iterator.next();
// buffer.append("<range start=\"" + r.getStart() + "\" end=\"" + r.getEnd() + "\"/>");
}
}
// buffer.append ("</location>");
//protein sequence
// buffer.append("<proteinSequence>");
Map<Long, ProteinSequence> proteinSequence = f.getProteinSequence();
if(proteinSequence!= null && proteinSequence.size()!=0)
{
Iterator itr = proteinSequence.keySet().iterator();
while(itr.hasNext()) {
Long i = (Long)itr.next();
ProteinSequence s = (ProteinSequence)proteinSequence.get(i);
// buffer.append ("<line index=\"" + i + "\">");
// buffer.append (s.getAminoAcidSequence());
// buffer.append ("</line>");
}
}
// Iterator itr = sequenceData.values().iterator();
// int i=1;
// while(itr.hasNext()) {
// Sequence s = (Sequence)itr.next();
// buffer.append ("<line index=\"" + i + "\">");
// buffer.append (s.getBases());
// buffer.append ("</line>");
// i=i+s.getBases().length();
// }
// buffer.append("</proteinSequence>");
//zhangc added
// buffer.append ("<qualifiers>");
if(f.getQualifiers()!= null)
{
for (Iterator qiter = f.getQualifiers().listIterator(); qiter.hasNext();)
{
Qualifier q= (Qualifier) qiter.next();
// buffer.append ("<qualifier name=\""+q.getName()+"\" value=\""+q.getValue()+ "\"/>");
}
}
// buffer.append("</qualifiers>");
//zhangc added end
// buffer.append ("</feature>");
}
}
// buffer.append ("</features>");
// buffer.append("</annotation>");
System.out.println("before out of m annotation?");
return buffer.toString();
}
public void fromXml (String xml) throws Exception {
//TODO implement it using XStream
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLStreamReader reader =
inputFactory.createXMLStreamReader(new StringReader(xml));
while(reader.hasNext()) {
int event = reader.next();
if (event == XMLStreamReader.START_ELEMENT) {
String tag = reader.getLocalName();
if (tag.equals("annotation")) {
this.id=Long.parseLong(reader.getAttributeValue(null, "id"));
this.definition= reader.getAttributeValue(null, "definition");
this.length=Long.parseLong(reader.getAttributeValue(null, "length"));
}
if (tag.equals("sequenceData")) {
this.sequenceData = new TreeMap<Long, Sequence> ();
}
if (tag.equals("line")) {
long index = Long.parseLong(reader.getAttributeValue(null, "index"));
String bases = reader.getElementText();
Sequence s = new Sequence();
s.setBases(bases);
s.setStart(new Long (index));
this.sequenceData.put (index, s);
}
if (tag.equals("features")) {
this.features = new ArrayList<Feature> ();
}
if (tag.equals("feature")) {
Feature f = new Feature();
f.setId(Long.parseLong(reader.getAttributeValue(null, "id")));
f.setName(reader.getAttributeValue(null, "name"));
f.setType(reader.getAttributeValue(null, "type"));
f.setFrame(Integer.parseInt(reader.getAttributeValue(null, "frame")));
f.setComplement(Boolean.parseBoolean(reader.getAttributeValue(null, "complement")));
// get location
reader.next();
Location l = new Location();
f.setLocation(l);
l.rangeList = new ArrayList<Range>();
while (reader.hasNext()) {
// get Ranges
event = reader.next();
if (event == XMLStreamReader.START_ELEMENT) {
tag = reader.getLocalName();
if (tag.equals("range")) {
Range r = new Range();
r.setStart(Long.parseLong(reader.getAttributeValue(null, "start")));
r.setEnd(Long.parseLong(reader.getAttributeValue(null, "end")));
l.rangeList.add(r);
}
if (reader.getLocalName().equals("location")) {
break;
}
}
}
this.features.add(f);
}
}
}
}
/**
* @return pathway list
*
* @hibernate.bag name="pathway" lazy="false" cascade="all"
* @hibernate.key column="annotation_id" not-null="true"
* @hibernate.collection-one-to-many class="org.csbl.genome.model.Pathway"
*/
public List<Pathway> getPathways() {
return pathways;
}
public void setPathways(List<Pathway> pathways) {
this.pathways = pathways;
}
public String getSubSequence(int start, int end){
StringBuffer subString= new StringBuffer();
Iterator itr = this.sequenceData.keySet().iterator();
while(itr.hasNext()){
Long index = (Long)itr.next();
String temp = this.sequenceData.get(index).getBases();
subString.append(temp);
}
//return this.sequenceData.toString().substring(start, end);
//return subString.toString().substring(start, end);
return subString.substring(start, end);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -