Mercurial > repos > dave > pipelign
diff test-data/files/mergeParallel.sh @ 0:9a3a2e04f47a draft default tip
Uploaded
author | dave |
---|---|
date | Mon, 10 Jun 2019 16:04:10 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/files/mergeParallel.sh Mon Jun 10 16:04:10 2019 -0400 @@ -0,0 +1,56 @@ +#!/bin/bash + +my_func(){ + + ind1=$(($1*2-1)) + ind2=$(($1*2)) + + aln1=$(echo $4 | awk -v var="$ind1" '{print $var}') + aln2=$(echo $4 | awk -v var="$ind2" '{print $var}') + oName=$(echo $5 | awk -v var="$1" '{print $var}') + + echo "Merging $aln1.aln and $aln2.aln into $oName.aln" + + l1=$(grep -c ">" $aln1.aln) + l2=$(grep -c ">" $aln2.aln) + + if [ $l1 -eq "1" ] && [ $l2 -eq "1" ] + then + cat $aln1.aln $aln2.aln > temp.$6.$1.fas + mafft --localpair --preservecase --thread $2 --maxiterate $3 temp.$6.$1.fas > $oName.aln + elif [ $l1 -eq "1" ] + then + mafft --preservecase --thread $2 --maxiterate $3 --addfragments $aln1.aln $aln2.aln > $oName.aln + elif [ $l2 -eq "1" ] + then + mafft --preservecase --thread $2 --maxiterate $3 --addfragments $aln2.aln $aln1.aln > $oName.aln + else + cat $aln1.aln $aln2.aln > input.$6.$1.fas + str1="" + count=1 + gap=" " + + for i in $(seq 1 1 $l1) + do + str1=$str1$count$gap + count=$(($count+1)) + done + + echo $str1 > msaTable.$6.$1 + str2="" + for i in $(seq 1 1 $l2) + do + str2=$str2$count$gap + count=$(($count+1)) + done + + echo $str2 >> msaTable.$6.$1 + mafft --preservecase --thread $2 --maxiterate $3 --merge msaTable.$6.$1 input.$6.$1.fas > $oName.aln + + fi + +} + +export -f my_func + +parallel -j 1 my_func ::: $(seq 1 1 1) ::: 1 ::: 1 ::: "NODE_1 NODE_2" ::: "NODE_0" ::: "merge"