From: Guanming Wu <gua...@us...> - 2004-12-01 03:30:03
|
Update of /cvsroot/gmod/apollo/src/java/apollo/dataadapter/chado/jdbc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26006/apollo/src/java/apollo/dataadapter/chado/jdbc Modified Files: JdbcChadoAdapter.java Log Message: Bug fixes: Use different features for different program or feature types Index: JdbcChadoAdapter.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/dataadapter/chado/jdbc/JdbcChadoAdapter.java,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** JdbcChadoAdapter.java 29 Nov 2004 16:05:47 -0000 1.69 --- JdbcChadoAdapter.java 1 Dec 2004 03:29:53 -0000 1.70 *************** *** 10,13 **** --- 10,14 ---- import java.util.HashMap; import java.util.Hashtable; + import java.util.Iterator; import java.util.Map; import java.util.Vector; *************** *** 1020,1031 **** boolean setAlignSeqs, FeatureLocImplementation featLoc) { - // should make new ones of these for each type if theres multiple types in the query ! FeatureSet analysisForwardFeatSet = new FeatureSet(); ! analysisForwardFeatSet.setStrand(1); ! sfs.addFeature(analysisForwardFeatSet); ! FeatureSet analysisReverseFeatSet = new FeatureSet(); ! analysisReverseFeatSet.setStrand(-1); ! sfs.addFeature(analysisReverseFeatSet); // Count gapped alignments; can't currently display sequences for these // JC: The above comment refers to the fact that we don't have the actual --- 1021,1033 ---- boolean setAlignSeqs, FeatureLocImplementation featLoc) { // should make new ones of these for each type if theres multiple types in the query ! Map forwardFeatMap = new HashMap(); // To sort out FeatureSets based on feature type ! Map reverseFeatMap = new HashMap(); ! //FeatureSet analysisForwardFeatSet = new FeatureSet(); ! //analysisForwardFeatSet.setStrand(1); ! //sfs.addFeature(analysisForwardFeatSet); ! //FeatureSet analysisReverseFeatSet = new FeatureSet(); ! //analysisReverseFeatSet.setStrand(-1); ! //sfs.addFeature(analysisReverseFeatSet); // Count gapped alignments; can't currently display sequences for these // JC: The above comment refers to the fact that we don't have the actual *************** *** 1282,1291 **** FeatureSet targetFeatSet = _makeFeatureSet(featurePairs, lastTargetSp, lastFeatType, lastStrand); ! if (targetFeatSet.isForwardStrand()) { ! analysisForwardFeatSet.addFeature(targetFeatSet); ! } ! else { ! analysisReverseFeatSet.addFeature(targetFeatSet); ! } featurePairs.clear(); } --- 1284,1300 ---- FeatureSet targetFeatSet = _makeFeatureSet(featurePairs, lastTargetSp, lastFeatType, lastStrand); ! FeatureSet featureSet = getFeatureSetForType(lastFeatType, ! targetFeatSet.isForwardStrand(), ! forwardFeatMap, ! reverseFeatMap); ! featureSet.addFeature(targetFeatSet); ! // if (targetFeatSet.isForwardStrand()) { ! // FeatureSet featureSet = getFeatureSetForType(lastFeatType, ! // true,) ! // analysisForwardFeatSet.addFeature(targetFeatSet); ! // } ! // else { ! // analysisReverseFeatSet.addFeature(targetFeatSet); ! // } featurePairs.clear(); } *************** *** 1316,1327 **** FeatureSet targetFeatSet = _makeFeatureSet(featurePairs, lastTargetSp, lastFeatType, lastStrand); ! if (targetFeatSet.isForwardStrand()) { ! analysisForwardFeatSet.addFeature(targetFeatSet); ! } ! else { ! analysisReverseFeatSet.addFeature(targetFeatSet); ! } featurePairs.clear(); } } catch (SQLException sqle) { System.err.println(this.getClass() + ": SQLException retrieving analysisfeatures for sequence with feature_id = " + srcSeqId); --- 1325,1343 ---- FeatureSet targetFeatSet = _makeFeatureSet(featurePairs, lastTargetSp, lastFeatType, lastStrand); ! FeatureSet featureSet = getFeatureSetForType(lastFeatType, ! targetFeatSet.isForwardStrand(), ! forwardFeatMap, ! reverseFeatMap); ! featureSet.addFeature(targetFeatSet); ! // if (targetFeatSet.isForwardStrand()) { ! // analysisForwardFeatSet.addFeature(targetFeatSet); ! // } ! // else { ! // analysisReverseFeatSet.addFeature(targetFeatSet); ! // } featurePairs.clear(); } + addFeatureToParents(sfs, forwardFeatMap); + addFeatureToParents(sfs, reverseFeatMap); } catch (SQLException sqle) { System.err.println(this.getClass() + ": SQLException retrieving analysisfeatures for sequence with feature_id = " + srcSeqId); *************** *** 1334,1337 **** --- 1350,1379 ---- // } } // end of addSearchHits() + + private FeatureSet getFeatureSetForType(String featureType, + boolean isForward, + Map forwardMap, + Map reverseMap) { + FeatureSet feature = null; + if (isForward) { + feature = (FeatureSet) forwardMap.get(featureType); + if (feature == null) { + feature = new FeatureSet(); + feature.setStrand(1); + feature.setType(featureType); + forwardMap.put(featureType, feature); + } + } + else { + feature = (FeatureSet) reverseMap.get(featureType); + if (feature == null) { + feature = new FeatureSet(); + feature.setStrand(-1); + feature.setType(featureType); + reverseMap.put(featureType, feature); + } + } + return feature; + } *************** *** 1530,1533 **** --- 1572,1577 ---- String lastProgram = null; FeatureSet transcriptFeatSet=null; + Map forwardMap = new HashMap(); + Map reverseMap = new HashMap(); while (rs.next()) { int transcriptId = rs.getInt("transId"); *************** *** 1563,1567 **** transcriptFeatSet = _makeFeatureSet(featType,strand); transcriptFeatSet.setProgramName(program); ! parentFeatSet.addFeature(transcriptFeatSet); //lastTranscriptName = transcriptName; lastTranscriptId = transcriptId; --- 1607,1616 ---- transcriptFeatSet = _makeFeatureSet(featType,strand); transcriptFeatSet.setProgramName(program); ! FeatureSet programFeature = getFeatureSetForType(program, ! transcriptFeatSet.isForwardStrand(), ! forwardMap, ! reverseMap); ! programFeature.addFeature(transcriptFeatSet); ! //parentFeatSet.addFeature(transcriptFeatSet); //lastTranscriptName = transcriptName; lastTranscriptId = transcriptId; *************** *** 1574,1578 **** String rng = transcriptFeatSet.getStart()+"-"+transcriptFeatSet.getEnd(); transcriptFeatSet.setName(lastProgram+":"+rng); ! } catch (SQLException sqle) { System.err.println(this.getClass() + ": SQLException retrieving gene predictions " --- 1623,1628 ---- String rng = transcriptFeatSet.getStart()+"-"+transcriptFeatSet.getEnd(); transcriptFeatSet.setName(lastProgram+":"+rng); ! addFeatureToParents(parentFeatSet, forwardMap); ! addFeatureToParents(parentFeatSet, reverseMap); } catch (SQLException sqle) { System.err.println(this.getClass() + ": SQLException retrieving gene predictions " *************** *** 1582,1585 **** --- 1632,1643 ---- } + private void addFeatureToParents(StrandedFeatureSet parentFeatSet, Map forwardMap) { + for (Iterator it = forwardMap.keySet().iterator(); it.hasNext();) { + String program = (String) it.next(); + FeatureSet fs = (FeatureSet) forwardMap.get(program); + parentFeatSet.addFeature(fs); + } + } + private AnalysisTable analysisTable; |