protected BasicGene geneFromFeature(Feature feat) { BasicGene ret = new Gene(); ret.setUniqueName(feat.getUniqueName()); ret.setFeatureId(feat.getFeatureId()); List<String> synonyms = new ArrayList<String>(); for (FeatureSynonym fs : feat.getFeatureSynonyms()) { String type = fs.getSynonym().getType().getName(); if (type.equals("synonym")) { synonyms.add(fs.getSynonym().getName()); } } ret.setSynonyms(synonyms); if (StringUtils.hasText(feat.getName())) { ret.setName(feat.getName()); } for (FeatureRelationship fr : feat.getFeatureRelationshipsForObjectId()) { Feature otherFeat = fr.getSubjectFeature(); if (otherFeat instanceof org.gmod.schema.feature.Transcript) { ret.addTranscript(makeTranscript(otherFeat)); } } ret.setOrganism(feat.getOrganism().getCommonName()); FeatureLoc loc = feat.getRankZeroFeatureLoc(); Feature chromosomeFeature = loc.getSourceFeature(); Chromosome chromosome = new Chromosome( chromosomeFeature.getDisplayName(), chromosomeFeature.getFeatureId(), chromosomeFeature.getSeqLen()); ret.setChromosome(chromosome); ret.setStrand(loc.getStrand()); ret.setFmin(loc.getFmin()); ret.setFmax(loc.getFmax()); return ret; }