44758476f02860234fe5eb5cbf424908efa22a9a lrnassar Mon Feb 17 12:25:15 2025 -0800 Making MitoMap an otto track, refs #24849 diff --git src/hg/utils/otto/mitoMap/checkMitoMapUpdate.sh src/hg/utils/otto/mitoMap/checkMitoMapUpdate.sh new file mode 100755 index 00000000000..f5a6aee7dc7 --- /dev/null +++ src/hg/utils/otto/mitoMap/checkMitoMapUpdate.sh @@ -0,0 +1,76 @@ +#! /bin/bash + +cd /hive/data/outside/otto/mitoMap + +wget -q https://mitomap.org/downloads/VariantsControl.tsv -O variantsControl.latest.tsv +wget -q https://mitomap.org/downloads/VariantsCoding.tsv -O variantsCoding.latest.tsv +wget -q https://mitomap.org/downloads/MutationsRNA.tsv -O mutationsRNA.latest.tsv +wget -q https://mitomap.org/downloads/MutationsCodingControl.tsv -O mutationsCodingControl.latest.tsv + +# Flag to track if any files are different +run_script=false + +# Function to check if two files are the same +check_files() { + if ! cmp -s "$1" "$2"; then + echo "Updating MitoMap track..." + run_script=true + fi +} + +# Compare each pair of files +check_files "mutationsCodingControl.latest.tsv" "mutationsCodingControl.tsv" +check_files "mutationsRNA.latest.tsv" "mutationsRNA.tsv" +check_files "variantsCoding.latest.tsv" "variantsCoding.tsv" +check_files "variantsControl.latest.tsv" "variantsControl.tsv" + +# If any files were different, continue script execution +if $run_script; then + echo "Proceeding with MitoMap update..." + # Add your script logic here +else + rm mutationsCodingControl.latest.tsv mutationsRNA.latest.tsv variantsCoding.latest.tsv variantsControl.latest.tsv + exit 0 +fi + +python ./buildMitoMap.py + +oldCountDiseaseMuts=$(bigBedInfo mitoMapDiseaseMuts.bb | grep -i "itemCount" | awk '{print $NF}' | sed 's/,//g') +oldCountVars=$(bigBedInfo mitoMapVars.bb | grep -i "itemCount" | awk '{print $NF}' | sed 's/,//g') + +newCountDiseaseMuts=$(bigBedInfo mitoMapDiseaseMuts.new.bb | grep -i "itemCount" | awk '{print $NF}' | sed 's/,//g') +newCountVars=$(bigBedInfo mitoMapVars.new.bb | grep -i "itemCount" | awk '{print $NF}' | sed 's/,//g') + +# Calculate the percentage difference +diffDiseaseMuts=$(echo "scale=2; (($newCountDiseaseMuts - $oldCountDiseaseMuts) / $oldCountDiseaseMuts) * 100" | bc) +diffVars=$(echo "scale=2; (($newCountVars - $oldCountVars) / $oldCountVars) * 100" | bc) + +# Get the absolute values of the differences +absDiffDiseaseMuts=$(echo "$diffDiseaseMuts" | sed 's/-//') +absDiffVars=$(echo "$diffVars" | sed 's/-//') + +# Check if the absolute difference is greater than 20% +if (( $(echo "$absDiffDiseaseMuts > 20" | bc -l) || $(echo "$absDiffVars > 20" | bc -l) )); then + echo + echo "Error: Difference in item count exceeds 20%." + echo "Difference in disease mutations: $absDiffDiseaseMuts%" + echo "Difference in variants: $absDiffVars%" + exit 1 +fi + +# If the difference is within the 20%, proceed +mv mitoMapDiseaseMuts.new.bb mitoMapDiseaseMuts.bb +mv mitoMapVars.new.bb mitoMapVars.bb + +mv mutationsCodingControl.latest.tsv mutationsCodingControl.tsv +mv mutationsRNA.latest.tsv mutationsRNA.tsv +mv variantsCoding.latest.tsv variantsCoding.tsv +mv variantsControl.latest.tsv variantsControl.tsv + +wget -q https://mitomap.org/update-date.txt -O version.txt + +echo +echo "Item counts for disease mutation old vs. new bigBed. Old: $oldCountDiseaseMuts New: $newCountDiseaseMuts" +echo "Item counts for variants old vs. new bigBed. Old: $oldCountVars New: $newCountVars" +echo +echo "MitoMap tracks built successfully."