#! /bin/csh -f # # Edit pscoffee.tmpl, not pscoffee. # cat << ENDF > _lara2pairalign #! /usr/bin/env ruby gets line = gets nseq = line.to_i gets seq = [] len = [] for i in 0..(nseq-1) line = gets seq.push( line.split(' ').slice(2).to_s ) len.push( line.split(' ').slice(1).to_i ) gets end #p seq #p len while 1 line = gets mem1 = line.split(' ').slice(1).to_i - 1 mem2 = line.split(' ').slice(2).to_i - 1 # p mem1 # p mem2 gets aln1 = "" aln2 = "" pos1bk = len[mem1] - 1 pos2bk = len[mem2] - 1 while 1 line = gets pos1 = line.split(' ').slice(0).to_i - 1 pos2 = line.split(' ').slice(1).to_i - 1 break if line.to_i == 0 # puts "\npos = \n" # p pos1 # p pos2 next if pos1 == 0 && pos2 == 0 if pos1bk > pos1 then j = pos1bk while j > pos1 # puts "j1= " + j.to_s aln1 = seq[mem1][j..j] + aln1 aln2 = '-' + aln2 j -= 1 end end if pos2bk > pos2 then j = pos2bk while j > pos2 # puts "j2= " + j.to_s aln1 = '-' + aln1 aln2 = seq[mem2][j..j] + aln2 j -= 1 end end aln1 = seq[mem1][pos1..pos1] + aln1 aln2 = seq[mem2][pos2..pos2] + aln2 # puts "\nadding nuc" # p aln1 # p aln2 pos1bk = pos1-1 pos2bk = pos2-1 # puts "\nposbk = \n" # p pos1bk # p pos2bk end if pos1bk >= 0 then j = pos1bk while j >= 0 aln1 = seq[mem1][j..j] + aln1 aln2 = '-' + aln2 j -= 1 end end if pos2bk >= 0 then j = pos2bk while j >= 0 aln1 = '-' + aln1 aln2 = seq[mem2][j..j] + aln2 j -= 1 end end puts ">#{mem1}" puts aln1 puts ">#{mem2}" puts aln2 break if line =~ /^!/ end exit ENDF chmod guo+rx _lara2pairalign echo "####### IN PSCOFFEE ######" set fname = `echo $1 | sed 's/-in=//'` cp $fname larapairs.$$ ./_lara2pairalign larapairs.$$ > larapairs rm larapairs.$$