module Bio::Big::FrameCodonHelpers::CreateShortFrame
Functions that move a frame forward, or backward, creating new short frames.
Public Class Methods
create_left(fr,orfs,nseq)
click to toggle source
# File lib/bigbio/db/emitters/orf_emitter.rb, line 43 def CreateShortFrame.create_left fr,orfs,nseq # Reversed (real locations on contig): # # | 3 21 B | # ttaaatgtaatttaggtaaatttat atgtaaattaggta (reversed) # ...^--============xxx^=======xxx # ^ ^ # Actual feed: # # s2= s1= # "atggattaaatgta" "tatttaaatggatttaatgtaaatt" # ......xxx===== ~===xx^============--^... # 0 1 2 3 0 1 2 3 seq1 = fr.seq # original sequence len1 = seq1.size ntseq_pos1 = fr.ntseq_pos # right side of seq (|) bridge = len1 % 3 # chomp left side (B) remove = if orfs.size > 0 len1 - bridge - (orfs.first.pos)*3 + 1 else 0 end ntseq_pos2 = ntseq_pos1+remove-1 # pos against main contig seq2 = nseq + seq1[0..(len1-remove)] ShortReversedFrameState.new seq2,ntseq_pos2,fr.min_size_codons*3 end
create_right(fr,orfs,rseq)
click to toggle source
# File lib/bigbio/db/emitters/orf_emitter.rb, line 30 def CreateShortFrame.create_right fr,orfs,rseq seq = fr.seq ntseq_pos = fr.ntseq_pos remove = if orfs.size > 0 orfs.last.rpos*3 else 0 end ntseq_pos += remove nseq = seq[remove..-1] + rseq ShortFrameState.new nseq,ntseq_pos,fr.min_size_codons*3 end