#!/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 "========================================================"