import org.forester.phylogeny.Phylogeny;
import org.forester.phylogeny.PhylogenyMethods;
import org.forester.phylogeny.PhylogenyNode;
+import org.forester.phylogeny.data.Accession;
import org.forester.phylogeny.data.Annotation;
import org.forester.phylogeny.data.BranchColor;
+import org.forester.phylogeny.data.NodeData.NODE_DATA;
import org.forester.phylogeny.data.Sequence;
import org.forester.phylogeny.data.Taxonomy;
import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
import org.forester.phylogeny.iterators.PreorderTreeIterator;
import org.forester.util.ForesterConstants;
import org.forester.util.ForesterUtil;
-import org.forester.util.SequenceIdParser;
+import org.forester.util.SequenceAccessionTools;
import org.forester.ws.seqdb.UniProtTaxonomy;
public class TreePanelUtil {
final Configuration conf,
final TreePanel tp ) {
String uri_str = null;
- final String upkb = ForesterUtil.extractUniProtKbProteinSeqIdentifier( node );
+ final String upkb = SequenceAccessionTools.obtainUniProtAccessorFromDataFields( node );
if ( !ForesterUtil.isEmpty( upkb ) ) {
try {
uri_str = ForesterUtil.UNIPROT_KB + URLEncoder.encode( upkb, ForesterConstants.UTF8 );
}
}
if ( ForesterUtil.isEmpty( uri_str ) ) {
- final String v = ForesterUtil.extractGenbankAccessor( node );
+ final String v = SequenceAccessionTools.obtainGenbankAccessorFromDataFields( node );
if ( !ForesterUtil.isEmpty( v ) ) {
try {
- if ( SequenceIdParser.isProtein( v ) ) {
+ if ( SequenceAccessionTools.isProteinDbQuery( v ) ) {
uri_str = ForesterUtil.NCBI_PROTEIN + URLEncoder.encode( v, ForesterConstants.UTF8 );
}
else {
}
}
if ( ForesterUtil.isEmpty( uri_str ) ) {
- final String v = ForesterUtil.extractRefSeqAccessorAccessor( node );
+ final String v = SequenceAccessionTools.obtainRefSeqAccessorFromDataFields( node );
if ( !ForesterUtil.isEmpty( v ) ) {
try {
- if ( SequenceIdParser.isProtein( v ) ) {
+ if ( SequenceAccessionTools.isProteinDbQuery( v ) ) {
uri_str = ForesterUtil.NCBI_PROTEIN + URLEncoder.encode( v, ForesterConstants.UTF8 );
}
else {
}
}
if ( ForesterUtil.isEmpty( uri_str ) ) {
- final String v = ForesterUtil.extractGInumber( node );
+ final String v = SequenceAccessionTools.obtainGiNumberFromDataFields( node );
if ( !ForesterUtil.isEmpty( v ) ) {
try {
uri_str = ForesterUtil.NCBI_GI + URLEncoder.encode( v, ForesterConstants.UTF8 );
return uri_str;
}
+ public static List<String> createUrisForPdbWeb( final PhylogenyNode node,
+ final List<Accession> pdb_accs,
+ final Configuration configuration,
+ final TreePanel treePanel ) {
+ final List<String> uris = new ArrayList<String>();
+ if ( !ForesterUtil.isEmpty( pdb_accs ) ) {
+ for( final Accession pdb_acc : pdb_accs ) {
+ if ( !ForesterUtil.isEmpty( pdb_acc.getValue() ) ) {
+ uris.add( ForesterUtil.PDB + pdb_acc.getValue() );
+ }
+ }
+ }
+ return uris;
+ }
+
/**
* Returns the set of distinct taxonomies of
* all external nodes of node.
if ( cp.isShowNodeNames() && !ForesterUtil.isEmpty( node.getName() ) ) {
TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getName(), sb );
}
- if ( cp.isShowGeneNames() && node.getNodeData().isHasSequence()
+ if ( cp.isShowSeqNames() && node.getNodeData().isHasSequence()
&& !ForesterUtil.isEmpty( node.getNodeData().getSequence().getName() ) ) {
TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence().getName(), sb );
}
- if ( cp.isShowGeneSymbols() && node.getNodeData().isHasSequence()
+ if ( cp.isShowSeqSymbols() && node.getNodeData().isHasSequence()
&& !ForesterUtil.isEmpty( node.getNodeData().getSequence().getSymbol() ) ) {
TreePanelUtil
.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence().getSymbol(), sb );
}
+ if ( cp.isShowGeneNames() && node.getNodeData().isHasSequence()
+ && !ForesterUtil.isEmpty( node.getNodeData().getSequence().getGeneName() ) ) {
+ TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence().getGeneName(),
+ sb );
+ }
if ( cp.isShowSequenceAcc() && node.getNodeData().isHasSequence()
&& ( node.getNodeData().getSequence().getAccession() != null )
&& !ForesterUtil.isEmpty( node.getNodeData().getSequence().getAccession().toString() ) ) {
TreePanelUtil
.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getTaxonomy().getCommonName(), sb );
}
- if ( ( cp.isShowGeneNames() || cp.isShowGeneSymbols() || cp.isShowSequenceAcc() )
+ if ( ( cp.isShowSeqNames() || cp.isShowSeqSymbols() || cp.isShowSequenceAcc() )
&& node.getNodeData().isHasSequence()
&& !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) {
TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence()
final static boolean isSequenceEmpty( final Sequence seq ) {
return ( seq.getAccession() == null ) && ForesterUtil.isEmpty( seq.getName() )
- && ForesterUtil.isEmpty( seq.getSymbol() );
+ && ForesterUtil.isEmpty( seq.getGeneName() ) && ForesterUtil.isEmpty( seq.getSymbol() );
}
final static boolean isTaxonomyEmpty( final Taxonomy tax ) {
.getSynonyms().isEmpty() );
}
+ static int makeSB( final List<String> data, final Options optz, final StringBuilder sb ) {
+ final SortedMap<String, Integer> map = new TreeMap<String, Integer>();
+ if ( ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ )
+ && ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ_FASTA ) ) {
+ for( final String d : data ) {
+ if ( !ForesterUtil.isEmpty( d ) ) {
+ if ( map.containsKey( d ) ) {
+ map.put( d, map.get( d ) + 1 );
+ }
+ else {
+ map.put( d, 1 );
+ }
+ }
+ }
+ }
+ int size = 0;
+ if ( ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ )
+ && ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ_FASTA ) ) {
+ for( final Entry<String, Integer> e : map.entrySet() ) {
+ final String v = e.getKey();
+ final Object c = e.getValue();
+ sb.append( v );
+ sb.append( "\t" );
+ sb.append( c );
+ sb.append( ForesterUtil.LINE_SEPARATOR );
+ }
+ size = map.size();
+ }
+ else {
+ for( final String d : data ) {
+ if ( !ForesterUtil.isEmpty( d ) ) {
+ sb.append( d );
+ sb.append( ForesterUtil.LINE_SEPARATOR );
+ }
+ }
+ size = data.size();
+ }
+ return size;
+ }
+
final static char normalizeCharForRGB( char c ) {
c -= 65;
c *= 10.2;
return c;
}
+ final static String pdbAccToString( final List<Accession> accs, final int i ) {
+ if ( ForesterUtil.isEmpty( accs.get( i ).getComment() ) ) {
+ return accs.get( i ).getValue();
+ }
+ return accs.get( i ).getValue() + " (" + accs.get( i ).getComment().toLowerCase() + ")";
+ }
+
final static Phylogeny subTree( final PhylogenyNode new_root, final Phylogeny source_phy ) {
final Phylogeny new_phy = new Phylogeny();
new_phy.setRooted( true );