/** * Prints out the XML representation of an AFPChain from a file containing exactly two FASTA * sequences. * * @param args A String array of fasta-file structure-1-name structure-2-name * @throws StructureException * @throws IOException */ public static void main(String[] args) throws StructureException, IOException { if (args.length != 3) { System.err.println( "Usage: FastaAFPChainConverter fasta-file structure-1-name structure-2-name"); return; } File fasta = new File(args[0]); Structure structure1 = StructureTools.getStructure(args[1]); Structure structure2 = StructureTools.getStructure(args[2]); if (structure1 == null) throw new IllegalArgumentException("No structure for " + args[1] + " was found"); if (structure2 == null) throw new IllegalArgumentException("No structure for " + args[2] + " was found"); AFPChain afpChain = fastaFileToAfpChain(fasta, structure1, structure2); String xml = AFPChainXMLConverter.toXML(afpChain); System.out.println(xml); }
public void testOldSecOutput() throws Exception { String fileName = "/ce_1fdo.A_2iv2.X.out"; InputStream inStream = this.getClass().getResourceAsStream(fileName); assertNotNull("Could not find file " + fileName + " in resource path. Config error?", inStream); String xml = StringManipulationHelper.convertStreamToString(inStream); AtomCache cache = new AtomCache(); String name1 = "1FDO.A"; String name2 = "2IV2.X"; Atom[] ca1 = cache.getAtoms(name1); Atom[] ca2 = cache.getAtoms(name2); assertEquals(715, ca1.length); assertEquals(697, ca2.length); AFPChain afpChainOrig = AFPChainXMLParser.fromXML(xml, ca1, ca2); assertNotNull("Could not get AfpChain object from flat file!", afpChainOrig); assertEquals( "Could not find alignment string for prot 1", "MKKVVTVCPYCASGCKINLVVDNGKIVRAEAAQGKTNQGTLCLKGYYGWDFINDTQILTPRLKTPMIRRQRGGKLEPVSWDEALNYVAERLSAIKEKYGPDAIQTTGSSRGTGNETNYVMQKFARAVIGTNNVDCCARVUHGPSVA-----GLHQSVGNGAMSNAINEIDNTDLVFVFGYNPADSHPIVANHVINAKRNGAKIIVCDPRKIETARIADMHIALKNGSNIALLNAMGHVIIEENLYDKAFVASRTEGFEEYRKIVEGYTPESVEDITGVSASEIRQAARMYAQAKSAAILWGMGVTQFYQGVETVRSLTSLAMLTGNLGKPHAGVNPVRGQNNVQGACDMGALPDTYPGYQYVKDPANREKFAKAWGVESLPAHTGYRISELPHRAAHGEVRAAYIMGEDPLQTDAELSAVRKAFEDLELVIVQDIFMTKTASAADVILPSTSWGEHEGVFTAADRGFQRFFKAVEPKWDLKTDWQIISEIATRMGYPMHYNNTQEIWDELRHLCPDFYGATYEKMGELGFIQWPCRDTSDADQGTSYLFKEKFDTPNGLAQFFTCDWVAPIDKLTDEYPMVLSTVREVGHYSCRSMTGNCAALAALADEPGYAQINTEDAKRLGIEDEALVWVHSRKGKIITRAQVSDRPNKGAIYMTYQWWIGACNELVTENLSPITKTPEYKYCAVRVEPIADQRAAEQYVIDEYNKLKTRLREAALA", new String(afpChainOrig.getAlnseq1(), 0, afpChainOrig.getAlnLength())); assertEquals( "Could not find alignment string for prot 2", "MKKVVTVCPYCASGCKINLVVDNGKIVRAEAAQGKTNQGTLCLKGYYGWDFINDTQILTPRLKTPMIRRQRGGKLEPVSWDEALNYVAERLSAIKEKYGPDAIQTTGSSRGTGNETNYVMQKFARAVIGTNNVDCCAR-----VUHGPSVAGLHQSVGNGAMSNAINEIDNTDLVFVFGYNPADSHPIVANHVINAKRNGAKIIVCDPRKIETARIADMHIALKNGSNIALLNAMGHVIIEENLYDKAFVASRTEGFEEYRKIVEGYTPESVEDITGVSASEIRQAARMYAQAKSAAILWGMGVTQFYQGVETVRSLTSLAMLTGNLGKPHAGVNPVRGQNNVQGACDMGALPDTYPGYQYVKDPANREKFAKAWGVESLPAHTGYRISELPHRAAHGEVRAAYIMGEDPLQTDAELSAVRKAFEDLELVIVQDIFMTKTASAADVILPSTSWGEHEGVFTAADRGFQRFFKAVEPKWDLKTDWQIISEIATRMGYPMHYNNTQEIWDELRHLCPDFYGATYEKMGELGFIQWPCRDTSDADQGTSYLFKEKFDTPNGLAQFFTCDWVAPIDKLTDEYPMVLSTVREVGHYSCRSMTGNCAALAALADEPGYAQINTEDAKRLGIEDEALVWVHSRKGKIITRAQVSDRPNKGAIYMTYQWW------------------PEYKYCAVRVEPIADQRAAEQYVIDEYNKLKTRLREAALA", new String(afpChainOrig.getAlnseq2(), 0, afpChainOrig.getAlnLength())); // calc time is hardware dependent.... overwrite... afpChainOrig.setCalculationTime(-1); assertEquals( "alnLength is wrong! (" + afpChainOrig.getAfpChainLen() + ")", 720, afpChainOrig.getAlnLength()); assertEquals( "gapLength is wrong! (" + afpChainOrig.getGapLen() + ")", 28, afpChainOrig.getGapLen()); // identity should be 0.9569 assertTrue( "alinment ID is < 0.95 ! (" + afpChainOrig.getIdentity() + ")", afpChainOrig.getIdentity() > 0.95); assertTrue( "alignment ID is > 0.96 ! (" + afpChainOrig.getIdentity() + ")", afpChainOrig.getIdentity() < 0.96); String xmlComp = AFPChainXMLConverter.toXML(afpChainOrig, ca1, ca2); FlipAFPChainTest t = new FlipAFPChainTest(); t.printFirstMismatch(xml, xmlComp); StringManipulationTestsHelper.assertEqualsIgnoreEndline(xml, xmlComp); StructureAlignment ce = StructureAlignmentFactory.getAlgorithm(CeMain.algorithmName); AFPChain afpChainNew = ce.align(ca1, ca2); afpChainNew.setCalculationTime(-1); afpChainNew.setName1(name1); afpChainNew.setName2(name2); String xmlNew = AFPChainXMLConverter.toXML(afpChainNew, ca1, ca2); StringManipulationTestsHelper.assertEqualsIgnoreEndline(xml, xmlNew); }