基因序列转换脚本[bash]

sh/bash/dash/ksh/zsh等Shell脚本
回复
x312844584
帖子: 58
注册时间: 2009-10-23 23:46
送出感谢: 0
接收感谢: 0

基因序列转换脚本[bash]

#1

帖子 x312844584 » 2011-03-19 18:02

蛋疼没事就整了个, 缺点是你的文本里面不能有“大”和“小”字,没有去空格和换行符。

代码: 全选

#! /bin/bash -
#
# 此脚本可反转基因字符序列,并能转换成互补基因序列。
# 可用于测序序列分析,特别适合懒得开或者没有下载序列分析软件。
# Make it for fun. ekeyme

# Set separator = newline
IFS='
'

PATH=/usr/local/bin:/bin:/usr/bin
export PATH

rev=no
com=no

usage() {
	cat <<EOF
用法:
		seq [-c|-r|--help] gene_sequence_file

选项:	-c 转换基因序列,呈现其互补序列
		-r 反转基因序列

!注:	不提供如何选项,不作改变。
EOF
	exit
}

complement() {
	seq=`echo "$1" | sed \
		-e 's/A/大/g' -e 's/a/小/g' \
		-e 's/T/A/g' -e 's/t/a/g' \
		-e 's/大/T/g' -e 's/小/t/g' \
		-e 's/G/大/g' -e 's/g/小/g' \
		-e 's/C/G/g' -e 's/c/g/g' \
		-e 's/大/C/g' -e 's/小/c/g' \
		`
}

while [ $# -gt 0 ]
do
	case $1 in
	-c ) com=yes
		;;
	-r ) rev=yes
		;;
	--help ) usage
		;;
	-* ) echo "无法识别选项: $1" >&2
		 exit 1
		;;
	* ) break
		;;
	esac
	shift
done

[ -z $1 ] && {
	echo "没有可用基因序列!" >&2
	exit 1
	}
[ -f $1 ] && seq=`cat $1` || seq="$1"

[ "$com" = yes ] && complement "$seq"
[ "$rev" = yes ] && seq=`echo "$seq" | rev`

echo "$seq"
:em06
lubcat
帖子: 2061
注册时间: 2010-09-27 12:59
送出感谢: 0
接收感谢: 0

Re: 基因序列转换脚本[bash]

#2

帖子 lubcat » 2011-03-19 18:18

基因啥的 。不懂
:em06 :em11
生活里,有很多转瞬即逝,像在车站的告别,刚刚还相互拥抱,转眼已各自天涯。很多时候,你不懂,我也不懂,就这样,说着说着就变了,听着听着就倦了,看着看着就厌了,跟着跟着就慢了,走着走着就散了,爱着爱着就淡了,想着想着就算了。
回复

回到 “Shell脚本”