#!/bin/bash
# 检查是否提供了文件名
if [ $# -eq 0 ]; then
echo "Usage: $0 <fasta_file>"
exit 1
fi
# 读取FASTA文件名
fasta_file=$1
# 检查文件是否存在
if [ ! -f "$fasta_file" ]; then
echo "File not found!"
exit 1
fi
# 初始化变量
total_gc_count=0
total_base_count=0
# 处理FASTA文件
while read -r line; do
if [[ $line != ">"* ]]; then
# 计算当前行中的GC含量
gc_count=$(echo "$line" | grep -o "[GCgc]" | wc -l)
base_count=$(echo -n "$line" | wc -c)
# 累加到总计数中
total_gc_count=$((total_gc_count + gc_count))
total_base_count=$((total_base_count + base_count))
fi
done < "$fasta_file"
# 计算总的GC含量
if [ $total_base_count -gt 0 ]; then
gc_content=$(echo "scale=2; $total_gc_count * 100 / $total_base_count" | bc)
echo "Total GC Content: $gc_content%"
else
echo "No sequence data found in the file."
fi
全局GC含量计算
最新推荐文章于 2024-10-11 20:52:27 发布