随机选取1000条序列

1、安装seqtk
conda create -n seqtk_env
conda activate seqtk_env
conda install -c bioconda seqtk
seqtk
2、脚本

点击查看代码
#!/bin/bash
# ============================================
# 选取代表序列直到数量达到1000个
# ============================================

# 获取所有代表序列的列表
representative_seqs="1fanzor_representative_sequences-id70c50-id90c90.fasta"
final_representative_seqs="final_representative_sequences.fasta"

# 随机选择1000条代表序列
echo "[4/4] 随机选择1000条代表序列..."

# 如果代表序列超过1000条,就随机抽取1000条
seq_count=$(grep -c '>' $representative_seqs)
if [ $seq_count -gt 1000 ]; then
    echo "代表序列总数: $seq_count,随机选择1000条..."
    # 随机选择1000条
    seqtk sample $representative_seqs 1000 > $final_representative_seqs
else
    echo "代表序列总数小于1000条,无需进一步选择..."
    cp $representative_seqs $final_representative_seqs
fi

echo "最终代表序列数: $(grep -c '>' $final_representative_seqs)"
echo "代表序列已选择完成,文件: $final_representative_seqs"

posted @ 2025-12-26 13:56  Zarinan  阅读(18)  评论(0)    收藏  举报