笑死了,我真的笑死了
分析的时候发现怎么宏基因组数据这么小,怎么双端300bp,怎么拼接后这么烂
才发现用的16s数据,无语无语
从新来正好检查一遍,不得不说AI真好用,写脚本很专业
激活环境
conda activate aspera
写脚本
#!/bin/bash
mkdir -p rawdata
echo "已创建/确认rawdata目录存在"
ASCP_KEY="/home/shpc_101389/miniconda3/envs/aspera/etc/asperaweb_id_dsa.openssh"
ASCP_CMD=(ascp -QT -l 300m -P 33001 -i "$ASCP_KEY")
REMOTE_BASE="era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq"
TARGET_DIR="./rawdata"
samples=(
"SRR22185097 NDF20"
"SRR22185096 NDF20"
"SRR22185095 NDF40"
"SRR22185094 NDF40"
"SRR22185093 NDF40"
"SRR22185092 NDF40"
"SRR22185091 NDF40"
"SRR22185090 NDF40"
"SRR22185089 NDF20"
"SRR22185088 NDF20"
"SRR22185087 NDF20"
"SRR22185086 NDF20"
"SRR22185085 NDF20"
"SRR22185084 NDF20"
"SRR22185083 NDF40"
"SRR22185082 NDF40"
)
for sample_info in "${samples[@]}"; do
srr_id=$(awk '{print $1}' <<< "$sample_info")
group=$(awk '{print $2}' <<< "$sample_info")
prefix6="${srr_id:0:6}" # e.g. SRR221
last2="${srr_id: -2}" # e.g. 97
three_digit=$(printf "%03d" "$last2") # e.g. 097
echo "开始下载样本: $srr_id 到 $TARGET_DIR"
for mate in 1 2; do
remote_path="$REMOTE_BASE/$prefix6/$three_digit/$srr_id/${srr_id}_${mate}.fastq.gz"
tmp_local="$TARGET_DIR/${srr_id}_${mate}.fastq.gz"
final_local="$TARGET_DIR/${srr_id}_${group}_${mate}.fastq.gz"
if [[ -f "$final_local" ]]; then
echo "已存在,跳过: $final_local"
continue
fi
if ! "${ASCP_CMD[@]}" "$remote_path" "$TARGET_DIR"; then
echo "错误:下载失败 -> $remote_path"
exit 1
fi
if [[ ! -f "$tmp_local" ]]; then
echo "错误:下载完成但本地未找到文件 -> $tmp_local"
exit 1
fi
mv -f "$tmp_local" "$final_local"
echo "完成: $final_local"
done
echo "$srr_id 下载完毕"
echo "-------------------------"
done
echo "全部样本已成功下载到 $TARGET_DIR 目录!"
挂脚本
nohup bash 00fq.sh > wwj00.log 2>&1 &#提交任务
jobs -l#查看进程