biocore / biom-format

The Biological Observation Matrix (BIOM) Format Project
http://biom-format.org
Other
90 stars 95 forks source link

biom.exception.TableException: Number of observation IDs differs from matrix size! #539

Closed george-weingart closed 10 years ago

george-weingart commented 10 years ago

Hello,

I am encountering a problem in the biom2 environment.

Traceback (most recent call last): File "./scripts/scriptConvertBetweenBIOMAndPCL.py", line 55, in abndTable.funcWriteToFile(args.strOutputFile, cDelimiter=args.cFileDelimiter, cFileType=strOutputFileType) File "/n/home09/george.weingart/breadcrumbstest/src/breadcrumbs/src/AbundanceTable.py", line 1874, in funcWriteToFile self._funcWriteBiomFile(xOutputFile) File "/n/home09/george.weingart/breadcrumbstest/src/breadcrumbs/src/AbundanceTable.py", line 2035, in _funcWriteBiomFile table_id='Breadcrumbs_Generated_Table') File "/usr/local/lib/python2.7/site-packages/biom/table.py", line 260, in init errcheck(self) File "/usr/local/lib/python2.7/site-packages/biom/err.py", line 473, in errcheck raise ret biom.exception.TableException: Number of observation IDs differs from matrix size! [george.weingart@hutlab3 breadcrumbs]$

Can you help me find the problem?

Thanks! George Weingart

The code I am invoking looks as follows:

BiomTable = Table(arrData, lSampNames, lObservationIds, lMetaData, lObservationMetadataTable if len(lObservationMetadataTable) > 0 else None, table_id='Breadcrumbs_Generated_Table')

The data looks as follows:

pprint(arrData) array([[ 1.23000002, 0. , 12. , 0. ,

  1. , 0. , 2. , 1. ], [ 0. , 10. , 43. , 6. ,
  2. , 23. , 0. , 1. ], [ 3. , 0. , 29. , 0. ,
    1. , 0. , 1. , 1. ], [ 0. , 45. , 34. , 3. ,
  3. , 0. , 0. , 1. ], [ 5. , 0. , 2. , 0. ,

    6. , 0. , 1. , 1. ]])

    pprint(lSampNames) ['700098986', '700098984', '700098980', '700098988', '700037470', '700037472', '700037474',

    '700037476']

    pprint(lObservationIds) ['Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|72', 'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|4904', 'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|1361', 'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|3417',

    'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|1368']

pprint(lMetaData) [{'ID': '700098986'}, {'ID': '700098984'}, {'ID': '700098980'}, {'ID': '700098988'}, {'ID': '700037470'}, {'ID': '700037472'}, {'ID': '700037474'},

{'ID': '700037476'}]

pprint(lObservationMetadataTable) []

pprint(len(lObservationMetadataTable)) 0

THANKS!!

wasade commented 10 years ago

Hi George,

It looks like the order in which the IDs and metadata are specified is reversed. The Table constructor takes (data, obsid, sampid, obsmd, sampmd). This change was made to reduce confusion for new users of BIOM as the underlying matrix is shaped (len(obsid), len(sampid)), but does represent an annoying change for users updating unfortunately. On Sep 16, 2014 8:08 PM, "george-weingart" notifications@github.com wrote:

Hello,

I am encountering a problem in the biom2 environment.

Traceback (most recent call last): File "./scripts/scriptConvertBetweenBIOMAndPCL.py", line 55, in abndTable.funcWriteToFile(args.strOutputFile, cDelimiter=args.cFileDelimiter, cFileType=strOutputFileType) File "/n/home09/george.weingart/breadcrumbstest/src/breadcrumbs/src/AbundanceTable.py", line 1874, in funcWriteToFile self.

_funcWriteBiomFile(xOutputFile) File "/n/home09/george.weingart/breadcrumbstest/src/breadcrumbs/src/AbundanceTable.py", line 2035, in funcWriteBiomFile table_id='Breadcrumbs_Generated_Table') File "/usr/local/lib/python2.7/site-packages/biom/table.py", line 260, in _init errcheck(self) File "/usr/local/lib/python2.7/site-packages/biom/err.py", line 473, in errcheck raise ret biom.exception.TableException: Number of observation IDs differs from matrix size! [george.weingart@hutlab3 breadcrumbs]$

Can you help me find the problem?

Thanks! George Weingart

The code I am invoking looks as follows:

BiomTable = Table(arrData, lSampNames, lObservationIds, lMetaData, lObservationMetadataTable if len(lObservationMetadataTable) > 0 else None, table_id='Breadcrumbs_Generated_Table') The data looks as follows:

pprint(arrData) array([[ 1.23000002, 0. , 12. , 0. ,

  1. , 0. , 2. , 1. ], [ 0. , 10. , 43. , 6. ,
  2. , 23. , 0. , 1. ], [ 3. , 0. , 29. , 0. ,
  3. , 0. , 1. , 1. ], [ 0. , 45. , 34. , 3. ,
  4. , 0. , 0. , 1. ], [ 5. , 0. , 2. , 0. ,
  5. , 0. , 1. , 1. ]])

pprint(lSampNames) ['700098986', '700098984', '700098980', '700098988', '700037470', '700037472', '700037474', '700037476']

pprint(lObservationIds) ['Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|72', 'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|4904', 'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|1361', 'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|3417', 'Bacteria|Firmicutes|Bacilli|Bacillales|Bacillaceae|unclassified|1368']

pprint(lMetaData) [{'ID': '700098986'}, {'ID': '700098984'}, {'ID': '700098980'}, {'ID': '700098988'}, {'ID': '700037470'}, {'ID': '700037472'}, {'ID': '700037474'}, {'ID': '700037476'}]

pprint(lObservationMetadataTable) []

pprint(len(lObservationMetadataTable)) 0

THANKS!!

— Reply to this email directly or view it on GitHub https://github.com/biocore/biom-format/issues/539.

george-weingart commented 10 years ago

Hi Daniel, Thanks for your prompt response!

Yes, that solved the problem. Thank you! George Weingart