This file is indexed.

/usr/share/mira/mira-install-sls-rrna.sh is in mira-rfam-12s-rrna 4.9.6-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
103
104
#!/bin/bash

BAITBIN=mirabait

function usage {
  echo "Installs files for filtering rRNA reads in MIRA."
  echo "Usage: $0 [targetdir] file.sls";
  echo
  echo "If no target directory is given, the files are installed in:"
  echo "<path-to-$BAITBIN>/../share/mira/mhs/"
}


# from http://stackoverflow.com/questions/7665/how-to-resolve-symbolic-links-in-a-shell-script
# but pretty much does what I implemented in C++ in MIRA :-)

function realpath {
    local r=$1; local t=$(readlink $r)
    while [ $t ]; do
        r=$(cd $(dirname $r) && cd $(dirname $t) && pwd -P)/$(basename $t)
        t=$(readlink $r)
    done
    echo $r
}

if [ $# -eq 0 ] ; then
  usage
  echo "Missing argument, need at least the name of the sls file." >& 2
  exit 2
fi

if [ $# -eq 1 ] ; then
  if [ $1 = '-h' ] ; then
    usage
    exit 0
  fi
  SLSFILE=$1
  SHAREDIR=$(realpath `which $BAITBIN`)
  SHAREDIR=`echo $SHAREDIR | sed -e 's/\/[^/]\+$/\/..\/share\/mira\/mhs/'`
fi

if [ $# -gt 2 ] ; then
  usage
  echo "Need exactly one or two arguments" >& 2
  exit 2
fi

if [ $# -eq 2 ] ; then
  if [ $1 = '-h' ] ; then
    usage
    exit 0
  fi
  SLSFILE=$1
  SHAREDIR=$2
fi

if [ ! -e $SLSFILE ]; then
  echo "Data file '$SLSFILE' not found in this directory?";
  exit 2;
fi

if [ x`which $BAITBIN` = x ] ; then
  echo "Could not find the '$BAITBIN' executable, this is needed for the installation."
  echo "Please make sure '$BAITBIN' is in your path or change the BAITBIN variable in this script."
  exit 2;
fi


if [ ! -d $SHAREDIR ]; then
  mkdir -p $SHAREDIR;
  if [ $? != 0 ]; then
    echo "Could not create $SHAREDIR. Missing permissions?";
    exit 2;
  fi
fi

# get away path (if any)
MSTMP=`echo $SLSFILE | sed -e 's/.\+\/\([^/]\+\)$/\1/'`

SLSLIBNAME=`echo $MSTMP | sed -e 's/\.sls.*//'`
KMERSIZE=`echo $SLSLIBNAME | sed -e 's/.\+-\([0-9]\+\)-[0-9]\+$/\1/'`

echo "Will install $SLSLIBNAME with kmer size $KMERSIZE as MIRA default rRNA filter in"
echo "  $SHAREDIR"
echo
echo "Installing. This can take a minute or two, please be patient."

zcat -f $SLSFILE | sed -e 's/^/>x\'$'\n/' >$SLSLIBNAME.fasta
mirabait -k $KMERSIZE -K $SHAREDIR/$SLSLIBNAME.mhs.gz -b $SLSLIBNAME.fasta >&mb.log
if [ $? != 0 ]; then
  echo "Some error occurred during execution of mirabait."
  echo "Please consult mb.log"
  exit 2
fi

rm $SLSLIBNAME.fasta mb.log

cd $SHAREDIR
ln -sf $SLSLIBNAME.mhs.gz filter_default_rrna.mhs.gz

echo "Done."
echo
echo "MIRA can now use the functionality to filter for rRNA during assemblies."
echo "MIRABAIT can now use the '-j rrna' option."