This file is indexed.

/usr/bin/prok-geneseek is in python3-biotools 1.2.12-2.

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

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
#!/usr/bin/python3

# 1. predict
# 2. cluster
# 3. rename
# 4. snps

import biotools.analysis.run as pr
import biotools.analysis.cluster as cw
import biotools.analysis.renamer as mv
import biotools.analysis.variance as cs
import biotools.analysis.options as op
import biotools.analysis.loaddata as ld
import sys
import os


if __name__ == "__main__":
    op.parse(sys.argv[1:])
    if len(op.args) < 2:
        op.help()
        exit(0)

    direc = op.DIRECTORY
    plotter = op.PLOTTER
    database = op.args[0]
    names = op.args[1:]
    sep = os.sep

    predict = op.predicting
    cluster = op.clustering
    rename = op.renaming
    plot = op.plotting
    report = op.reporting
    calculate = op.calculating

    rename = rename and (cluster or not predict)
    calculate = calculate and (cluster or not predict)
    plot = plot and (calculate or not (predict or cluster))
    report = report and calculate

    if not (predict or cluster or rename or calculate or plot or report):
        print("I don't know what you want, I give up.")
        exit(0)

    if predict:
        names = pr.run(database, names)
        print("Homologous sequences written to " + direc + 'sequences' + sep)

    if cluster:
        names = cw.run(direc + 'clusters' + sep, names)
        print("Clustalw files written to " + direc + "clusters" + sep)

    if rename:
        names = mv.rename(direc + 'clusters' + sep, database, names)

    if plot and plotter.lower() != 'none':
        try:
            cv = __import__(plotter, globals(), locals(), ['plot'], -1)
        except ImportError:
            try:
                if not plotter.endswith('.py'):
                    plotter += '.py'
                open(plotter, 'r')
            except:
                plot = False
            else:
                p = plotter.rfind(sep)
                if p > -1:
                    sys.path.append(plotter[:p])
                plotter = plotter[p + len(sep):]

                try:
                    cv = __import__(plotter, globals(), locals(), ['plot'], -1)
                except ImportError:
                    plot = False

    if calculate:
        gen = cs.var(names)
    elif plot:
        gen = (ld.parse(s) for s in names)
    else:
        gen = []
    for entry in gen:
        plotdata = entry['plotdata']
        metadata = entry['metadata']
        if plot:
            try:
                cv.plot(plotdata, direc + 'plots' + sep,
                        filename=metadata['filename'])
            except Exception as e:
                print(metadata['filename'], e)
        if report:
            try:
                os.mkdir(direc + 'data' + sep)
            except:
                pass

            fh = open(direc + 'data' + sep + metadata['strain'] + '.py', 'w')
            fh.write('plotdata = ' + repr(plotdata) + '\n')
            fh.write('metadata = ' + repr(metadata) + '\n')
    print("Done")