8cab21c8b8a5e84a3491b796bd6590c5d6905325 angie Thu Dec 4 15:45:54 2025 -0800 Added a couple samples to spare for reversion-riddled LF.7.6.5 diff --git src/hg/utils/otto/sarscov2phylo/updateLineageTreePb.sh src/hg/utils/otto/sarscov2phylo/updateLineageTreePb.sh index 9459bda28b0..9128b4b4a25 100755 --- src/hg/utils/otto/sarscov2phylo/updateLineageTreePb.sh +++ src/hg/utils/otto/sarscov2phylo/updateLineageTreePb.sh @@ -19,58 +19,61 @@ startingTree=$2 else startingTree=gisaidAndPublic.$buildDate.masked.pb.gz fi ottoDir=/hive/data/outside/otto/sarscov2phylo usherDir=~angie/github/usher matUtils=$usherDir/build/matUtils today=$(date +%F) cd $ottoDir/$buildDate # Remove sequences that have two or more reversions relative to their assigned clade/lineage. $matUtils summary -i $startingTree --node-stats node-stats -#*** Until BA.2.3.22 gets more samples that don't have bogus reversion on 25000 and 26577, -#*** exempt some samples; also, most of JP.1 has rev on 27383,27384: +# Until BA.2.3.22 gets more samples that don't have bogus reversion on 25000 and 26577, +# exempt some samples; also, most of JP.1 has rev on 27383,27384 and 2 of LF.7.6.5's 4 +# samples have revs. cat > pruneRevsExemptions <<EOF Germany/HH-RKI-I-1073418/2022|EPI_ISL_16330648|2022-12-18 Germany/SH-RKI-I-1071936/2022|EPI_ISL_16329344|2022-12-05 Germany/SH-RKI-I-1074649/2022|EPI_ISL_16396486|2022-12-12 Germany/SH-RKI-I-1071904/2022|EPI_ISL_16329314|2022-12-05 Germany/SH-RKI-I-1071924/2022|EPI_ISL_16329332|2022-12-05 Germany/SH-RKI-I-1071920/2022|EPI_ISL_16329328|2022-12-05 Germany/SH-RKI-I-1071899/2022|EPI_ISL_16329310|2022-12-05 Germany/HH-RKI-I-1029775/2022|EPI_ISL_15901009|2022-11-13 Germany/HH-RKI-I-1105132/2023|EPI_ISL_16940514|2023-01-27 OY160699.1 OY148358.1 OY125285.1 OY165180.1 OY176754.1 OY146516.1 OY142598.1 OY124642.1 OY143123.1 OY151190.1 SouthAfrica/NICD-N55605/2023|EPI_ISL_17859330|2023-05-22 SouthAfrica/NICD-N56015/2023|EPI_ISL_18125227|2023-06-15 SouthAfrica/NICD-N56013/2023|EPI_ISL_18125226|2023-06-15 SouthAfrica/NICD-R10184/2023|EPI_ISL_18341856|2023-09-05 SouthAfrica/NICD-R10169/2023|EPI_ISL_18341854|2023-09-05 SouthAfrica/NICD-R10455/2023|EPI_ISL_18341867|2023-09-12 +USA/NY-PRL-250108_82B06/2024|PQ898526.1|2024-12-22 +Egypt/MOH-CPHL-0003/2025|EPI_ISL_19975232|2025-04-13 EOF tawk '$5 > 1 {print $1;}' node-stats \ | grep -vFwf pruneRevsExemptions \ > pruneRevs $matUtils extract -i $startingTree \ -p -s pruneRevs -O -o gisaidAndPublic.$buildDate.masked.pruneRevs.pb.gz # Get node ID for root of lineage A, used as reference/root by Pangolin: $matUtils extract -i gisaidAndPublic.$buildDate.masked.pruneRevs.pb.gz -C clade-paths.prunedRevs lineageARoot=$(grep ^A$'\t' clade-paths.prunedRevs | cut -f 2) # Reroot protobuf to lineage A and restrict to low mutation density (highly supported nodes): $matUtils extract -i gisaidAndPublic.$buildDate.masked.pruneRevs.pb.gz \ --reroot $lineageARoot \ --max-mutation-density 2 \