RdcPanda
Class Nasca

java.lang.Object
  extended by RdcPanda.Nasca

public class Nasca
extends java.lang.Object


Nested Class Summary
 class Nasca.Node
           
 
Constructor Summary
Nasca()
           
 
Method Summary
 void AddProtonCoordinates(int resID, java.lang.String resName, java.lang.String atomName, Cartesian coord, java.util.Vector vecOldGraph)
          add the coordinates of a proton into the graph
 java.util.Vector AddResonanceNode(java.util.Vector vecOldGraph, double csH, double csHeavy, double csErrH, double csErrC, double csErrN)
          add the reosnance node into the graph
 java.util.Vector AStarSearchForSCAsgs(java.util.Vector vecResonGraph, java.util.Vector vecHPositions, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          Apply the A* search algorithm to find the optimal side-chain resonances.
 void CompOneToOneMapBtwInterval(java.util.Vector vecResonGraph, java.util.Vector vecStructGraph, int[][] Map, double intvLower, double intvUpper)
          compute all possible one-to-one mapping for all resonances within an interval
 double ComputeAStarEstimatedCost(java.util.Vector vecResonGraph, java.util.Vector vecGraph, java.util.Vector vecBMRBNew, int curIndex)
          compute the estimated cost in A* search.
 java.util.Vector ConstructProtonPositions(java.util.Vector pdbBBVec, java.lang.String rotSrc, double noeUp)
          put all rotamers at each redidue, and construct the label set (i.e.
 java.util.Vector ConstructResonGraph(java.util.Vector vecNodeSet, java.util.Vector vecNoesy, double errH1, double errH3, double errC, double errN)
          add the reosnance node into the graph from given assigned resonance list
 java.util.Vector ConstructResonGraphFromAsgedList(java.util.Vector vecAsged, java.util.Vector vecUnAsged)
          add the reosnance node into the graph from given assigned resonance list
 void ConstructResonGraphSymmetry(java.util.Vector vecResonGraph, java.util.Vector vecNoesy, double errH1, double errH3, double errC, double errN)
          add the reosnance node into the graph from given assigned resonance list
static void copyfile(java.lang.String srFile, java.lang.String dtFile)
           
 void doNasca(java.lang.String src, java.lang.String strOut, java.lang.String strInput)
          Implement the NOE assignment (NASCA) algorithm without using the side-chain resonance infomration.
 java.util.Vector EnumAllScAsg(java.util.Vector vecStructGraph)
          enumerate all possible for assignment for sidechain protons in a residue
 java.util.Vector EnumAllScAsgSaveIntoFile(java.util.Vector vecSCProtons, java.util.Vector vecResonGraph, java.util.Vector vecStructGraph)
          compute all possible one-to-one mapping for all resonances within an interval
 void ExactSubgraphIsomorphism(java.util.Vector vecResonGraph, java.util.Vector vecStructGraph, int[][] Map)
          compute the exact one-to-one mapping between two graph
 java.util.Vector ExtractAllResonFromNOESY(java.util.Vector vecNOESY, double csErrH, double csErrC, double csErrN)
          exact the backbone resonance assignment
 java.util.Vector ExtractBackboneAsignment(java.util.Vector vecAsg)
          exact the backbone resonance assignment
 java.util.Vector ExtractSideChainAsignment(java.util.Vector vecAsg)
           
 java.util.Vector GreedyGraphMatching(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          at each step, choose the most confident assignment for one proton node.
 java.util.Vector GreedyGraphMatchingAstar(java.util.Vector vecResonGraph, java.util.Vector vecGraphOld, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew, java.util.Vector vecBBAsg, java.util.Vector vecBBPdb, java.lang.String strRot, double caliConstant)
          Not used now at each step, choose the most confident assignment for one proton node.
 java.util.Vector GreedyGraphMatchingResidue(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          at each step, choose the most confident assignment for one proton node.
 void Initialization(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecBBAsg)
          Initialization.
 boolean isInCloseAdj(Nasca.Node nodeSrc, Nasca.Node nodeObj)
          check whether one node is in another node's close neighbors
 boolean isInStereoSet(Nasca.Node nodeSrc, Nasca.Node nodeObj)
          check whether one node is in another node's stereo set
 boolean isMappedBetwTwoSets(java.util.Vector vecNodeSetA, java.util.Vector vecNodeSetB, int[][] M, boolean isConsiderAssigned, int threshold, double[] Score)
          check whether there exists at least one mapping between two node sets
 boolean isMappedBetwTwoSetsCalScore(Nasca.Node nodeReson, Nasca.Node nodeStruct, java.util.Vector vecNodeSetA, java.util.Vector vecNodeSetB, int[][] M, boolean isConsiderAssigned, int threshold, double[] Score, java.util.Vector vecNoesy)
          check whether there exists at least one mapping between two node sets
 java.util.Vector myVectorCopy(java.util.Vector vecSrc)
           
 java.util.Vector myVectorCopyOneLayer(java.util.Vector vecSrc)
           
 void PrintAllPossibleMappings(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map)
          print out all possible for proton nodes
 java.util.Vector RandomGraphMatching(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          random graph matching algorithm.
 void RefineMappingBasedAsg(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          refine mapping based on backbone assignment
 void RefineMappingBasedBMRBOutliers(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, java.util.Vector vecBMRBNew)
          refine mapping based on BMRB outliers
 void RefineMappingBasedNeighbor(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map)
          refine mapping based on neighboring information
 void RefineMappingBasedRestrained(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          refine mapping based on previous restrained mapping sets, modified from "RefineMappingBasedAsg"
 void RefineMappingBasedRotPattern(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map)
          refine mapping based on intra NOE patterns Note: Sysmetry-only when distance<3.0A, and sidechain protons
 void RefineMappingDeeCut(java.util.Vector vecResonGraph, java.util.Vector vecHPositions, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          Use the DEE algorithm to prune possible side-chain resonance assignments.
 void RefineMappingDeeCutGoldstein(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          Use the DEE algorithm to prune possible mapping.
 void RefineMappingForHG(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map, double[][] MapScore, java.util.Vector vecNewNoesy, java.util.Vector vecBMRBNew)
          refine mapping for HG protons modified from "RefineMappingBasedAsg"
 void RefineResonGraph(java.util.Vector vecResonGraph, java.util.Vector vecStructGraph, int[][] Map)
          refine resonance graph based currrent possible mapping set
 java.util.Vector RefineRotLibWOSCAsg(double csErrH, double csErrN, double csErrCA, java.util.Vector vecRot, java.util.Vector vecBB, java.util.Vector assignBBVec, java.util.Vector NoesyVec, int resNo, double distBound, int pickNum, java.util.Vector vecRotStr, java.util.Vector vecResonGraph, java.util.Vector vecStructGraph, int[][] Map, java.util.Vector vecAsgBMRB)
          rotamer selection without sidechain resonance assignment: calculate the score of each rotamer, and return ensemble of rotamers with highest scores
 java.util.Vector RotamSelectWOSCAsg(java.util.Vector pdbBBVec, java.util.Vector asgBBVec, java.util.Vector NoesyVec, java.util.Vector vecResonGraph, java.util.Vector vecStructGraph, int[][] Map, java.util.Vector vecAsgBMRB)
          Compute a structure without sidechain resonances, given the backbone and rotamers at all residue positions
 void StatisticsAllSCAssignment(java.util.Vector vecResonGraph, java.util.Vector vecStructGraph, int[][] Map, java.util.Vector vecRefAsg)
          New: compute the statistical information of the sidechain assignment
 void StatisticsAllSCAssignmentOld(java.util.Vector vecResonGraph, java.util.Vector vecStructGraph, int[][] Map, java.util.Vector vecRefAsg)
          This is an old function.
 void UpdateIsRestrained(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map)
          update the mapping set based on the mapping matrix
 void UpdateMappingSet(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map)
          update the mapping set based on the mapping matrix
 void UpdateStereoSymSet(java.util.Vector vecResonGraph, java.util.Vector vecGraph, int[][] Map)
          update stereo symmetry
 java.util.Vector UpdateStructGraphAdj(java.util.Vector pdbVec, java.util.Vector vecGraphOld, double noeUp, double[][] distMatrix)
          update the neighborhood of the structure graph, given a pdb including both bb and sc (i.e.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Nasca

public Nasca()
Method Detail

RefineRotLibWOSCAsg

public java.util.Vector RefineRotLibWOSCAsg(double csErrH,
                                            double csErrN,
                                            double csErrCA,
                                            java.util.Vector vecRot,
                                            java.util.Vector vecBB,
                                            java.util.Vector assignBBVec,
                                            java.util.Vector NoesyVec,
                                            int resNo,
                                            double distBound,
                                            int pickNum,
                                            java.util.Vector vecRotStr,
                                            java.util.Vector vecResonGraph,
                                            java.util.Vector vecStructGraph,
                                            int[][] Map,
                                            java.util.Vector vecAsgBMRB)
rotamer selection without sidechain resonance assignment: calculate the score of each rotamer, and return ensemble of rotamers with highest scores

Parameters:
vecRot - rotamers
assignVec - resonance assignment
vecBB - backbone structure
hnNoeVec - hn Noe peak list
cnoeVec - ca noe peak list
resNo - residue number
distBound - distance bound to define noe distance
pcikNum - number of chosen rotamers with highest scores
vecRotStr - rotamer vectors in the structure format.
vecAsgBMRB: - BMRB statistical information
Returns:
refined rotamer positions, and refined sd assignments

RotamSelectWOSCAsg

public java.util.Vector RotamSelectWOSCAsg(java.util.Vector pdbBBVec,
                                           java.util.Vector asgBBVec,
                                           java.util.Vector NoesyVec,
                                           java.util.Vector vecResonGraph,
                                           java.util.Vector vecStructGraph,
                                           int[][] Map,
                                           java.util.Vector vecAsgBMRB)
Compute a structure without sidechain resonances, given the backbone and rotamers at all residue positions

Parameters:
csErrH - csErrN csErrCA error window size at each dimension
pdbBBVec - the PDB backbone structure
asgVec - resonace list
rotSrc - the path of rotmaer library
NoesyVec - Noe vector including both ha and hn noes
distBound - the distance bound for back computing distance pattern for each rotamer
pickNum - the best number of rotamers picked for computation
Returns:
final structure. and Updated asgVec. Note: the structure will be rotated for installing rotamers. So the structure need to be rotated back outside this function.

PrintAllPossibleMappings

public void PrintAllPossibleMappings(java.util.Vector vecResonGraph,
                                     java.util.Vector vecGraph,
                                     int[][] Map)
print out all possible for proton nodes

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs

UpdateStereoSymSet

public void UpdateStereoSymSet(java.util.Vector vecResonGraph,
                               java.util.Vector vecGraph,
                               int[][] Map)
update stereo symmetry

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs

UpdateIsRestrained

public void UpdateIsRestrained(java.util.Vector vecResonGraph,
                               java.util.Vector vecGraph,
                               int[][] Map)
update the mapping set based on the mapping matrix

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
-
-

UpdateMappingSet

public void UpdateMappingSet(java.util.Vector vecResonGraph,
                             java.util.Vector vecGraph,
                             int[][] Map)
update the mapping set based on the mapping matrix

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
-
-

RefineMappingBasedNeighbor

public void RefineMappingBasedNeighbor(java.util.Vector vecResonGraph,
                                       java.util.Vector vecGraph,
                                       int[][] Map)
refine mapping based on neighboring information

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
-
-

Initialization

public void Initialization(java.util.Vector vecResonGraph,
                           java.util.Vector vecGraph,
                           int[][] Map,
                           double[][] MapScore,
                           java.util.Vector vecBBAsg)
Initialization.

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecBBAsg - backbone resonance assignment list
-
-

RefineMappingBasedBMRBOutliers

public void RefineMappingBasedBMRBOutliers(java.util.Vector vecResonGraph,
                                           java.util.Vector vecGraph,
                                           int[][] Map,
                                           java.util.Vector vecBMRBNew)
refine mapping based on BMRB outliers

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-

RefineMappingBasedRotPattern

public void RefineMappingBasedRotPattern(java.util.Vector vecResonGraph,
                                         java.util.Vector vecGraph,
                                         int[][] Map)
refine mapping based on intra NOE patterns Note: Sysmetry-only when distance<3.0A, and sidechain protons

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
vecSeq - sequence list
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-

RefineMappingBasedAsg

public void RefineMappingBasedAsg(java.util.Vector vecResonGraph,
                                  java.util.Vector vecGraph,
                                  int[][] Map,
                                  double[][] MapScore,
                                  java.util.Vector vecNewNoesy,
                                  java.util.Vector vecBMRBNew)
refine mapping based on backbone assignment

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-

RefineMappingBasedRestrained

public void RefineMappingBasedRestrained(java.util.Vector vecResonGraph,
                                         java.util.Vector vecGraph,
                                         int[][] Map,
                                         double[][] MapScore,
                                         java.util.Vector vecNewNoesy,
                                         java.util.Vector vecBMRBNew)
refine mapping based on previous restrained mapping sets, modified from "RefineMappingBasedAsg"

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-

RandomGraphMatching

public java.util.Vector RandomGraphMatching(java.util.Vector vecResonGraph,
                                            java.util.Vector vecGraph,
                                            int[][] Map,
                                            double[][] MapScore,
                                            java.util.Vector vecNewNoesy,
                                            java.util.Vector vecBMRBNew)
random graph matching algorithm. allow two protons to be assigned to the same resonance node. note: unassigned case is possoble for a node; stereo protons can be assigned to the same resonance node.

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-
Returns:

GreedyGraphMatchingResidue

public java.util.Vector GreedyGraphMatchingResidue(java.util.Vector vecResonGraph,
                                                   java.util.Vector vecGraph,
                                                   int[][] Map,
                                                   double[][] MapScore,
                                                   java.util.Vector vecNewNoesy,
                                                   java.util.Vector vecBMRBNew)
at each step, choose the most confident assignment for one proton node. at each step, assign the whole residue. note: unassigned case is possoble for a node; stereo protons can be assigned to the same resonance node.

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-
Returns:

RefineMappingDeeCut

public void RefineMappingDeeCut(java.util.Vector vecResonGraph,
                                java.util.Vector vecHPositions,
                                int[][] Map,
                                double[][] MapScore,
                                java.util.Vector vecNewNoesy,
                                java.util.Vector vecBMRBNew)
Use the DEE algorithm to prune possible side-chain resonance assignments.

Parameters:
vecResonGraph - resonance graph
vecHPositions - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-

RefineMappingDeeCutGoldstein

public void RefineMappingDeeCutGoldstein(java.util.Vector vecResonGraph,
                                         java.util.Vector vecGraph,
                                         int[][] Map,
                                         double[][] MapScore,
                                         java.util.Vector vecNewNoesy,
                                         java.util.Vector vecBMRBNew)
Use the DEE algorithm to prune possible mapping. Similar to RefineMappingDeeCut, but use the Goldstein criterion. Note: this function need to further test

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-

GreedyGraphMatchingAstar

public java.util.Vector GreedyGraphMatchingAstar(java.util.Vector vecResonGraph,
                                                 java.util.Vector vecGraphOld,
                                                 int[][] Map,
                                                 double[][] MapScore,
                                                 java.util.Vector vecNewNoesy,
                                                 java.util.Vector vecBMRBNew,
                                                 java.util.Vector vecBBAsg,
                                                 java.util.Vector vecBBPdb,
                                                 java.lang.String strRot,
                                                 double caliConstant)
Not used now at each step, choose the most confident assignment for one proton node. Use A* algorithm to find the best assignment at each step. the defference between GreedyGraphMatching and here is that here the rotamers are allowed to change in the A* search note: unassigned case is possoble for a node; stereo protons can be assigned to the same resonance node.

Parameters:
vecResonGraph - resonance graph
vecBBAsg - backbone resonance list
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
vecBBPdb - bb pdb
strRot - rotamer lib file name
caliConstant - constant for calibration.
Returns:

GreedyGraphMatching

public java.util.Vector GreedyGraphMatching(java.util.Vector vecResonGraph,
                                            java.util.Vector vecGraph,
                                            int[][] Map,
                                            double[][] MapScore,
                                            java.util.Vector vecNewNoesy,
                                            java.util.Vector vecBMRBNew)
at each step, choose the most confident assignment for one proton node. note: unassigned case is possoble for a node; stereo protons can be assigned to the same resonance node.

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-
Returns:

ComputeAStarEstimatedCost

public double ComputeAStarEstimatedCost(java.util.Vector vecResonGraph,
                                        java.util.Vector vecGraph,
                                        java.util.Vector vecBMRBNew,
                                        int curIndex)
compute the estimated cost in A* search.

Parameters:
vecResonGraph - resonance graph.
vecStructGraph - structure graph.
vecBMRBNew - BMRB information.
curIndex - current index.
Returns:

AStarSearchForSCAsgs

public java.util.Vector AStarSearchForSCAsgs(java.util.Vector vecResonGraph,
                                             java.util.Vector vecHPositions,
                                             int[][] Map,
                                             double[][] MapScore,
                                             java.util.Vector vecNewNoesy,
                                             java.util.Vector vecBMRBNew)
Apply the A* search algorithm to find the optimal side-chain resonances. note: unassigned case is possoble for a node; stereo protons can be assigned to the same resonance node.

Parameters:
vecResonGraph - resonance graph
vecHPositions - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-
Returns:

RefineMappingForHG

public void RefineMappingForHG(java.util.Vector vecResonGraph,
                               java.util.Vector vecGraph,
                               int[][] Map,
                               double[][] MapScore,
                               java.util.Vector vecNewNoesy,
                               java.util.Vector vecBMRBNew)
refine mapping for HG protons modified from "RefineMappingBasedAsg"

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
MapScore - mapping score matrix
vecNewNoesy - noesy cross peak list
vecBMRBNew - BMRB information
-

RefineResonGraph

public void RefineResonGraph(java.util.Vector vecResonGraph,
                             java.util.Vector vecStructGraph,
                             int[][] Map)
refine resonance graph based currrent possible mapping set

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
-
-

ExactSubgraphIsomorphism

public void ExactSubgraphIsomorphism(java.util.Vector vecResonGraph,
                                     java.util.Vector vecStructGraph,
                                     int[][] Map)
compute the exact one-to-one mapping between two graph

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
-
-

myVectorCopy

public java.util.Vector myVectorCopy(java.util.Vector vecSrc)

myVectorCopyOneLayer

public java.util.Vector myVectorCopyOneLayer(java.util.Vector vecSrc)

EnumAllScAsg

public java.util.Vector EnumAllScAsg(java.util.Vector vecStructGraph)
enumerate all possible for assignment for sidechain protons in a residue

Parameters:
vecStructGraph - structure graph, in which the mapping sets are given
Map - mapping matrix between two graphs
intvLower, - intvUpper: bounds of interval
-
Returns:
all possible sc assignments

CompOneToOneMapBtwInterval

public void CompOneToOneMapBtwInterval(java.util.Vector vecResonGraph,
                                       java.util.Vector vecStructGraph,
                                       int[][] Map,
                                       double intvLower,
                                       double intvUpper)
compute all possible one-to-one mapping for all resonances within an interval

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
intvLower, - intvUpper: bounds of interval
-

EnumAllScAsgSaveIntoFile

public java.util.Vector EnumAllScAsgSaveIntoFile(java.util.Vector vecSCProtons,
                                                 java.util.Vector vecResonGraph,
                                                 java.util.Vector vecStructGraph)
compute all possible one-to-one mapping for all resonances within an interval

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
intvLower, - intvUpper: bounds of interval
-
Returns:

copyfile

public static void copyfile(java.lang.String srFile,
                            java.lang.String dtFile)

StatisticsAllSCAssignment

public void StatisticsAllSCAssignment(java.util.Vector vecResonGraph,
                                      java.util.Vector vecStructGraph,
                                      int[][] Map,
                                      java.util.Vector vecRefAsg)
New: compute the statistical information of the sidechain assignment

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
vecRefAsg - reference assignment table
-

StatisticsAllSCAssignmentOld

public void StatisticsAllSCAssignmentOld(java.util.Vector vecResonGraph,
                                         java.util.Vector vecStructGraph,
                                         int[][] Map,
                                         java.util.Vector vecRefAsg)
This is an old function. compute the statistical information of the sidechain assignment

Parameters:
vecResonGraph - resonance graph
vecStructGraph - structure graph
Map - mapping matrix between two graphs
vecRefAsg - reference assignment table
-

AddProtonCoordinates

public void AddProtonCoordinates(int resID,
                                 java.lang.String resName,
                                 java.lang.String atomName,
                                 Cartesian coord,
                                 java.util.Vector vecOldGraph)
add the coordinates of a proton into the graph

Parameters:
resID -
resName -
atomName -
coord - coordiante of the proton
vecOldGraph - old graph

ConstructProtonPositions

public java.util.Vector ConstructProtonPositions(java.util.Vector pdbBBVec,
                                                 java.lang.String rotSrc,
                                                 double noeUp)
put all rotamers at each redidue, and construct the label set (i.e. structure graph), which includes all possible proton positions. Note: this function was implemented in the early stage, which is slightly from what described in the paper. In prinple, it can reduce the running time of the original NASCA algorithm. In addition, the test has shown that it guarantee good results. Thus, we still keep using this function.

Parameters:
pdbBBVec - the PDB backbone structure
rotSrc - the path of rotmaer library
noeUp - upper limit for noe interaction, default:6A
Returns:
vecNodes vector of nodes.

UpdateStructGraphAdj

public java.util.Vector UpdateStructGraphAdj(java.util.Vector pdbVec,
                                             java.util.Vector vecGraphOld,
                                             double noeUp,
                                             double[][] distMatrix)
update the neighborhood of the structure graph, given a pdb including both bb and sc (i.e. one rotamer)

Parameters:
pdbVec - the PDB structure,including both bb and sc
rotSrc - the path of rotmaer library
noeUp - upper limit for noe interaction, default:6A
distMatrix - distance matrix
Returns:
vecNodes vector of nodes.

isInStereoSet

public boolean isInStereoSet(Nasca.Node nodeSrc,
                             Nasca.Node nodeObj)
check whether one node is in another node's stereo set

Parameters:
vecAsg - all resonance assignments
-
Returns:

isInCloseAdj

public boolean isInCloseAdj(Nasca.Node nodeSrc,
                            Nasca.Node nodeObj)
check whether one node is in another node's close neighbors

Parameters:
vecAsg - all resonance assignments
-
Returns:

ExtractBackboneAsignment

public java.util.Vector ExtractBackboneAsignment(java.util.Vector vecAsg)
exact the backbone resonance assignment

Parameters:
vecAsg - all resonance assignments
-
Returns:
backbone resonance assignment

ExtractSideChainAsignment

public java.util.Vector ExtractSideChainAsignment(java.util.Vector vecAsg)

ConstructResonGraph

public java.util.Vector ConstructResonGraph(java.util.Vector vecNodeSet,
                                            java.util.Vector vecNoesy,
                                            double errH1,
                                            double errH3,
                                            double errC,
                                            double errN)
add the reosnance node into the graph from given assigned resonance list

Parameters:
vecNodeSet - all resonance nodes
vecNoesy - Noesy peak list
-
-
-
Returns:
the resonance graph after setting connection

ConstructResonGraphSymmetry

public void ConstructResonGraphSymmetry(java.util.Vector vecResonGraph,
                                        java.util.Vector vecNoesy,
                                        double errH1,
                                        double errH3,
                                        double errC,
                                        double errN)
add the reosnance node into the graph from given assigned resonance list

Parameters:
vecNodeSet - all resonance nodes
vecNoesy - Noesy peak list
-
-
-

ConstructResonGraphFromAsgedList

public java.util.Vector ConstructResonGraphFromAsgedList(java.util.Vector vecAsged,
                                                         java.util.Vector vecUnAsged)
add the reosnance node into the graph from given assigned resonance list

Parameters:
csH,csHeavy: - chemical shifts of proton and heavy atom attached to it, -999.9 if it is unkown
csErrH,csErrC,csErrN: - eror windows.
vecUnAsged - unassigned resonance list
-
vecOldGraph - old graph
Returns:
new graph

AddResonanceNode

public java.util.Vector AddResonanceNode(java.util.Vector vecOldGraph,
                                         double csH,
                                         double csHeavy,
                                         double csErrH,
                                         double csErrC,
                                         double csErrN)
add the reosnance node into the graph

Parameters:
csH,csHeavy: - chemical shifts of proton and heavy atom attached to it, -999.9 if it is unkown
csErrH,csErrC,csErrN: - eror windows.
-
-
vecOldGraph - old graph
Returns:
new graph

isMappedBetwTwoSetsCalScore

public boolean isMappedBetwTwoSetsCalScore(Nasca.Node nodeReson,
                                           Nasca.Node nodeStruct,
                                           java.util.Vector vecNodeSetA,
                                           java.util.Vector vecNodeSetB,
                                           int[][] M,
                                           boolean isConsiderAssigned,
                                           int threshold,
                                           double[] Score,
                                           java.util.Vector vecNoesy)
check whether there exists at least one mapping between two node sets

Parameters:
vecNodeSetA: - adj set for resonance node
vecNodeSetB: - adj set of proton node
M - previous mapping matrix
isAssigned - whether only consider the assigned backbone resonance nodes
Returns:

isMappedBetwTwoSets

public boolean isMappedBetwTwoSets(java.util.Vector vecNodeSetA,
                                   java.util.Vector vecNodeSetB,
                                   int[][] M,
                                   boolean isConsiderAssigned,
                                   int threshold,
                                   double[] Score)
check whether there exists at least one mapping between two node sets

Parameters:
vecNodeSetB: - node sets
M - previous mapping matrix
isAssigned - whether only consider the assigned backbone resonance nodes
Returns:

ExtractAllResonFromNOESY

public java.util.Vector ExtractAllResonFromNOESY(java.util.Vector vecNOESY,
                                                 double csErrH,
                                                 double csErrC,
                                                 double csErrN)
exact the backbone resonance assignment

Parameters:
vecNOESY - NOESY peak list
csErrH,csErrC,csErrN: - error windows
Returns:
vector of unassigned resonances

doNasca

public void doNasca(java.lang.String src,
                    java.lang.String strOut,
                    java.lang.String strInput)
             throws JampackException
Implement the NOE assignment (NASCA) algorithm without using the side-chain resonance infomration.

Parameters:
src - location of the input file
strOut - location of the output file
strInput - input file name
Throws:
JampackException