| | 192 | getAdjustedLocation(negativeOri:Boolean, location:String, length:ZZ32):ZZ32 = do |
| | 193 | if (negativeOri) then |
| | 194 | strToInt(location.asFlatString().javaSubstr(1), 10) - length + 1 |
| | 195 | else |
| | 196 | strToInt(location) - 1 |
| | 197 | end |
| | 198 | end |
| | 199 | |
| | 200 | getReferenceChickenColorsSnip(adjustedLoc:ZZ32, seqEnd:ZZ32):FlatString = do |
| | 201 | referenceChickenColors.asFlatString().javaSubstr(adjustedLoc, seqEnd + 1) |
| | 202 | end |
| | 203 | |
| | 204 | getAdjustedSequence(negativeOri:Boolean, sequence:String, refChickenColorsSnip:FlatString):FlatString = do |
| | 205 | temp:FlatString = sequence.asFlatString().javaSubstr(1) |
| | 206 | tempLength:ZZ32 = |temp| |
| | 207 | if (negativeOri) then |
| | 208 | ((reverse(temp).asFlatString().javaSubstr(0, tempLength - 1 )).asFlatString() || refChickenColorsSnip.asFlatString().javaSubstr(tempLength - 1, tempLength).asFlatString()).asFlatString() |
| | 209 | else |
| | 210 | (refChickenColorsSnip.asFlatString().javaSubstr(0,1) || temp.asFlatString().javaSubstr(1).asFlatString()).asFlatString() |
| | 211 | end |
| | 212 | end |
| | 213 | |
| | 214 | |
| 202 | | var adjustedLoc:ZZ32 := 0 |
| 203 | | var adjustedSeq:FlatString := sequence.asFlatString().javaSubstr(1) |
| 204 | | var referenceChickenColorsSnip:FlatString |
| 205 | | var seqEnd:ZZ32 := 0 |
| 206 | | |
| 207 | | if negativeOrientation(header) then |
| 208 | | adjustedLoc := strToInt(loc.asFlatString().javaSubstr(1), 10) - length + 1 |
| 209 | | adjustedSeq := (reverse(adjustedSeq)).asFlatString() |
| 210 | | seqEnd := adjustedLoc + length - 1 |
| 211 | | referenceChickenColorsSnip := |
| 212 | | referenceChickenColors.asFlatString().javaSubstr(adjustedLoc, seqEnd + 1) |
| 213 | | println("neg adjustedSeq before: " adjustedSeq) |
| 214 | | adjustedSeq := (adjustedSeq.javaSubstr(0, |adjustedSeq| - 1) || referenceChickenColorsSnip.asFlatString().javaSubstr(|adjustedSeq| - 1,|adjustedSeq| )).asFlatString() |
| 215 | | println("neg adjustedSeq after: " adjustedSeq) |
| 216 | | else |
| 217 | | adjustedLoc := strToInt(loc) - 1 |
| 218 | | seqEnd := adjustedLoc + length - 1 |
| 219 | | referenceChickenColorsSnip := |
| 220 | | referenceChickenColors.asFlatString().javaSubstr(adjustedLoc, seqEnd + 1) |
| 221 | | println("pos adjustedSeq before: " adjustedSeq) |
| 222 | | adjustedSeq := (referenceChickenColorsSnip.asFlatString().javaSubstr(0,1) || |
| 223 | | adjustedSeq.asFlatString().javaSubstr(1)).asFlatString() |
| 224 | | println("pos adjustedSeq after: " adjustedSeq) |
| 225 | | end |
| 226 | | |
| 227 | | seqChickenColorsSnip:String = adjustedSeq |
| 228 | | referenceChickenAGCTSnip:String = referenceChickenAGCT.asFlatString().javaSubstr(adjustedLoc, seqEnd + 6) |
| 229 | | |
| 230 | | println("ReadASnipName = " name " pos = " adjustedLoc " length " length " end = " seqEnd) |
| 231 | | Snip(header, adjustedSeq, name, adjustedLoc, length, seqEnd, referenceChickenColorsSnip, seqChickenColorsSnip, referenceChickenAGCTSnip) |
| | 223 | negativeOri:Boolean = negativeOrientation(header) |
| | 224 | adjustedLocation:ZZ32 = getAdjustedLocation(negativeOri, loc, length) |
| | 225 | sequenceEnd:ZZ32 = adjustedLocation + length - 1 |
| | 226 | referenceChickenColorsSnip:FlatString = getReferenceChickenColorsSnip(adjustedLocation, sequenceEnd) |
| | 227 | adjustedSequence:FlatString := getAdjustedSequence(negativeOri, sequence, referenceChickenColorsSnip) |
| | 228 | referenceChickenAGCTSnip:String = referenceChickenAGCT.asFlatString().javaSubstr(adjustedLocation, sequenceEnd + 6) |
| | 229 | Snip(header, adjustedSequence, name, adjustedLocation, length, sequenceEnd, referenceChickenColorsSnip, adjustedSequence, referenceChickenAGCTSnip) |