Hi,
Is there a way to get chrName, chrPosition and observed alleles of a given dbSNP rsId in java program?
and
Is there a way to get observed alleles of a SNP given with chrName and chrPosition in java program?
Thanks, Burçak
Hi,
Is there a way to get chrName, chrPosition and observed alleles of a given dbSNP rsId in java program?
and
Is there a way to get observed alleles of a SNP given with chrName and chrPosition in java program?
Thanks, Burçak
EDIT: You changed the original question
from
Is there a way to get chrName, chrPosition and observed alleles of a given dbSNP rsId in java program?
to
Is there a way to get observed alleles of a SNP given with chrName and chrPosition in java program?
=> This is not the same problem = I wasted my time.
use xjc to generate classes from the XML schema spec:
xjc "ftp://ftp.ncbi.nlm.nih.gov/snp/specs/docsum_3.3.xsd"
compile the following program: (it calls NCBI E-Efetch , parses the SNP structure and loop over the mapping components )
import gov.nih.nlm.ncbi.snp.docsum.*;
import java.util.ArrayList;
import java.io.InputStream;
import java.util.List;
import javax.xml.bind.*;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.events.StartElement;
import javax.xml.stream.events.XMLEvent;
import javax.xml.transform.stream.StreamSource;
public class Biostar95284
{
private Unmarshaller unmarshaller;
private static gov.nih.nlm.ncbi.snp.docsum.ObjectFactory _fool_javac=null;
private XMLInputFactory xmlInputFactory=null;
private Biostar95284() throws Exception
{
this.xmlInputFactory = XMLInputFactory.newInstance();
xmlInputFactory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, Boolean.FALSE);
xmlInputFactory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.TRUE);
xmlInputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.TRUE);
xmlInputFactory.setXMLResolver(new javax.xml.stream.XMLResolver()
{
@Override
public Object resolveEntity(String publicID, String systemID, String baseURI, String namespace)
{
return new java.io.ByteArrayInputStream(new byte[0]);
}
});
JAXBContext jaxbCtxt=JAXBContext.newInstance("gov.nih.nlm.ncbi.snp.docsum");
this.unmarshaller=jaxbCtxt.createUnmarshaller();
}
private void run(String rsId) throws Exception
{
if(rsId.startsWith("rs")) rsId=rsId.substring(2);
String uri="http://www.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=snp&id="+rsId+"&retmode=xml";
XMLEventReader reader= xmlInputFactory.createXMLEventReader(new StreamSource(uri));
while(reader.hasNext())
{
XMLEvent evt=reader.peek();
if(!evt.isStartElement())
{
reader.nextEvent();
continue;
}
StartElement start=evt.asStartElement();
String localName=start.getName().getLocalPart();
if(!localName.equals("Rs"))
{
reader.nextEvent();
continue;
}
Rs rs=unmarshaller.unmarshal(reader, Rs.class).getValue();
for(Assembly as:rs.getAssembly())
{
for(Component comp:as.getComponent())
{
for(MapLoc maploc: comp.getMapLoc())
{
System.out.print("rs"+rsId);
System.out.print("\t");
System.out.print(as.getGenomeBuild());
System.out.print("\t");
System.out.print(as.getGroupLabel());
System.out.print("\t");
System.out.print(comp.getChromosome());
System.out.print("\t");
System.out.print(maploc.getPhysMapInt());
System.out.println();
}
}
}
}
reader.close();
}
public static void main(String[] args)
{
try
{
Biostar95284 app=new Biostar95284();
for(String arg:args)
{
app.run(arg);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
with :
javac Biostar95284.java
execute:
java Biostar95284 rs25 rs26
rs25 37.5 GRCh37.p10 7 11584141
rs25 37.5 HuRef 7 11442496
rs25 37.5 CRA_TCAGchr7v2 7 11637562
rs25 37.5 CHM1_1.0 7 11559989
rs26 37.5 GRCh37.p10 7 11583470
rs26 37.5 HuRef 7 11441825
rs26 37.5 CRA_TCAGchr7v2 7 11636891
rs26 37.5 CHM1_1.0 7 11559318
Dear Pierre Lindenbaum,
Thanks for your answer. Although I have created the classes from the given xml schema using xjb successfully, the running the class Biostar95284 with given input data or any other data didn't give any output.
I have debugged the code and There are no found assembly. So it leaves the for loops. Any idea?
Thank you very much, Burcak
Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
I have two questions: 1. question input dbSNP rsId output: chrName, chrPosition, observedAlleles 2. question input chrName, chrPosition output: observedAlleles, dnSNP rsId
I just edited the tags.