This file is indexed.

/usr/share/hyphy/TemplateBatchFiles/partitionSequences.ibf is in hyphy-common 2.2.6+dfsg-3build3.

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
goOn = 1;
while (goOn)
{

	if (promptFor2ndRegExp)
	{
		fprintf (stdout,"\nEnter a regular expression to define the first clade:");
		fscanf  (stdin,"String",theRegExp);
		fprintf (stdout,"\nEnter a regular expression to define the second clade:");
		fscanf  (stdin,"String",theRegExp2);
	
	}
	else
	{
		fprintf (stdout,"\nEnter a reg exp to separate the sequences into two clades:");
		fscanf  (stdin,"String",theRegExp);
	}

	cladeA = {};
	cladeB = {};

	st1 = "";
	st2 = "";


	for (specIndex = 0; specIndex < ds.species; specIndex = specIndex + 1)
	{
		GetString (specName, ds, specIndex);
		specMatch = specName $ theRegExp;
		
		if (specMatch[0]>=0)
		{
			cladeA [specName] = 1;
			if (Abs(st1))
			{
				st1 = st1 + "," + specName;
			}
			else
			{
				st1 = specName;
			}
			
		}
		else
		{
			if (promptFor2ndRegExp)
			{
				specMatch = specName $ theRegExp2;
				if (specMatch[0] < 0)
				{
					continue;
				}
			}
			cladeB [specName] = 1;
			if (Abs(st2))
			{
				st2 = st2 + "," + specName;
			}
			else
			{
				st2 = specName;
			}
		}
	}

	st1 = "(("+st1+"),"+st2+")";
	Topology splitTop = st1;
	
	clASize = Abs (cladeA);
	clBSize = Abs (cladeB);
	
	if (clASize == 0 || clBSize == 0 || (clASize + clBSize < ds.species) && (promptFor2ndRegExp==0))
	{
		fprintf (stdout, "\nERROR: invalid sequence partitionings - one of the clades is empty or there were duplicate sequence names\n");
		return 0;
	}

	fprintf (stdout, "\n\nClade 1 includes ", clASize," sequences:\n");
	cladeKeys = Rows (cladeA);
	for (specIndex = 0; specIndex < clASize; specIndex = specIndex + 1)
	{
		fprintf (stdout, "\t", cladeKeys[specIndex],"\n");
	}

	fprintf (stdout, "\n\nClade 2 includes ", clBSize," sequences:\n");
	cladeKeys = Rows (cladeB);
	for (specIndex = 0; specIndex < clBSize; specIndex = specIndex + 1)
	{
		fprintf (stdout, "\t", cladeKeys[specIndex],"\n");
	}
	
	fprintf (stdout, "\nIs this partitioning correct (y/n)");
	fscanf (stdin, "String", goOn);
	goOn = (goOn[0] == "n" || goOn[0] == "N");
}