rmarkello / abagen

A toolbox for working with Allen Human Brain Atlas microarray expression data
https://abagen.readthedocs.io
BSD 3-Clause "New" or "Revised" License
92 stars 41 forks source link

Qustion about the hemisphere filter method in drop_mismatch_samples function (samples_.py L223) #218

Open YCHuang0610 opened 1 year ago

YCHuang0610 commented 1 year ago

https://github.com/rmarkello/abagen/blob/6f5542522247b9a7fb00ded198c34f4dc25957f3/abagen/samples_.py#L220C1-L224C46

Line 220-224 in samples_.py

annot = annotation.assign(hemisphere=hemisphere, structure=structure) \
                  .query('(hemisphere == "L" & mni_x < 0) '
                         '| (hemisphere == "R" & mni_x > 0) '
                         '| (hemisphere == "B" & mni_x == 0)',
                         engine='python')

Some of the samples in AHBA were not annotated hemisphere, such as 4700, Ve-I-II; 4701, Ve-III in donor 9861. In samples_.py#L223, the samples that are not annotated hemispheres and have a non-zero mni_x will be removed. This probably causes that all the samples without annotated hemispheres will be filtered out at this step, because no sample has a mni_x of 0. I am wondering is this resonable?

image

image