Hi RIchard, Arek,
If you set verbose=TRUE in your getBM query you'll see the XML query that is
send to the BioMart server (see below for your example).
The order of the attributes in the XML query is usually the same order we
get the results back from the BioMart server.
However for your example this is not the case and there is no way for
biomaRt to know this (Arek correct me if this is not the case), so when we
add column names to the returned matrix they will be wrong when the query
order is not preserved in the returned result.
> multiTest = getBM(attributes= c("organism_name", "transcript_name",
"exon_chrom_start", "exon_chrom_end"), filters="orgid", values="167",
mart=phyto,verbose=TRUE)
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE Query><Query
virtualSchemaName = 'default' uniqueRows = '1' count = '0'
datasetConfigVersion = '0.6' requestid= "biomaRt"> <Dataset name =
'phytozome'><Attribute name = 'organism_name'/><Attribute name =
'transcript_name'/><Attribute name = 'exon_chrom_start'/><Attribute name =
'exon_chrom_end'/><Filter name = 'orgid' value = '167' /></Dataset></Query>
Cheers,
Steffen
On Thu, Sep 29, 2011 at 9:08 AM, Arek Kasprzyk <[email protected]>wrote:
> Hi Richard,
> the best person to help you is Steffen Durinck, the original biomaRt coder
> (cc'ed on this email)
>
> a
>
> On Wed, Sep 28, 2011 at 3:52 PM, Richard Hayes <[email protected]> wrote:
>
>> Hi,
>>
>> Our group maintains the biomart instance at the Phytozome plant genomics
>> portal. We've had some users report problems with the result sets from the
>> biomaRt interface. It is unclear if this is a biomaRt problem or a problem
>> in our mart configuration. At the moment, we are still running biomart
>> version 0.6, but are hoping to upgrade in the very near future to 0.7.
>>
>> I had been testing with R 2.12.2 and biomaRt 2.6.0, but then upgraded to R
>> 2.13.1 and biomaRt 2.8.1. The problems persist with these latest software
>> releases.
>>
>> I can successfully connect to our mart and the main genome transcript
>> dataset as follows, successfully retrieving a single column of transcript
>> names for Arabidopsis thaliana using our internal "orgid" filter for
>> organism ID 167:
>>
>> > library('biomaRt')
>> > phyto=useMart('phytozome_mart', dataset='phytozome')
>> > transcripts = getBM(attributes = c("transcript_name"), filters= "orgid",
>> values="167", mart=phyto)
>> > transcripts[1:5,]
>> [1] "AT2G38230.1" "AT2G39920.2" "AT2G26530.1" "AT2G28630.1" "AT2G19280.1"
>>
>> However, when I construct a multicolumn query, the columns are not
>> returned in the expected order:
>>
>> > multiTest = getBM(attributes= c("organism_name", "transcript_name",
>> "exon_chrom_start", "exon_chrom_end"), filters="orgid", values="167",
>> mart=phyto)
>> > multiTest[1:5,]
>> organism_name transcript_name exon_chrom_start exon_chrom_end
>> 1 AT5G47220.1 19171862 19172823 Athaliana
>> 2 AT1G71920.3 27067059 27067098 Athaliana
>> 3 AT1G71920.3 27067189 27067401 Athaliana
>> 4 AT1G71920.3 27067506 27067589 Athaliana
>> 5 AT1G71920.3 27067706 27067860 Athaliana
>>
>> Any help diagnosing the source of this problem is much appreciated.
>>
>> Best regards,
>>
>> --
>> Richard D. Hayes, Ph.D.
>> Joint Genome Institute / Lawrence Berkeley National Lab
>> http://www.phytozome.net
>>
>> _______________________________________________
>> Users mailing list
>> [email protected]
>> https://lists.biomart.org/mailman/listinfo/users
>>
>>
>
_______________________________________________
Users mailing list
[email protected]
https://lists.biomart.org/mailman/listinfo/users