Thanks a lot,

Ernesto 

> This is a common bug: You are storing the iterator rather than what it points 
> to.  Try doing
> 
> results=[row[:] for row in table.where('(qual > 1) & (qual < 10)')]
> This will copy out all of the columns of the row.
> 
> (At least, I believe that's the correct syntax).  I'm sure you'll get a 
> correction soone nough.
> 
> On Wed, Apr 28, 2010 at 2:22 PM, Ernesto <e.pica...@unical.it> wrote:
> Hi Francesc, thank you for your reply.
> > The first column contains an integer. Now I'd like to sort my table
> >  according to numbers of the first column. Is there a way to perform this
> >  action?
> 
> > Yes.  The simplest way is by setting the `sortby` parameter to true in the 
> > `Table.copy()` method.  This triggers an on-disk sorting operation, so you 
> > don't have to be afraid of your available memory.  You will need the Pro 
> > version for getting this capability.
> 
> It means that I can sort a table using the Pro version only. No other 
> solutions are available? 
> Working with my simple table I found a strange behaviour that probably is due 
> to my limited experience with pytables.
> The description of the table is:
> /newgroup/table (Table(729036,), shuffle, zlib(1)) 'A table'
>   description := {
>   "position": Int32Col(shape=(), dflt=0, pos=0),
>   "read": StringCol(itemsize=1, shape=(), dflt='', pos=1),
>   "qual": Int32Col(shape=(), dflt=0, pos=2),
>   "strand": StringCol(itemsize=1, shape=(), dflt='', pos=3)}
>   byteorder := 'little'
>   chunkshape := (819,)
> Next I iterate over a subset using the command:
> for row in table.where('(qual > 1) & (qual < 10)'):
>       print row
> It works correctly and I get expected results.
> Then I use the following command:
> results=[row for row in table.where('(qual > 1) & (qual < 10)')]
> it works but I get a list containing the same value.
> I report the first five rows obtained using both procedures:
> - procedure 1:
> (167809, 'C', 8, '-')
> (167810, 'G', 9, '-')
> (167812, 'C', 5, '-')
> (167823, 'T', 9, '-')
> (1015856, 'G', 5, '-')
> - procedure 2:
> [(1041269, 'G', 39, '-'), (1041269, 'G', 39, '-'), (1041269, 'G', 39, '-'), 
> (1041269, 'G', 39, '-'), (1041269, 'G', 39, '-')]
> 
> Where is the error?
> 
> Thank a lot,
> 
> Ernesto
> 
> 
> ------------------------------------------------------------------------------
> 
> _______________________________________________
> Pytables-users mailing list
> Pytables-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pytables-users
> 
> 
> 
> 
> -- 
> Nicholas Dunn
> (207) 651-9839

------------------------------------------------------------------------------
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to