{"action":"opened","issue":{"url":"https://api.github.com/repos/CompEvol/beast2/issues/644","repository_url":"https://api.github.com/repos/CompEvol/beast2","labels_url":"https://api.github.com/repos/CompEvol/beast2/issues/644/labels{/name}","comments_url":"https://api.github.com/repos/CompEvol/beast2/issues/644/comments","events_url":"https://api.github.com/repos/CompEvol/beast2/issues/644/events","html_url":"https://github.com/CompEvol/beast2/issues/644","id":192895577,"number":644,"title":"Beauti crashes when alignment contains 'B' character","user":{"login":"erikvdbergh","id":13100497,"avatar_url":"https://avatars.githubusercontent.com/u/13100497?v=3","gravatar_id":"","url":"https://api.github.com/users/erikvdbergh","html_url":"https://github.com/erikvdbergh","followers_url":"https://api.github.com/users/erikvdbergh/followers","following_url":"https://api.github.com/users/erikvdbergh/following{/other_user}","gists_url":"https://api.github.com/users/erikvdbergh/gists{/gist_id}","starred_url":"https://api.github.com/users/erikvdbergh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikvdbergh/subscriptions","organizations_url":"https://api.github.com/users/erikvdbergh/orgs","repos_url":"https://api.github.com/users/erikvdbergh/repos","events_url":"https://api.github.com/users/erikvdbergh/events{/privacy}","received_events_url":"https://api.github.com/users/erikvdbergh/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-01T16:31:13Z","updated_at":"2016-12-01T16:31:13Z","closed_at":null,"body":"Hi, I tried importing an alignment that featured the IUPAC 'B' nucleotide meaning 'C or G or T' as seen here: http://www.bioinformatics.org/sms/iupac.html. This crashed Beauti v2.4.4 with the following error:\r\n\r\n```\r\njava.lang.InstantiationException: beast.app.beauti.BeautiAlignmentProvider$FastaImporter\r\n\tat java.lang.Class.newInstance(Class.java:427)\r\n\tat beast.app.beauti.BeautiAlignmentProvider.getAlignments(Unknown Source)\r\n\tat beast.app.beauti.BeautiAlignmentProvider.getAlignments(Unknown Source)\r\n\tat beast.app.beauti.Beauti$1.actionPerformed(Unknown Source)\r\n\tat javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)\r\n\tat javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)\r\n\tat javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)\r\n\tat javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)\r\n\tat javax.swing.AbstractButton.doClick(AbstractButton.java:376)\r\n\tat javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)\r\n\tat javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)\r\n\tat java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)\r\n\tat java.awt.Component.processMouseEvent(Component.java:6533)\r\n\tat javax.swing.JComponent.processMouseEvent(JComponent.java:3324)\r\n\tat java.awt.Component.processEvent(Component.java:6298)\r\n\tat java.awt.Container.processEvent(Container.java:2236)\r\n\tat java.awt.Component.dispatchEventImpl(Component.java:4889)\r\n\tat java.awt.Container.dispatchEventImpl(Container.java:2294)\r\n\tat java.awt.Component.dispatchEvent(Component.java:4711)\r\n\tat java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)\r\n\tat java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)\r\n\tat java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)\r\n\tat java.awt.Container.dispatchEventImpl(Container.java:2280)\r\n\tat java.awt.Window.dispatchEventImpl(Window.java:2746)\r\n\tat java.awt.Component.dispatchEvent(Component.java:4711)\r\n\tat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)\r\n\tat java.awt.EventQueue.access$500(EventQueue.java:97)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:709)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:703)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)\r\n\tat java.awt.EventQueue$4.run(EventQueue.java:731)\r\n\tat java.awt.EventQueue$4.run(EventQueue.java:729)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.awt.EventQueue.dispatchEvent(EventQueue.java:728)\r\n\tat java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)\r\n\tat java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)\r\n\tat java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)\r\n\tat java.awt.EventDispatchThread.run(EventDispatchThread.java:82)\r\nCaused by: java.lang.NoSuchMethodException: beast.app.beauti.BeautiAlignmentProvider$FastaImporter.<init>()\r\n\tat java.lang.Class.getConstructor0(Class.java:3082)\r\n\tat java.lang.Class.newInstance(Class.java:412)\r\n\t... 42 more\r\njava.lang.IllegalArgumentException: Unknown code found in sequence: B\r\n\tat beast.evolution.datatype.DataType$Base.string2state(Unknown Source)\r\n\tat beast.evolution.alignment.Sequence.getSequence(Unknown Source)\r\n\tat beast.evolution.alignment.Alignment.initializeWithSequenceList(Unknown Source)\r\n\tat beast.evolution.alignment.Alignment.initAndValidate(Unknown Source)\r\n\tat beast.app.beauti.BeautiAlignmentProvider$FastaImporter.loadFile(Unknown Source)\r\n\tat beast.app.beauti.BeautiAlignmentProvider.getAlignments(Unknown Source)\r\n\tat beast.app.beauti.BeautiAlignmentProvider.getAlignments(Unknown Source)\r\n\tat beast.app.beauti.Beauti$1.actionPerformed(Unknown Source)\r\n\tat javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)\r\n\tat javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)\r\n\tat javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)\r\n\tat javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)\r\n\tat javax.swing.AbstractButton.doClick(AbstractButton.java:376)\r\n\tat javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)\r\n\tat javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)\r\n\tat java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)\r\n\tat java.awt.Component.processMouseEvent(Component.java:6533)\r\n\tat javax.swing.JComponent.processMouseEvent(JComponent.java:3324)\r\n\tat java.awt.Component.processEvent(Component.java:6298)\r\n\tat java.awt.Container.processEvent(Container.java:2236)\r\n\tat java.awt.Component.dispatchEventImpl(Component.java:4889)\r\n\tat java.awt.Container.dispatchEventImpl(Container.java:2294)\r\n\tat java.awt.Component.dispatchEvent(Component.java:4711)\r\n\tat java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)\r\n\tat java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)\r\n\tat java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)\r\n\tat java.awt.Container.dispatchEventImpl(Container.java:2280)\r\n\tat java.awt.Window.dispatchEventImpl(Window.java:2746)\r\n\tat java.awt.Component.dispatchEvent(Component.java:4711)\r\n\tat java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)\r\n\tat java.awt.EventQueue.access$500(EventQueue.java:97)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:709)\r\n\tat java.awt.EventQueue$3.run(EventQueue.java:703)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)\r\n\tat java.awt.EventQueue$4.run(EventQueue.java:731)\r\n\tat java.awt.EventQueue$4.run(EventQueue.java:729)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)\r\n\tat java.awt.EventQueue.dispatchEvent(EventQueue.java:728)\r\n\tat java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)\r\n\tat java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)\r\n\tat java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)\r\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)\r\n\tat java.awt.EventDispatchThread.run(EventDispatchThread.java:82)\r\n```\r\n\r\nI changed the characters to 'N', which is good enough for my purposes but it is technically incorrect. I've attached an (extremely simple) alignment as an example; renamed because git doesn't support .fa files.\r\n[test.fa.txt](https://github.com/CompEvol/beast2/files/625186/test.fa.txt)\r\n\r\n\r\n\r\nThanks,\r\nErik"}}
{"actor":{"display_login":"erikvdbergh"}}