From: martinahansen Date: Fri, 10 Dec 2010 16:40:43 +0000 (+0000) Subject: added join_seq biopiece X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=7c5b28cd46a8dc97a6b9b737ddeba181e92ca707;p=biopieces.git added join_seq biopiece git-svn-id: http://biopieces.googlecode.com/svn/trunk@1184 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/bp_bin/join_seq b/bp_bin/join_seq new file mode 100755 index 0000000..6abc8c8 --- /dev/null +++ b/bp_bin/join_seq @@ -0,0 +1,63 @@ +#!/usr/bin/env ruby + +# Copyright (C) 2007-2010 Martin A. Hansen. + +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# http://www.gnu.org/copyleft/gpl.html + +# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +# This program is part of the Biopieces framework (www.biopieces.org). + +# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DESCRIPTION <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +# Join sequences in the stream. + +# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +require 'biopieces' +require 'fasta' +require 'seq' + +casts = [] + +bp = Biopieces.new + +options = bp.parse(ARGV, casts) + +seq = Seq.new(nil, "") + +bp.each_record do |record| + if record.has_key? :SEQ + unless seq.seq_name + seq.seq_name = record[:SEQ_NAME] + end + seq.seq << record[:SEQ] + end + + bp.puts record +end + +if seq.seq != "" + new_record = seq.to_bp + new_record[:REC_TYPE] = "JOIN" + bp.puts new_record +end + +# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + +__END__ diff --git a/bp_test/in/join_seq.in b/bp_test/in/join_seq.in new file mode 100644 index 0000000..c5abe34 --- /dev/null +++ b/bp_test/in/join_seq.in @@ -0,0 +1,16 @@ +SEQ_NAME: test1 +SEQ: aaaa +SEQ_LEN: 4 +--- +SEQ_NAME: test2 +SEQ: tttt +SEQ_LEN: 4 +--- +SEQ_NAME: test3 +SEQ: cccc +SEQ_LEN: 4 +--- +SEQ_NAME: test4 +SEQ: gggg +SEQ_LEN: 4 +--- diff --git a/bp_test/out/join_seq.out.1 b/bp_test/out/join_seq.out.1 new file mode 100644 index 0000000..44b89fb --- /dev/null +++ b/bp_test/out/join_seq.out.1 @@ -0,0 +1,21 @@ +SEQ_NAME: test1 +SEQ: aaaa +SEQ_LEN: 4 +--- +SEQ_NAME: test2 +SEQ: tttt +SEQ_LEN: 4 +--- +SEQ_NAME: test3 +SEQ: cccc +SEQ_LEN: 4 +--- +SEQ_NAME: test4 +SEQ: gggg +SEQ_LEN: 4 +--- +SEQ_NAME: test1 +SEQ: aaaattttccccgggg +SEQ_LEN: 16 +REC_TYPE: JOIN +--- diff --git a/bp_test/test/test_join_seq b/bp_test/test/test_join_seq new file mode 100755 index 0000000..61c5709 --- /dev/null +++ b/bp_test/test/test_join_seq @@ -0,0 +1,7 @@ +#!/bin/bash + +source "$BP_DIR/bp_test/lib/test.sh" + +run "$bp -I $in -O $tmp" +assert_no_diff $tmp $out.1 +clean