001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021package demo;
022
023import java.io.IOException;
024import java.util.List;
025
026import org.biojava.nbio.structure.Structure;
027import org.biojava.nbio.structure.StructureException;
028import org.biojava.nbio.structure.align.util.AtomCache;
029import org.biojava.nbio.structure.secstruc.SecStrucElement;
030import org.biojava.nbio.structure.secstruc.SecStrucCalc;
031import org.biojava.nbio.structure.secstruc.SecStrucTools;
032
033/**
034 * Demonstration on how to use the Secondary Structure Prediction (DSSP)
035 * implementation in BioJava and obtain different SS representations and
036 * outputs.
037 *
038 * @author Aleix Lafita
039 *
040 */
041public class DemoSecStrucCalc {
042
043        public static void main(String[] args) throws IOException,
044                        StructureException {
045
046                String pdbID = "5pti";
047
048                AtomCache cache = new AtomCache();
049
050                // Load structure without any SS assignment
051                Structure s = cache.getStructure(pdbID);
052
053                // Predict and assign the SS of the Structure
054                SecStrucCalc ssp = new SecStrucCalc();
055                ssp.calculate(s, true);
056
057                // Print the DSSP output
058                System.out.println("******DSSP output: ");
059                System.out.println(ssp.printDSSP());
060
061                // Print the FASTA sequence of SS
062                System.out.println("\n******FASTA output: ");
063                System.out.println(ssp.printFASTA());
064
065                // Print the Helix Summary
066                System.out.println("\n******Helix Summary: ");
067                System.out.println(ssp.printHelixSummary());
068
069                // Obtain and print the SS elements of the Structure
070                List<SecStrucElement> sse = SecStrucTools.getSecStrucElements(s);
071                System.out.println("\n******SecStrucElements: ");
072                for (SecStrucElement e : sse)
073                        System.out.println(e);
074
075        }
076}