Details
-
Type:
Task
-
Status: Closed (View Workflow)
-
Priority:
Major
-
Resolution: Fixed
-
Labels:None
Description
Support new combined link.psl format in QL to allow Lucene searching, color configuration, partial data loading via tabix indexing.
Ann will attach example file shortly.
Attachments
- link.psl.zip
- 3.31 MB
- test.link.psl.gz
- 2.74 MB
- test.link.psl.gz.tbi
- 71 kB
Issue Links
- relates to
-
BUG-622 File format issues
-
- Closed
-
Activity
Attached files are for A_thaliana_Jun_2009. Each line is two merged PSL lines. The first 21 columns are the consensus sequence's alignment onto the reference genome. The next 21 columns are the probes alignment onto the consensus sequence represented in the first 21 columns. See also: http://genome.ucsc.edu/FAQ/FAQformat.html#format2 for reminder of the PSL format. I merged the files using convertLinkPsl.py in repo genomes/trunk/pub/src.
Done in r13329.
FAILED V.13821, Mac, Java 1.7.0_10
When dragging and loading the attached .psl file, a confirmation window appears saying:
"Unable to load data set for this file. Would you like to remove this file from the list?"
This means either .psl format is still not accepted by IGB, OR the specific .psl file is not properly formatted. In the Java console, the following errors are displayed:
java.lang.RuntimeException: Premature end of file
at org.broad.tribble.util.BlockCompressedInputStream.readBlock(BlockCompressedInputStream.java:286)
at org.broad.tribble.util.BlockCompressedInputStream.available(BlockCompressedInputStream.java:96)
at org.broad.tribble.util.BlockCompressedInputStream.read(BlockCompressedInputStream.java:165)
at org.broad.tribble.util.BlockCompressedInputStream.read(BlockCompressedInputStream.java:146)
at com.affymetrix.genometryImpl.symloader.SymLoaderTabix.isTabix(SymLoaderTabix.java:206)
at com.affymetrix.genometryImpl.symloader.SymLoaderTabix.getSymLoader(SymLoaderTabix.java:231)
at com.affymetrix.genometryImpl.parsers.FileTypeHolder$6.createSymLoader(FileTypeHolder.java:221)
at com.affymetrix.genometryImpl.util.ServerUtils.determineLoader(ServerUtils.java:1055)
at com.affymetrix.igb.view.load.GeneralLoadUtils.getFeature(GeneralLoadUtils.java:1254)
at com.affymetrix.igb.view.load.GeneralLoadUtils.openURI(GeneralLoadUtils.java:1122)
at com.affymetrix.igb.IGBServiceImpl.openURI(IGBServiceImpl.java:375)
at com.affymetrix.igb.shared.OpenURIAction.openURI(OpenURIAction.java:48)
at com.affymetrix.igb.action.LoadFileAction.openURI(LoadFileAction.java:116)
at com.affymetrix.igb.action.LoadFileAction.openURIOrRunScript(LoadFileAction.java:94)
at com.affymetrix.igb.action.LoadFileAction.access$200(LoadFileAction.java:41)
at com.affymetrix.igb.action.LoadFileAction$1.openURLAction(LoadFileAction.java:83)
at com.affymetrix.genometryImpl.util.FileDropHandler.importData(FileDropHandler.java:67)
at javax.swing.TransferHandler$DropHandler.drop(TransferHandler.java:1536)
at java.awt.dnd.DropTarget.drop(DropTarget.java:450)
at javax.swing.TransferHandler$SwingDropTarget.drop(TransferHandler.java:1274)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(SunDropTargetContextPeer.java:537)
at sun.lwawt.macosx.CDropTargetContextPeer.processDropMessage(CDropTargetContextPeer.java:127)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetContextPeer.java:851)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:775)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:48)
at java.awt.Component.dispatchEventImpl(Component.java:4716)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Dec 27, 2012 11:50:11 AM com.affymetrix.genometryImpl.quickload.QuickLoadSymLoader logException
SEVERE: Error parsing PSL file
line count: 0
java.lang.Exception: Error parsing PSL file
line count: 0
at com.affymetrix.genometryImpl.symloader.PSL.parseLines(PSL.java:259)
at com.affymetrix.genometryImpl.symloader.SymLoader.buildIndex(SymLoader.java:77)
at com.affymetrix.genometryImpl.symloader.PSL.init(PSL.java:94)
at com.affymetrix.genometryImpl.symloader.PSL.getChromosomeList(PSL.java:105)
at com.affymetrix.genometryImpl.quickload.QuickLoadSymLoader.getChromosomeList(QuickLoadSymLoader.java:224)
at com.affymetrix.igb.view.load.GeneralLoadUtils$4.runInBackground(GeneralLoadUtils.java:1167)
at com.affymetrix.igb.view.load.GeneralLoadUtils$4.runInBackground(GeneralLoadUtils.java:1162)
at com.affymetrix.genometryImpl.thread.CThreadWorker.doInBackground(CThreadWorker.java:61)
at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at javax.swing.SwingWorker.run(SwingWorker.java:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: net.sf.samtools.FileTruncatedException: Premature end of file
at net.sf.samtools.util.BlockCompressedInputStream.readBlock(BlockCompressedInputStream.java:359)
at net.sf.samtools.util.BlockCompressedInputStream.available(BlockCompressedInputStream.java:109)
at net.sf.samtools.util.BlockCompressedInputStream.read(BlockCompressedInputStream.java:234)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:273)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at com.affymetrix.genometryImpl.symloader.PSL.parseLines(PSL.java:158)
... 14 more
You cannot drag and drop file from jira. Please try downloading the file and it's index and then try loading it.
V.13821, Mac, Java 1.7.0_10
File and index file downloaded, per direction of Hiral.
File loads properly, displaying data. Files can perform full loading or partial loading.
Lucene searching of the file appears to function properly. Colors are loaded according to the IGB defaults.
If examples of Lucene searching (I assume partial loading is a fast query of the entire in itself) can be provided I would like to test this more thoroughly.
Before you test this, you will have to create lucene index for the file that you want to search. (You get binaries for Lucene indexing from here. https://dl.dropbox.com/u/9987642/LuceneIndexing.zip Check docs/readme.html for further detail)
To test Lucene search, just select a file from the tree in data management table but don't load the file.
Then go to search tab and try to search something.
FAILED V.13709, Mac, Java 1.7.0_10
This function was tested with local files (See uploaded zip link.psl.zip attached) created by Fuquan.
The link.psl.gz file was added to the 'Data Management' Table under 'Data Access' with the default load mode set to 'Manual'. The data was not loaded.
In the 'Search' field located at the top left corner of the main viewer, 'A' was input as a query.
The entire file was searched for this query A, based on the default of 'IDs or names' and the 'Advanced Search' Tab was opened, displaying the results from the query. The Java console output:
Searching Lucene for A ...
Searching file:/Users/richardlinchangco/Downloads/Archive/test.link.psl.gz for A ...
A: 1000 matches
Searching Properties for A ...
Search for A on genome: Searching locally...
Search for A on genome: No matches
Lucene :A: 1000 matches, Properties :Search for A on genome: No matches,
found 1000 spans
When testing the same query in the 'Advanced Search' Tab, entering 'A' in the input field and searching 'IDs or names' returns no matches. This is not concurrent with the 'Search' of the main viewer.
The link.psl file does not contain any searchable properties such as gene name, description, or even the sequence. No further search is available with the linked files. When trying to 'Load Sequence', a WARNING appears stating, "Unable to load partial sequence".
A more specific test was performed by opening and loading the file and selecting a certain ID, ATH1-121501:246619_AT specifically, to search later.
IGB was then closed and reopened, WITHOUT loading, and ATH1-121501:246619_AT was input into the search field under the 'Advanced Search' Tab, searching for 'IDs or names' of the 'genome'. NO RESULTS were returned.
Testing the main viewer search in the upper left corner with ATH1-121501:246619_AT DID return the expected result, which opened in the 'Advanced Search' Tab.
This inconsistency between the main viewer and the 'Advanced Search' Tab must be corrected.
In advanced search tab, if you change the search mode from 'IDs and names' to 'Keyword' then hit search (or enter) the result will be there.
However, is the keyword search mode expected in this case?
Tested by changing 'Search' drop-down menu to 'Keyword' and did work.
BUT I agree with Fuquan that the default 'Search' in 'Advanced Search' should be concurrent to that of the main viewer 'Search'.
Both 'Search' fields should default to 'Keyword' search, to produce the same results.
Done in 13933
V.13934, Mac, Java 1.7.0_10
Main viewer 'Search' follows the 'Keyword' mode by default, but 'Advanced Search' still defaults to 'IDs or names', producing non-concurrent results.
Changes were not merged on to the branch earlier. Now merged in r13939.
Passed V.13940, Mac, Java 1.7.0_10
Tested with attached folder, link.psl.zip, and once the 'Range Box' search has executed, the 'Advanced Search' tab is opened and switched to 'Keyword' search mode.
'Advanced Search' defaults to the 'IDs and genes' search mode if the 'Range Box' search is not used.
I am working on this still. Sorry for the delay.