diff IMSAME/bin/all_vs_all_metagenomes_IMSAME.sh @ 0:762009a91895 draft

Uploaded
author bitlab
date Sat, 15 Dec 2018 18:04:10 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IMSAME/bin/all_vs_all_metagenomes_IMSAME.sh	Sat Dec 15 18:04:10 2018 -0500
@@ -0,0 +1,67 @@
+#!/usr/bin/env bash
+DIR=$1
+COV=$2
+SIM=$3
+THR=$4
+EXT=$5
+OUT=$6
+
+
+BINDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+array=()
+x=0
+
+echo "WARNING: FULL COMPARISON IS ENABLED"
+
+if [ $# != 6 ]; then
+	echo "***ERROR*** Use: $0 metagenomes_directory coverage similarity threads file_extension outpath"
+	exit -1
+fi
+
+for elem in $(ls -d $DIR/*.$EXT | awk -F "/" '{print $NF}' | awk -F ".$EXT" '{print $1}')
+do
+	array[$x]=$elem
+	x=`expr $x + 1`
+	#echo "X: $elem"
+done
+
+for ((i=0 ; i < ${#array[@]} ; i++))
+do
+	for ((j=i ; j < ${#array[@]} ; j++))
+	do
+		if [ $i != $j ]; then
+			seqX=${array[$i]}
+			seqY=${array[$j]}
+			#echo "----------${seqX}-${seqY}-----------"
+			if [[ ! -f $6/${seqX}-${seqY}.align ]];	then #if the file does not exist
+
+				
+				${BINDIR}/IMSAME -query $DIR/${seqX}.$EXT -db $DIR/${seqY}.$EXT -n_threads $THR --full -coverage $COV -identity $SIM -out $6/${seqX}-${seqY}.align
+				grep "(" $6/${seqX}-${seqY}.align | awk '{print $4, $5, $6}' | sed 's/%//g' > $6/${seqX}-${seqY}.align.filtered
+
+				${BINDIR}/covident $6/${seqX}-${seqY}.align.filtered $6/${seqX}-${seqY}.align.filtered.mat
+
+			fi
+			
+			
+
+			
+			
+			if [[ ! -f $6/${seqX}-${seqY}.r.align ]];	then #if the reversed alignment does not exist
+				# Compute reverse complement
+				${BINDIR}/revComp $DIR/${seqY}.$EXT $DIR/${seqY}.r.${EXT}
+				${BINDIR}/IMSAME -query $DIR/${seqX}.$EXT -db $DIR/${seqY}.r.$EXT -n_threads $THR --full -coverage $COV -identity $SIM -out $6/${seqX}-${seqY}.r.align
+				grep "(" $6/${seqX}-${seqY}.r.align | awk '{print $4, $5, $6}' | sed 's/%//g' > $6/${seqX}-${seqY}.r.align.filtered
+				
+				${BINDIR}/covident $6/${seqX}-${seqY}.r.align.filtered $6/${seqX}-${seqY}.align.filtered.mat
+			
+			fi
+			
+			
+			
+		fi
+		rm $DIR/${seqY}.r.${EXT}
+	done
+
+done