All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.biojava.nbio.structure.io.MMCIFFileReader Maven / Gradle / Ivy

There is a newer version: 7.2.2
Show newest version
/*
 *                    BioJava development code
 *
 * This code may be freely distributed and modified under the
 * terms of the GNU Lesser General Public Licence.  This should
 * be distributed with the code.  If you do not have a copy,
 * see:
 *
 *      http://www.gnu.org/copyleft/lesser.html
 *
 * Copyright for this code is held jointly by the individual
 * authors.  These should be listed in @author doc comments.
 *
 * For more information on the BioJava project and its aims,
 * or to join the biojava-l mailing list, visit the home page
 * at:
 *
 *      http://www.biojava.org/
 *
 * created at Oct 18, 2008
 */
package org.biojava.nbio.structure.io;

import org.biojava.nbio.structure.Structure;
import org.biojava.nbio.structure.align.util.UserConfiguration;
import org.biojava.nbio.structure.io.mmcif.MMcifParser;
import org.biojava.nbio.structure.io.mmcif.SimpleMMcifConsumer;
import org.biojava.nbio.structure.io.mmcif.SimpleMMcifParser;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;


/** How to parse an mmCif file:
 * 
public static void main(String[] args) throws Exception {
	String filename =  "/path/to/something.cif.gz" ;

	StructureIOFile reader = new MMCIFFileReader();

	Structure struc = reader.getStructure(filename);
	System.out.println(struc);
}
* * @author Andreas Prlic * @since 1.7 * */ public class MMCIFFileReader extends LocalPDBDirectory { //private static final Logger logger = LoggerFactory.getLogger(MMCIFFileReader.class); public static final String[] MMCIF_SPLIT_DIR = new String[]{"data","structures","divided" ,"mmCIF"}; public static final String[] MMCIF_OBSOLETE_DIR = new String[]{"data","structures","obsolete","mmCIF"}; private SimpleMMcifConsumer consumer; public static void main(String[] args) throws Exception { MMCIFFileReader reader = new MMCIFFileReader(); FileParsingParameters params = new FileParsingParameters(); reader.setFileParsingParameters(params); Structure struc = reader.getStructureById("1m4x"); System.out.println(struc); System.out.println(struc.toPDB()); } /** * Constructs a new MMCIFFileReader, initializing the extensions member variable. * The path is initialized in the same way as {@link UserConfiguration}, * i.e. to system property/environment variable {@link UserConfiguration#PDB_DIR}. * Both autoFetch and splitDir are initialized to false */ public MMCIFFileReader(){ this(null); } /** * Constructs a new PDBFileReader, initializing the extensions member variable. * The path is initialized to the given path, both autoFetch and splitDir are initialized to false. */ public MMCIFFileReader(String path){ super(path); addExtension(".cif"); addExtension(".mmcif"); addExtension(".cif.gz"); addExtension(".mmcif.gz"); } @Override public Structure getStructure(InputStream inStream) throws IOException{ MMcifParser parser = new SimpleMMcifParser(); consumer = new SimpleMMcifConsumer(); consumer.setFileParsingParameters(getFileParsingParameters()); // The Consumer builds up the BioJava - structure object. // you could also hook in your own and build up you own data model. parser.addMMcifConsumer(consumer); parser.parse(new BufferedReader(new InputStreamReader(inStream))); // now get the protein structure. Structure cifStructure = consumer.getStructure(); return cifStructure; } public SimpleMMcifConsumer getMMcifConsumer(){ return consumer; } // public void setMMCifConsumer(SimpleMMcifConsumer consumer){ // this.consumer = consumer; // } @Override protected String getFilename(String pdbId) { return pdbId.toLowerCase()+".cif.gz"; } @Override protected String[] getSplitDirPath() { return MMCIF_SPLIT_DIR; } @Override protected String[] getObsoleteDirPath() { return MMCIF_OBSOLETE_DIR; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy