85 lines
2.5 KiB
Bash
85 lines
2.5 KiB
Bash
#!/bin/bash
|
|
|
|
# ==========================================
|
|
# 全流程自动化脚本 (直通筛选版)
|
|
# ==========================================
|
|
|
|
# 1. 环境初始化
|
|
echo "============ Stage 0: Initialization ============"
|
|
chmod -R u+w ../Screen
|
|
source $(conda info --base)/etc/profile.d/conda.sh
|
|
|
|
# 激活 screen 环境
|
|
conda activate ~/anaconda3/envs/screen
|
|
cd py/
|
|
export PYTHONPATH=$(pwd):$PYTHONPATH
|
|
|
|
# 2. 预处理与文件整理 (替代原 Step 1)
|
|
echo "============ Stage 1: File Organization (Direct Pass) ============"
|
|
# 运行预处理 (可选,确保 input 文件夹就绪)
|
|
python pre_process.py
|
|
|
|
# 运行直通版整理脚本
|
|
# 功能: 读取 input, 识别阴离子, 按结构复制到 after_step1/Anion/ID/ID.cif
|
|
# 跳过 check_basic 等耗时检查
|
|
python step1_direct.py
|
|
|
|
# 生成 Zeo++ 运行脚本
|
|
# 功能: 遍历 after_step1, 生成 analyze.sh 和 sh_all.sh
|
|
python make_sh.py
|
|
|
|
# 3. 运行 Zeo++ 计算
|
|
echo "============ Stage 2: Zeo++ Calculations ============"
|
|
conda deactivate
|
|
conda activate ~/anaconda3/envs/zeo
|
|
|
|
# 进入数据目录
|
|
cd ../data/after_step1
|
|
if [ -f "sh_all.sh" ]; then
|
|
# 执行所有计算
|
|
source sh_all.sh
|
|
# 清理总脚本 (可选)
|
|
# rm sh_all.sh
|
|
else
|
|
echo "Error: sh_all.sh not found! Please check Stage 1."
|
|
exit 1
|
|
fi
|
|
|
|
# 4. 数据提取与高级分析
|
|
echo "============ Stage 3: Data Extraction & Analysis ============"
|
|
# 切回 screen 环境
|
|
conda deactivate
|
|
conda activate ~/anaconda3/envs/screen
|
|
cd ../../py
|
|
|
|
# 3.1 提取 Zeo++ 基础数据
|
|
# 输出: ../output/Anion/Anion.csv (含 Perc, Min_d, Max_node)
|
|
python extract_data.py
|
|
|
|
# 3.2 计算角共享 (Corner Sharing)
|
|
# 输出: 更新 CSV, 增加 Is_Only_Corner_Sharing 列
|
|
echo "Running Corner Sharing Analysis..."
|
|
python analyze_cs.py
|
|
|
|
# 3.3 联合筛选
|
|
# 功能: 读取 CSV, 根据阈值筛选, 生成 ../data/after_screening 软链接/文件
|
|
python step2_4_combined.py
|
|
|
|
# 3.4 CSM 分析 (仅针对筛选后的材料)
|
|
# 输出: ../output/CSM/Anion/ID.dat
|
|
echo "Running CSM Analysis..."
|
|
python analyze_csm.py
|
|
|
|
# 3.5 统计四面体占据率
|
|
# 输出: 读取 .dat, 更新 CSV, 增加 Tet_Li_Ratio 列
|
|
echo "Updating Tetrahedral Li Ratio..."
|
|
python update_tet_occupancy.py
|
|
|
|
# 5. 结束
|
|
echo "========================================================"
|
|
echo "All tasks completed!"
|
|
echo "Results stored in:"
|
|
echo " - CSV Data: ../output/"
|
|
echo " - Screened: ../data/after_screening/"
|
|
echo " - CSM Details: ../output/CSM/"
|
|
echo "========================================================" |