From b68c61dd9007b66ca91b2cd112c90f1fecc3c6cd Mon Sep 17 00:00:00 2001 From: martinahansen Date: Mon, 6 Jun 2011 14:58:49 +0000 Subject: [PATCH] added cat_seq biopiece git-svn-id: http://biopieces.googlecode.com/svn/trunk@1460 74ccb610-7750-0410-82ae-013aeee3265d --- bp_bin/cat_seq | 56 +++++++++++++++++++++++++++++++++++++++ bp_test/in/cat_seq.in | 12 +++++++++ bp_test/out/cat_seq.out.1 | 16 +++++++++++ bp_test/test/test_cat_seq | 7 +++++ 4 files changed, 91 insertions(+) create mode 100755 bp_bin/cat_seq create mode 100644 bp_test/in/cat_seq.in create mode 100644 bp_test/out/cat_seq.out.1 create mode 100755 bp_test/test/test_cat_seq diff --git a/bp_bin/cat_seq b/bp_bin/cat_seq new file mode 100755 index 0000000..060b7d5 --- /dev/null +++ b/bp_bin/cat_seq @@ -0,0 +1,56 @@ +#!/usr/bin/env ruby + +# Copyright (C) 2007-2011 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 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +# Concatenates sequences in the stream and outputs a record with this sequence. + +# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + +require 'maasha/biopieces' + +options = Biopieces.options_parse(ARGV) + +seq = "" + +Biopieces.open(options[:stream_in], options[:stream_out]) do |input, output| + input.each_record do |record| + seq << record[:SEQ] if record.has_key? :SEQ + output.puts record + end + + new_record = {} + new_record[:SEQ] = seq + new_record[:SEQ_LEN] = seq.length + new_record[:REC_TYPE] = "CAT" + + output.puts new_record +end + + +# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + +__END__ diff --git a/bp_test/in/cat_seq.in b/bp_test/in/cat_seq.in new file mode 100644 index 0000000..1f6246f --- /dev/null +++ b/bp_test/in/cat_seq.in @@ -0,0 +1,12 @@ +SEQ_NAME: test1 +SEQ: TACGATGCTAGCNATCYGACNACTGACTGACN +SEQ_LEN: 32 +--- +SEQ_NAME: test2 +SEQ: TACGATGCTAGCNATCYGACNACTG +SEQ_LEN: 25 +--- +SEQ_NAME: test3 +SEQ: TACGATGCTAGCNATCY +SEQ_LEN: 17 +--- diff --git a/bp_test/out/cat_seq.out.1 b/bp_test/out/cat_seq.out.1 new file mode 100644 index 0000000..45481e8 --- /dev/null +++ b/bp_test/out/cat_seq.out.1 @@ -0,0 +1,16 @@ +SEQ_NAME: test1 +SEQ: TACGATGCTAGCNATCYGACNACTGACTGACN +SEQ_LEN: 32 +--- +SEQ_NAME: test2 +SEQ: TACGATGCTAGCNATCYGACNACTG +SEQ_LEN: 25 +--- +SEQ_NAME: test3 +SEQ: TACGATGCTAGCNATCY +SEQ_LEN: 17 +--- +SEQ: TACGATGCTAGCNATCYGACNACTGACTGACNTACGATGCTAGCNATCYGACNACTGTACGATGCTAGCNATCY +SEQ_LEN: 74 +REC_TYPE: CAT +--- diff --git a/bp_test/test/test_cat_seq b/bp_test/test/test_cat_seq new file mode 100755 index 0000000..61c5709 --- /dev/null +++ b/bp_test/test/test_cat_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 -- 2.39.2