Created
April 26, 2016 06:46
-
-
Save mbk0asis/6592f91814f45824b39b830efa3f308a to your computer and use it in GitHub Desktop.
mp_primer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
clear | |
printf "\n *** MULTIPLEX PCR PRIMER GENERATOR ***" | |
printf "\n\n !!! 'Primer3 & fastx-toolkit' must be installed on the system.\n\n !!! Both FASTA & .param files must be in this directory \n\n !!! Edit parameters (e.g. size, Tm, and etc) before start\n\n " | |
printf "\n\n Usage : \n ./mp_primer.sh FASTA PARAMETER \n\n\n Enter to continue... " | |
read | |
printf "\n\n\n ()()() Running... \n\n" | |
if [ $2 ]; then | |
mkdir tmp | |
cd tmp | |
cp ../$2 . | |
sed 's/ /_/g' ../$1 > $1 # replace spaces to "_" in fasta header | |
fasta_formatter -i $1 -o $1.tab -t # convert to tab | |
cut -f 1 $1.tab | while read line; do grep $line $1.tab > $line.split; done # split each seq into single files | |
#################################### | |
# sequence file generator (Add titles to tab. "SEQUENCE_ID=", "SEQUENCE_TEMPLATE=") | |
for s in ./*.split | |
do | |
awk '{print "SEQUENCE_ID="$1,"\n","SEQUENCE_TEMPLATE="$2}' $s | sed 's/ //g' > $s.seq | |
done | |
#################################### | |
# parameter file generator | |
for s in ./*.split # to generate a lis of target sequence (CpG) positions | |
do | |
cut -f 2 $s | grep -bo cg | sed 's/:/\t/g' | cut -f 1 | awk '{print $1+1",2"}' | tr '\n' ' ' | awk '{print "SEQUENCE_TARGET="$0}' | cat - $2 > $s.param | |
done | |
#################################### | |
# combine sequence & parameter files | |
grep ">" $1 | sed 's/>//g'| while read line; do cat $line.split.seq $line.split.param > $line.p3in;done | |
#################################### | |
# PRIMER3 | |
for i in ./*.p3in # run PRIMER3 | |
do | |
primer3_core $i > $i.p3out | |
done | |
#################################### | |
# PRIMER3 result file | |
for r in ./*.p3out | |
do | |
grep 'ID\|0_SEQUENCE=\|0=\|0_TM=' $r | sed 's/=/\t/g' | cut -f 2 | tr '\n' '\t' | sed 's/,/\t/g' | awk 'BEGIN{FS=OFS="\t"}{print $1,$2,$3,$6-$4+1,$4,$6,$5,$7,$8,$9}' | |
done > $1.p3outs | |
echo 'ID Forward Reverse Product_Size Product_Start Product_End Len_forward Len_reverse Tm_forward Tm_reverse' | \ | |
cat - $1.p3outs > ../$1.p3results.tsv | |
cd .. | |
rm -r tmp/ | |
clear | |
printf "\n\n\n\n >>> '$INPUT.p3results.tsv' has been generated!\n\n\n\n" | |
else | |
clear | |
printf "\n\n !!! ERROR:: FASTA or parameter file is missing!\n\n" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment