Module: Bio::Big::FrameCodonHelpers::CreateShortFrame
- Defined in:
- lib/bigbio/db/emitters/orf_emitter.rb
Overview
Functions that move a frame forward, or backward, creating new short frames.
Class Method Summary collapse
Class Method Details
.create_left(fr, orfs, nseq) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# 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) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 |
# 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 |