SEQanswers

Go Back   SEQanswers > Bioinformatics > Bioinformatics



Similar Threads
Thread Thread Starter Forum Replies Last Post
BBMap (aligner for DNA/RNAseq) is now open-source and available for download. Brian Bushnell Bioinformatics 674 06-03-2019 12:46 AM
BBMap for BitSeq dietmar13 Bioinformatics 1 04-30-2015 08:40 AM
Please help my BBMap cannot remove Illumina adapter TofuKaj Bioinformatics 4 04-28-2015 08:53 AM
BBMap Error Phage Hunter Bioinformatics 5 01-14-2015 04:34 AM
Introducing BBMap, a new short-read aligner for DNA and RNA Brian Bushnell Bioinformatics 24 07-07-2014 09:37 AM

Reply
 
Thread Tools
Old 05-16-2019, 12:58 PM   #221
raquelnb
Junior Member
 
Location: Mexico

Join Date: Jan 2019
Posts: 1
Default

Hello Brian, it is just a question that pop up when using bbmap. For the outm, what type of flags do you use to both take pairs where both reads mappedand those where just one read of the pair mapped? Or how do you get read of both 77 and 141 flags?

Thank you and best
raquelnb is offline   Reply With Quote
Old 05-17-2019, 04:03 AM   #222
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

I think you are looking for the following options that are accessible from "reformat.sh".

Code:
Sam and bam processing options:

mappedonly=f            Toss unmapped reads.
unmappedonly=f          Toss mapped reads.
pairedonly=f            Toss reads that are not mapped as proper pairs.
unpairedonly=f          Toss reads that are mapped as proper pairs.
primaryonly=f           Toss secondary alignments.  Set this to true for sam to fastq conversion.
minmapq=-1              If non-negative, toss reads with mapq under this.
maxmapq=-1              If non-negative, toss reads with mapq over this.
requiredbits=0          (rbits) Toss sam lines with any of these flag bits unset.  Similar to samtools -f.
filterbits=0            (fbits) Toss sam lines with any of these flag bits set.  Similar to samtools -F.
GenoMax is offline   Reply With Quote
Old 06-11-2019, 04:01 AM   #223
bwubb
Member
 
Location: Philadelphia

Join Date: Jan 2012
Posts: 58
Default

Greetings,

I have a seemingly simple problem, that Im sure bbmap can help with, but Im unclear what steps must be taken for success.

I have several bams from paired end sequencing where some number of mates have been removed. The remaining read still says it is paired so every tool seems to throw an error. Samtools or picard fixmate does not correct it, at best they yell the read names in question.

I am trying to use reformat.sh to remove those mates that remain, but I also seem to get a java exception, even when just trying to convert to fastq.

Code:
[bwubb@node107 disambres]$ reformat.sh -Xmx5g in=qsortA.bam out1=reads1.fq out2=reads2.fq ow
java -ea -Xmx5g -cp /home/bwubb/software/bbmap/current/ jgi.ReformatReads -Xmx5g in=qsortA.bam out1=reads1.fq out2=reads2.fq ow
Executing jgi.ReformatReads [-Xmx5g, in=qsortA.bam, out1=reads1.fq, out2=reads2.fq, ow]

Set INTERLEAVED to true
Found samtools 1.9
Input is being processed as paired
Exception in thread "Thread-2" java.lang.AssertionError: K00315:202:H577WBBXY:7:1101:1438:38767 13      -1      -       57328513        57328662        1000000100000000011     1       0  60       TCCAGAAAGAGAGTTCTTGAAAGAAAGAGGCGCTATCATTTTGACACAGATGGNAAGGGCTCGATTCACGATCAAAAAGGCTCCAAAAANAAAAAAAATTCTGTTTGTTNTNCTTTTTCCTCCNGATTCTAGTTTTTTTNTTATNTTTTG  AAFFFFFAJJJJJ7FFFJJ7JJ7FJJJJJFFJJJJJFJJJJJF-A-AAFFJFA!AF---AAJJ-AJF<FF-AAFAF<AAAJJJJFA-7A!--77-<A<JJ<A--7A<FJ!J!<FJJJJA<FF7!)7AJF---7AFJJFJ!JF--!7-7<F      .       30      C68m28Nm53      .

K00315:202:H577WBBXY:7:1101:1438:38767  113     19      57328582        60      68S82M  1       176081441       0       CAAAANATAANAAAAAAACTAGAATCNGGAGGAAAAAGNANAACAAACAGAATTTTTTTTNTTTTTGGAGCCTTTTTGATCGTGAATCGAGCCCTTNCCATCTGTGTCAAAATGATAGCGCCTCTTTCTTTCAAGAACTCTCTTTCTGGA      F<7-7!--FJ!JFJJFA7---FJA7)!7FF<AJJJJF<!J!JF<A7--A<JJ<A<-77--!A7-AFJJJJAAA<FAFAA-FF<FJA-JJAA---FA!AFJFFAA-A-FJJJJJFJJJJJFFJJJJJF7JJ7JJFFF7JJJJJAFFFFFAA      NM:i:1  MD:Z:28C53      MC:Z:150M       AS:i:80 XS:i:21 SA:Z:1,176081357,+,81S62M7S,54,7;       RG:Z:FGC2033.7
flag=1110001

        at stream.SamReadInputStream.toReadList(SamReadInputStream.java:136)
        at stream.SamReadInputStream.fillBuffer(SamReadInputStream.java:89)
        at stream.SamReadInputStream.hasMore(SamReadInputStream.java:53)
        at stream.ConcurrentGenericReadInputStream$ReadThread.readLists(ConcurrentGenericReadInputStream.java:643)
        at stream.ConcurrentGenericReadInputStream$ReadThread.run(ConcurrentGenericReadInputStream.java:635)

I thought I could make read1.fq reads2.fq and use repair.sh Clearly it finds the two problem reads. I have tried other arguments with the reformat.sh, and a few other tools, but none want to correct the MATE_NOT_FOUND problem. It would seem impossible that I am the first person to run into this issue. Thank you very much for any advice/help.

-bwubb

EDIT: Sorry if this post shows up multiple times. I literally tried making it three times and nothing showed up for a full day. Tried a quick reply and it showed up immediately.
bwubb is offline   Reply With Quote
Old 06-12-2019, 07:05 AM   #224
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

@bwbubb: Option for reformat.sh that you are looking for is "pairedonly=f Toss reads that are not mapped as proper pairs". Set pairedonly=t and process your BAM files.
GenoMax is offline   Reply With Quote
Old 06-13-2019, 07:33 AM   #225
bwubb
Member
 
Location: Philadelphia

Join Date: Jan 2012
Posts: 58
Default

Quote:
Originally Posted by GenoMax View Post
@bwbubb: Option for reformat.sh that you are looking for is "pairedonly=f Toss reads that are not mapped as proper pairs". Set pairedonly=t and process your BAM files.
EDIT:

Thank you @GenoMax. This actually does not work for for this case.

Code:
[bwubb@node061 disambres]$ reformat.sh pairedonly=t in=input.bam out=fix.bam
java -ea -Xmx200m -cp /home/bwubb/software/bbmap/current/ jgi.ReformatReads pairedonly=t in=input.bam out=fix.bam
Executing jgi.ReformatReads [pairedonly=t, in=input.bam, out=fix.bam]

Found samtools 1.9
Input is being processed as unpaired
Input:                          13726088 reads                  2041390865 bases
Output:                         12583399 reads (91.68%)         1880228501 bases (92.11%)

Time:                           349.142 seconds.
Reads Processed:      13726k    39.31k reads/sec
Bases Processed:       2041m    5.85m bases/sec

[bwubb@node061 disambres]$ samtools index fix.bam
[bwubb@node061 disambres]$ java -jar ~/software/picard/2.20.2/picard.jar ValidateSamFile I=fix.bam MODE=SUMMARY
INFO    2019-06-13 08:00:16     ValidateSamFile

...

## HISTOGRAM    java.lang.String
Error Type      Count
ERROR:MATE_NOT_FOUND    2

[Thu Jun 13 08:02:01 EDT 2019] picard.sam.ValidateSamFile done. Elapsed time: 1.74 minutes.
Runtime.totalMemory()=2075918336
To get help, see http://broadinstitute.github.io/picard/index.html#GettingHelp
Not sure how things work internally, but from my understanding the "problem" reads think they are paired.


I toiled with this more yesterday and I believe I can use reformat.sh to make an interleaved fastq file, and then use repair.sh to make read1.fq and read2.fq and take it back to alignment. All attempts at correcting the bam directly seem to fail. I have yet to have total success, which in my case would be passing picardtools ValidateSamFile.

I am aligning with bwa mem -M, having some other issue in the validation that maybe is unrelated or will be fixed with the right reformat/repair arguments.

Last edited by bwubb; 06-13-2019 at 07:36 AM.
bwubb is offline   Reply With Quote
Old 06-13-2019, 08:16 AM   #226
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

Have you tried adding "VALIDATION_STRINGENCY=LENIENT" to your picard command? Default value is STRICT and sometime it leads to picard throwing errors like this.

It does looks like reformat.sh took out some of the reads so the problem reads have been hopefully addressed.
GenoMax is offline   Reply With Quote
Old 06-13-2019, 09:50 AM   #227
bwubb
Member
 
Location: Philadelphia

Join Date: Jan 2012
Posts: 58
Default

Quote:
Originally Posted by GenoMax View Post
Have you tried adding "VALIDATION_STRINGENCY=LENIENT" to your picard command? Default value is STRICT and sometime it leads to picard throwing errors like this.
...
Yes indeed, but it will still be an ERROR.

However, after more tinkering I was able to come up with a combination that worked.

Code:
reformat.sh -Xmx5g in=qSortA.bam out=qSortA_reads.fq
reformat.sh -Xmx5g int=t addcolon=t uniquenames=t in=qSortA_reads.fq out=out_reads.fq
repair.sh -Xmx5g in=out_reads.fq out1=reads1.fq out2=reads2.fq
Taking those reads into alignment and so forth will pass ValidateSamFile. Im guessing these actions are allowing me to completely rewrite the pairing status, which I am perfectly ok with.

Thank you for the comments and help!
bwubb is offline   Reply With Quote
Old 06-26-2019, 05:02 AM   #228
noobie
Junior Member
 
Location: USA

Join Date: Jun 2012
Posts: 7
Default

I want to subsample 10 million reads from both an interleaved reads file and a singletons reads file at the same time. Can reformat.sh do this?
noobie is offline   Reply With Quote
Old 06-26-2019, 06:32 AM   #229
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

@Noobie: I don't think so. You will have to do them independently. What is the use case here, if I may ask?
GenoMax is offline   Reply With Quote
Old 07-08-2019, 11:02 PM   #230
bartn
Junior Member
 
Location: Europe

Join Date: Jul 2019
Posts: 5
Default randomreads.sh

Hi!

I want to created a (small) RNAseq test set from a small bacterial plasmid. So I used :
Code:
randomreads.sh reads=30000 paired=t metagenome=t  ref=transcripts.fasta out1=test_RNA_1.fq out2=test_RNA_2.fq
(Then I get 30k reads for each pair. No problem, I guess that's because the default is single end)

Then I mapped back the reads with BBmap
Code:
bbmap.sh ref=Rhizobium_Leguminosarum_plasmid_NZ_CP025014.1_transcripts.fasta  in1=Unlock_test_RNA_1.fq in2=Unlock_test_RNA_2.fq covstats=RNA.cov
Results:
Code:
Reads:                               	60000
Mapped reads:                        	54225
Mapped bases:                        	8063372
Ref scaffolds:                       	562
Ref bases:                           	521537

Percent mapped:                      	90.375
Percent proper pairs:                	64.822
Average coverage:                    	15.461
Standard deviation:                    	51.768
Percent scaffolds with any coverage: 	59.96
Percent of reference bases covered:  	45.87
The mapping percentages seem very low to me. Mapping to the genome gives similar results.
I am using randomreads.sh in the wrong way for this?
bartn is offline   Reply With Quote
Old 07-09-2019, 03:25 AM   #231
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

Since you asked for 30K reads you got 30K paired-end reads.

I would sugegst trying without the metagenome=t option for a single small input fasta. If you do have the entire genome then use that in your randomread generation step along with the plasmid.
GenoMax is offline   Reply With Quote
Old 07-09-2019, 07:31 AM   #232
bartn
Junior Member
 
Location: Europe

Join Date: Jul 2019
Posts: 5
Default

Quote:
Originally Posted by GenoMax View Post
Since you asked for 30K reads you got 30K paired-end reads.

I would sugegst trying without the metagenome=t option for a single small input fasta. If you do have the entire genome then use that in your randomread generation step along with the plasmid.
Yes, that does seem to increase the mapping percentages. Any idea why it is not working with meta option? Changes read length and insert size does not seem to do much..
The plasmid is about 0.5MB with 562 transcripts. Median transcript size is 830bp, so that could be a bit short, (but then I would expect the same with the meta option off)

I will also look for another suitable (small) genome. I don't want to add the complete genome because it should finish quick, since it's for testing purposes of tools and pipelines.

(btw, one other small thing. Adding any statistic file in the arguments will give the small summary in the stdout (like I posted before). Otherwise it will not be printed. Not sure if that is expected behavior)
bartn is offline   Reply With Quote
Old 07-09-2019, 09:52 AM   #233
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

Metagenome option is supposed to take in multiple (genome) sequences to generate an artificial metagenomic dataset.

BBMap writes stats to STDERR by default. So you can capture that.
GenoMax is offline   Reply With Quote
Old 07-09-2019, 11:13 PM   #234
bartn
Junior Member
 
Location: Europe

Join Date: Jul 2019
Posts: 5
Default

From the description of the option I understood it can be used for RNA as well:

metagenome=f Assign scaffolds a random exponential coverage level, to simulate a metagenomic or RNA coverage distribution

Which makes sense in my view since I just give multiple transcripts instead of genomes (albeit short compared to a genome)

So why are so many reads not mapping back even thought almost all of it with an even distributed coverage does map.


What I meant with the summary part, if I run just bbmap in its simplest form:
Code:
bbmap.sh ref=transcripts.fasta  in1=read_1.fq  in2=read_2.fq
the stderr does not contain this part:
Code:
Reads:                               	120000
Mapped reads:                        	111248
Mapped bases:                        	8357095
Ref scaffolds:                       	1
Ref bases:                           	592529

Percent mapped:                      	92.707
Percent proper pairs:                	56.370
Average coverage:                    	14.104
Standard deviation:                    	46.411
Percent scaffolds with any coverage: 	100.00
Percent of reference bases covered:  	41.67
But it does with adding a covstats=cov.stats for example.
bartn is offline   Reply With Quote
Old 07-10-2019, 03:40 AM   #235
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

Unfortunately Brian would be the only person who can provide an authoritative answer and he no longer participates on this forum. You may want to try emailing him with your question directly.

BBMap provides a wide range of coverage/histogram/stats outputs. Default output (while voluminous does not contain coverage stats) but mainly contains % alignments which most users want to see by default. In-line help (run bbmap.sh without any options/inputs) details different options available for coverage/histogram/stats outputs.
GenoMax is offline   Reply With Quote
Old 07-10-2019, 05:09 AM   #236
bartn
Junior Member
 
Location: Europe

Join Date: Jul 2019
Posts: 5
Default

That's indeed unfortunate. I might try sending an email. A previous bug report was solved very quickly!

One of the reasons I like about BBMap is indeed the wide range of statistics it can generate. Just noticed that final summary percentages like I showed, are to me the most useful thing to look at on first check was missing by default.

And thanks a lot for your answers and your time GenoMax!
bartn is offline   Reply With Quote
Old 08-05-2019, 09:42 AM   #237
Illusive Man
Member
 
Location: GA

Join Date: Sep 2013
Posts: 15
Default

Dear BBMap users or Brian,

I have a database of about 800 proteins and all I would like to do is create an abundance table of "hits" to these 800 proteins for each one of my 30 samples. Samples as columns, genes as rows, cells as counts. Can BBMap help me create this abundance table?

Thanks
Illusive Man is offline   Reply With Quote
Old 08-05-2019, 10:28 AM   #238
GenoMax
Senior Member
 
Location: East Coast USA

Join Date: Feb 2008
Posts: 6,966
Default

BBMap is not designed to work with protein data. You will have to find a different tool.

Take a look at blat from UCSC's Jim Kent. That should produce the stats in parse-able tab-delimited columner format. You will need to do post-processing to get the table you are looking for.
GenoMax is offline   Reply With Quote
Old 08-05-2019, 11:07 PM   #239
bartn
Junior Member
 
Location: Europe

Join Date: Jul 2019
Posts: 5
Default

another program that is often used for these cases is DIAMOND

https://github.com/bbuchfink/diamond

But like GenoMax said you have to do some post processing of the output to get to the format you want..
bartn is offline   Reply With Quote
Old 08-21-2019, 03:43 PM   #240
darthsequencer
Member
 
Location: california

Join Date: Feb 2012
Posts: 35
Default

Is there a command to output the kmers of each sequence in a multifasta file?
darthsequencer is offline   Reply With Quote
Reply

Tags
bbmap

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT -8. The time now is 01:48 PM.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Single Sign On provided by vBSSO