Hello Anne - great to hear from you !
I started my internship about Jalview and Varna yesterday and I would
like to ask you some questions.
No problem. I'm always happy to help.
I currently trying to integrate tertiary interactions in the current
model Jalview but I can not find the file. Class containing the model
of secondary interactions. I think it is in the package datamodel but
none matched what I was looking at the secondary structure. Maybe I
was doing a bad representation: an array containing the sequence and
each nucleotide, the nucleotide with which it interacts.
The secondary structure is stored as a list of pairwise contacts held in the the jalview.datamodel.AlignmentAnnotation class. It's done this way because whilst secondary structure might be associated with a sequence, it might also be associated with a whole alignment, or a specific group of sequences. The field in question is jalview.datamodel.AlignmentAnnotation._rnasecstr
Make sure you are working off the 'develop' branch of Jalview - the currently released version (v2.7) does not have any of the RNA secondary structure capabilities available. If you register at http://issues.jalview.org/ I'll add your user to the development group so you can checkout and commit to the git repository at https://source.jalview.org/git/jalview.git
It is true that I still do not understand the whole architecture of
Jalview. I will try in the coming days to have a better understanding.
We should probably have a short skype meeting so I can walk you through the code, and answer any questions you might have. Shall we talk tomorrow morning ? (I'm free at 10am my time).
Also, I read the article on Nested Containment List:
According to the authors, it is coded in C but has a pluggin for
Python but how is it to use these lists in java?
The data structure itself is not very complex, and I think you'll easily implement it in Java.
The way I was thinking this might work is to create a neste containment list that allows efficient search and subselection operations like:
jalview.datamodel.NCList<IntervalContainer> implements List
* find all intervals on (if start_inclusive is set), and before or after start
public List<IntervalContainer> find(long start, boolean start_inclusive, boolean before_or_after);
* find all intervals on or between start and end (according to start_inclusive and end_inclusive)
public List<IntervalContainer> find(long start, boolean start_inclusive, long end, boolean end_inclusive);
The IntervalContainer interface defines the basic methods for finding the location of the interval (e.g. getStart() and getEnd()).
Don't worry too much about ultrafast implementation for the moment - anything will be better than what Jalview has at the moment, which is simply a list of pairs that must be searched through each time.
On Tue Jun 12 12:50:01 2012, Ménard Anne wrote: