Sponsored Content
Full Discussion: Help with a bash loop script
Top Forums UNIX for Beginners Questions & Answers Help with a bash loop script Post 303037370 by dre on Tuesday 30th of July 2019 03:54:21 PM
Old 07-30-2019
Sorry didn't mean to offend anyone and thanks for the advice.&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
Quote:
Originally Posted by bakunin
Here we go again analysing FASTA-files. I wonder if we are going to be mentioned in the dozens of biological research papers we have helped to create over time.&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
Sorry, but this is not the way that works.&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
First: you come across like a teacher posing the homework for us. Actually we are all professionals here and have done our homework meticulously which is why we don't have to do more homework any more. In case it was homework given to &amp;lt;i&amp;gt;you&amp;lt;/i&amp;gt; by &amp;lt;i&amp;gt;your&amp;lt;/i&amp;gt; teacher: there is a special forum for this with special rules in place. Please re-create the thread there and provide the necessary information.&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
Second, in case this is not homework but actually your work: we do not insist on a lot of social conventions here (after all, we are sysadmins - being somewhat autistic is part of the requirement for this job), but still a well-placed &amp;amp;quot;please&amp;amp;quot; here and there, along with some of the common niceties called &amp;amp;quot;good manners&amp;amp;quot; oils the social machinery. If you ever wonder who writes the answers to your questions: it is not some clever machine and a fat server - it is actually living, breathing persons.&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
Third and foremost: we are here to help you help yourself. If you want a shell-script - WRITE IT! Attempts, however failing, will count. If you tried and it didn't work, post what you did and the error you got trying to run it. We will, regardless of how long it will take, explain to you what was wrong and how to do it better (actually quite like the way i explain to you right now why you need to change your problem statement) until you understand. We will also point out ways to better solve the problem, different tools, suggest sources to find valuable information and so on and so on. But we will NOT write your code for you. We are a help forum, not your unpaid programming staff.&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
I hope this helps.&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
bakunin
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;span style=&amp;quot;color:#738fbf;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:1;&amp;quot;&amp;gt;--- Post updated at 08:32 PM ---&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
<br />
[ QUOTE=dre;303037350]Create a single bash script that does the following:&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
a. Print out the number of occurrences for each motif that is found in the bacterial genome and output to a file called motif_count.txt&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
b. Create a fasta file for each motif (so 3 in total) which contains all of the genes and their corresponding sequences that have that motif. Each file should be named after the motif (ie ATG.txt) and outputted to a new directory called motifs&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
motif file is a txt file with these motifs : ATG, GGGGG, ATTTT&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
the bacterial genome file is fasta file with the following lines&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
Code:
 &amp;amp;gt;gene1&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
GAAACTCGGTGTTGGCTTACCGGTCATTCCGAGCGTCATTTGGTTTTCGCGTCGTGGCGAAATGTGGTTCTACTACTCGTGGTGTATGCACTATTTATCCGGAATGTTCAGAGCGAGTAGACAATGGGTGCTCCACAATTGTGGCGGTCCCTAAGGGACTCACATATAGTGAGACACGCGTGAAATTCTGCTCACCACGTCCGAATCCGACAAATCATCTACTTCGACGGTA&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
&amp;amp;gt;gene2&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
CGGAGATAAAGGACCCATACTGTACGACATTGTATTGCTCACCATGGTCAATCTTTGCGAGTTGTTGCAGCTCGCAGCTTCGTTCTGTCAATATAGCTTAGATACTGAGAAGAAGTTGCAGAGAAAGTCGCA

Moderator's Comments:
Mod Comment edit by bakunin: please use CODE-tags to let data, code and terminal output stand out. Thank you.
[/QUOTE]<br />
<br />
<span style="color:#738fbf;"><span style="font-size:1;">--- Post updated at 08:54 PM ---</span></span><br />
<br />
This is my attempt<br />
#!/bin/bash<br />
<br />
# create a new directory motifs if it doesn't exist<br />
mkdir -p motifs<br />
cd motifs<br />
touch motif_count.txt<br />
&gt; motif_count.txt<br />
for motif in ATG GGGGG ATTTT<br />
do<br />
echo $motif &gt;&gt; motif_count.txt<br />
grep $motif -c r_bifella.fasta &gt;&gt; motif_count.txt<br />
touch $motif.fasta<br />
grep $motif -B 1 r_bifella.fasta &gt; $motif.fasta<br />
done<br />
<br />
]<br />
<br />
<br />
Quote:
Originally Posted by dre
Create a single bash script that does the following:<br />
a. Print out the number of occurrences for each motif that is found in the bacterial genome and output to a file called motif_count.txt<br />
b. Create a fasta file for each motif (so 3 in total) which contains all of the genes and their corresponding sequences that have that motif. Each file should be named after the motif (ie ATG.txt) and outputted to a new directory called motifs<br />
<br />
motif file is a txt file with these motifs : ATG, GGGGG, ATTTT<br />
the bacterial genome file is fasta file with the following lines<br />
Code:
 &gt;gene1<br />
GAAACTCGGTGTTGGCTTACCGGTCATTCCGAGCGTCATTTGGTTTTCGCGTCGTGGCGAAATGTGGTTCTACTACTCGTGGTGTATGCACTATTTATCCGGAATGTTCAGAGCGAGTAGACAATGGGTGCTCCACAATTGTGGCGGTCCCTAAGGGACTCACATATAGTGAGACACGCGTGAAATTCTGCTCACCACGTCCGAATCCGACAAATCATCTACTTCGACGGTA<br />
&gt;gene2<br />
CGGAGATAAAGGACCCATACTGTACGACATTGTATTGCTCACCATGGTCAATCTTTGCGAGTTGTTGCAGCTCGCAGCTTCGTTCTGTCAATATAGCTTAGATACTGAGAAGAAGTTGCAGAGAAAGTCGCA

Moderator's Comments:
Mod Comment edit by bakunin: please use CODE-tags to let data, code and terminal output stand out. Thank you.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

loop does not execute in bash script?

I have a very basic bash shell script, which has many "while... done; for .... done" loop clauses, like the following ~~ #!/bin/bash while blablalba; do .... done < /tmp/file for line in `cat blablabla`; do grep $line /tmp/raw ; done > /tmp/1; while blablalba2; do .... done <... (2 Replies)
Discussion started by: fedora
2 Replies

2. Shell Programming and Scripting

error in bash script 'if' loop

SEND_MESSAGE=test echo $SEND_MESSAGE if then echo `date` > update_dt_ccaps.lst echo "The file transfer failed" >> update_dt_ccaps.lst SEND_MESSAGE=false fi The above code is showing error in bash shell as : ./test: line 5: [: test: integer expression expected ... (2 Replies)
Discussion started by: DILEEP410
2 Replies

3. Shell Programming and Scripting

Whitespace in filenames in for loop in bash script

I'm trying to search all .odt files in a directory for a string in the text of the file. I've found a bash script that works, except that it can't handle whitespace in the filenames. #!/bin/bash if ; then echo "Usage: searchodt searchterm" exit 1 fi for file in $(ls *.odt); do ... (4 Replies)
Discussion started by: triplemaya
4 Replies

4. Shell Programming and Scripting

Getting error on for loop - bash script

Hi, I am working on bash script after a long time. I am getting error near done statement while running a for loop snippet. The error says "Syntax error near unexpcted token 'done'" please suggest what could be wrong. here is the snippet elements=${#option_arr} //an array of values... (1 Reply)
Discussion started by: arundhati_s
1 Replies

5. Shell Programming and Scripting

Expect script called in loop from Bash Script

Having issues with an expect script. I've been scripting bash, python, etc... for a couple years now, but just started to try and use Expect. Trying to create a script that takes in some arguments, and then for now, just runs a pwd command(for testing, final will be command I pass). Here is... (0 Replies)
Discussion started by: cbo0485
0 Replies

6. Shell Programming and Scripting

Bash script - loop question

Hi Folks, I have a loop that goes through an array and the output is funky. sample: array=( 19.239.211.30 ) for i in "${array}" do echo $i iperf -c $i -P 10 -x CSV -f b -t 50 | awk 'END{print '$i',$6}' >> $file done Output: 19.239.211.30 19.2390.2110.3 8746886 seems that when... (2 Replies)
Discussion started by: nitrohuffer2001
2 Replies

7. Shell Programming and Scripting

While loop with input in a bash script

I have the following while loop that I put in a script, demo.sh: while read rna; do aawork=$(echo "${rna}" | sed -n -e 's/\(...\)\1 /gp' | sed -f rna.sed) echo "$aawork" | sed 's/ //g' echo "$aawork" | tr ' ' '\012' | sort | sed '/^$/d' | uniq -c | sed 's/*\(*\) \(.*\)/\2: \... (3 Replies)
Discussion started by: faizlo
3 Replies

8. Shell Programming and Scripting

Loop through multiple files in bash script

Hi Everybody, I'm a newbie to shell scripting, and I'd appreciate some help. I have a bunch of .txt files that have some unwanted content. I want to remove lines 1-3 and 1028-1098. #!/bin/bash for '*.txt' in <path to folder> do sed '1,3 d' "$f"; sed '1028,1098 d' "$f"; done I... (2 Replies)
Discussion started by: BabyNuke
2 Replies

9. Shell Programming and Scripting

How to use grep in a loop using a bash script?

Dear all, Please help with the following. I have a file, let's call it data.txt, that has 3 columns and approx 700,000 lines, and looks like this: rs1234 A C rs1236 T G rs2345 G T Please use code tags as required by forum rules! I have a second file, called reference.txt,... (1 Reply)
Discussion started by: aberg
1 Replies

10. UNIX for Beginners Questions & Answers

Help with date in bash script for loop from YYYYMMDDHHMM

Hi everyone I need some help I want to create an script which does some processing it takes the two arguments 201901010000 and 201901020200 - so YYYMMDDHHMM I want to split processing into hours from start until end, I dont get why this works but when I add to a future variable... (1 Reply)
Discussion started by: kl1ngac1k
1 Replies
All times are GMT -4. The time now is 12:03 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy