This file is indexed.

/usr/share/hyphy/TemplateBatchFiles/BivariateCodonRateAnalysis.bf is in hyphy-common 2.2.7+dfsg-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
bivariateFitOptions = {};

SetDialogPrompt ("Datafile:");
DataSet ds = ReadDataFile (PROMPT_FOR_FILE);
_bivariateFilePath = LAST_FILE_PATH;

ExecuteAFile (HYPHY_LIB_DIRECTORY + 
				"TemplateBatchFiles" + 
				DIRECTORY_SEPARATOR  + 
				"TemplateModels" + 
				DIRECTORY_SEPARATOR  + 
				"chooseGeneticCode.def");

_genCodeID = _geneticCodeOptionMatrix [modelType][0];


ChoiceList (branchLengths,"Branch Lengths",1,SKIP_NONE,
            "Codon Model","Jointly optimize rate parameters and branch lengths (slow and thorough)",
            "Nucleotide Model","Estimate branch lengths once, using an appropriate nucleotide model (quick and dirty)."
            );

assert (branchLengths >= 0);

fprintf (stdout, "Model string:");
fscanf  (stdin,  "String",mstring);

ExecuteAFile ("TemplateModels/MGwAA.ibf");

currentLFSpool = _bivariateFilePath + ".fit.1";

bivariateFitOptions ["00"] = "New run";
if (branchLengths == 0)
{
    bivariateFitOptions ["01"] = "Codon Model";
}
else
{
    bivariateFitOptions ["01"] = "Nucleotide Model";
}
bivariateFitOptions ["02"] = "1";
bivariateFitOptions ["03"] = _genCodeID;
bivariateFitOptions ["04"] = _bivariateFilePath;
if (Abs(DATAFILE_TREE))
{
	bivariateFitOptions ["06"] = "y";
}
else
{
	bivariateFitOptions ["06"] = "";
}

bivariateFitOptions ["07"] = mstring;
bivariateFitOptions ["08"] = "Default";
bivariateFitOptions ["09"] = "1";
bivariateFitOptions ["10"] = "Unconstrained";
bivariateFitOptions ["11"] = currentLFSpool;

ExecuteAFile (  "dNdSBivariateRateAnalysis.bf",
				bivariateFitOptions
			 );
			 
currentCAIC   = bivariateReturnAVL["cAIC"];
bestCAICsoFar = 1e100;
currentRateCount = 1;
bestClassCount = 1;

gateauxOptions = {};
gateauxOptions ["02"] = "-1";


while (currentCAIC < bestCAICsoFar)
{
	bestClassCount = currentRateCount;
	gateauxOptions ["01"] = currentLFSpool;
	fprintf (stdout, "[FINISHED FITTING A MODEL WITH ", currentRateCount, " RATES]\n");
	fprintf (stdout, "[CURRENT c-AIC = ", currentCAIC, ". BEST c-AIC SO FAR = ", bestCAICsoFar, "]\n");
	bestCAICsoFar = currentCAIC;

	DeleteObject (lf);

	ExecuteAFile (  HYPHY_LIB_DIRECTORY + 
				"TemplateBatchFiles" + 
				DIRECTORY_SEPARATOR  + 
				"GateauxMR.bf",
				gateauxOptions
			 );

	improved = bivariateReturnAVL ["DIFF"];
	if (improved == 0)
	{
		fprintf (stdout, "[NO GATEAUX IMPROVEMENT. TERMINATING...]\n");
		break;
	}
	lastLFSpool		 = currentLFSpool;
	currentRateCount = currentRateCount + 1;
	currentLFSpool = currentLFSpool + "." + currentRateCount;

	bivariateFitOptions ["00"] = "Continued run";
	bivariateFitOptions ["01"] = currentLFSpool;
	bivariateFitOptions ["02"] = "Unconstrained";

	ExecuteAFile (  HYPHY_LIB_DIRECTORY + 
				"TemplateBatchFiles" + 
				DIRECTORY_SEPARATOR  + 
				"dNdSBivariateRateAnalysis.bf",
				bivariateFitOptions
			 	);
			 
	currentCAIC   = bivariateReturnAVL["cAIC"];
	
	
}

fprintf (stdout, "[BEST-FITTING MODEL HAS ", bestClassCount, " RATES]\n");
fprintf (stdout, "[USE CodonBivariateRateProcessor.bf ON ", lastLFSpool, " TO PROCESS THE RESULTS]\n");