Ecogenomics / BamM

Metagenomics-focused BAM file manipulation
http://ecogenomics.github.io/BamM/
GNU Lesser General Public License v3.0
16 stars 7 forks source link

BamM v1.5.0 - failed nosetests - missing filtered bam files - Also python library bug from 1.5.0 and 1.4.1 #27

Open AlexRBaker opened 9 years ago

AlexRBaker commented 9 years ago

Hello,

I am running ubuntu14.04. After upgrading from v1.4.1 to 1.5.0 I now fail the nosetests. Additionally, in both versions trying to run BP.parseBams(bamnames,doLinks=True,doCovs=True,threads=1) resulted in an indefinite runtime in my python environment. This was after the imports and setup at mentioned in page 12 of the manual.

/bin/sh: 1: /home/baker/git/BamM/bin/bamm: not found FNo file: /home/baker/Packages/BamM/bamm/tests/filter_test_data/1_filtered.bam No file: /home/baker/Packages/BamM/bamm/tests/filter_test_data/2_filtered.bam

................................................

FAIL: test_bamFilter.TestBamFilter.testFilter

Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/home/baker/Packages/BamM/bamm/tests/test_bamFilter.py", line 156, in testFilter self.assert_equal_query_sequences(out, test) File "/home/baker/Packages/BamM/bamm/tests/test_bamFilter.py", line 129, in assert_equal_query_sequences raise AssertionError('File of filtered reads "%s" exists and is readable.' % out) AssertionError: File of filtered reads "/home/baker/Packages/BamM/bamm/tests/filter_test_data/1_filtered.bam" exists and is readable.


Ran 49 tests in 4.820s

FAILED (failures=1)

wwood commented 9 years ago

Hey Alex, @timbalam just pushed a commit, does this fix it? If so I'll merge.

AlexRBaker commented 9 years ago

Hi Ben,

Its fixed the nosetests failure. It did not fix the errors with trying to use BamM as a python library. With regards to that issue I have to import the cWrapper to get CT as mentioned in the manual in the command cov_type = BM_coverageType(CT.P_MEAN_OUTLIER, 1, 1). Aside from that I followed the steps mentioned in the manual to use the parseBams command.

wwood commented 9 years ago

Sorry I am a bit confused about your error as I don't know what 'indefinite runtime' means. Can you give an example? Perhaps we can add the example to the test suite then. Thanks. On 4 Aug 2015 4:17 pm, "Alexander Baker" notifications@github.com wrote:

Hi Ben,

Its fixed the nosetests failure. It did not fix the errors with trying to use BamM as a python library. With regards to that issue I have to import the cWrapper as well as to get CT as mentioned in the manual in the command cov_type = BM_coverageType(CT.P_MEAN_OUTLIER, 1, 1).

— Reply to this email directly or view it on GitHub https://github.com/Ecogenomics/BamM/issues/27#issuecomment-127491448.

AlexRBaker commented 9 years ago

I tried using the python library to process a 3megabyte bam file based on mapping reads from a 20kb sequence. Using BamM on the command line processes this in less than a minute. I left it running for 30-60minutes via the python library and it still had not completed. I killed the process assuming it would not finish.

wwood commented 9 years ago

ok. Hard to know what the problem is without example code, and since bamm on the command line uses the API, perhaps you are doing something unintended?

On 07/08/15 20:58, Alexander Baker wrote:

I tried using the python library to process a 3megabyte bam file based on mapping reads from a 20kb sequence. Using BamM on the command line processes this in less than a minute. I left it running for 30-60minutes via the python library and it still had not completed.

— Reply to this email directly or view it on GitHub https://github.com/Ecogenomics/BamM/issues/27#issuecomment-128672743.

AlexRBaker commented 9 years ago

I'm not really sure. I ran the following from the manual(page 12) but with my bam file instead of file1.bam and True for doLinks instead of False.

from BamM.bamParser import BamParser from bamm.bamFile import BM_coverageType

cov_type = BM_coverageType(CT.P_MEAN_OUTLIER, 1, 1) BP = BamParser(cov_type)

bam_files = ['file1.bam'] BP.parseBams(bam_files, doLinks=True, doCovs=True, threads=1) This gives NameError: name 'CT' is not defined.

So, I added from bamm.cwrapper import * since in the API I saw CT there. After this it has the indefinite runtime/crash when I ran:

BP.parseBams(bam_files, doLinks=True, doCovs=True, threads=1)

Should I expect CT to be visible without an additional import in this case?

wwood commented 9 years ago

hmm, ok. Errors in the manual fo so then. What is the error?