コード例 #1
0
 @Override
 public int convertSourceCoordinateToLocalCoordinate(int sourceCoordinate) {
   List<Exon> exons = BioObjectUtil.createSortedFeatureListByLocation(getExons());
   int localCoordinate = -1;
   if (exons.size() == 0) {
     return super.convertSourceCoordinateToLocalCoordinate(sourceCoordinate);
   }
   int currentCoordinate = 0;
   for (Exon exon : exons) {
     if (exon.getFeatureLocation().getFmin() <= sourceCoordinate
         && exon.getFeatureLocation().getFmax() >= sourceCoordinate) {
       if (getFeatureLocation().getStrand() == -1) {
         localCoordinate =
             currentCoordinate + (exon.getFeatureLocation().getFmax() - sourceCoordinate) - 1;
       } else {
         localCoordinate =
             currentCoordinate + (sourceCoordinate - exon.getFeatureLocation().getFmin());
       }
     }
     currentCoordinate += exon.getLength();
   }
   return localCoordinate;
 }
コード例 #2
0
 @Override
 public int convertLocalCoordinateToSourceCoordinate(int localCoordinate) {
   List<Exon> exons = BioObjectUtil.createSortedFeatureListByLocation(getExons());
   int sourceCoordinate = -1;
   if (exons.size() == 0) {
     return super.convertLocalCoordinateToSourceCoordinate(localCoordinate);
   }
   int currentLength = 0;
   int currentCoordinate = localCoordinate;
   for (Exon exon : exons) {
     int exonLength = exon.getLength();
     if (currentLength + exonLength >= localCoordinate) {
       if (getFeatureLocation().getStrand() == -1) {
         sourceCoordinate = exon.getFeatureLocation().getFmax() - currentCoordinate - 1;
       } else {
         sourceCoordinate = exon.getFeatureLocation().getFmin() + currentCoordinate;
       }
       break;
     }
     currentLength += exonLength;
     currentCoordinate -= exonLength;
   }
   return sourceCoordinate;
 }