Home Icon  Home  Legal Icon  Legal Note  Contact Icon  Contact 
IMP Bioinformatics Group Leftlogo IMP Bioinformatics Group Rightlogo

NSC

Information on the methodology, the syntax and the usage of NSC


Methodical Background


NSC is an implementation of the DCLM variant of the Shrake's and Rupley's algorithm for surface calculation.

Please refer to the article:

for details.

The subroutine NSC makes use of variant 2 described in the reference. By selecting the necessary output via flags, the requirements for cpu-time and computer memory can be adapted to the actual needs.


About 75% of the source codes the unit sphere triangulation. NSC automatically adapts to the number of atoms and the required dot density.


Syntax and Usage


The syntax of calling NSC is :


int NSC(
  double * ,	/* a atom coordinates xyz0, xyz1, ... */
  double * ,	/* b atom radii r0, r1, r2, ... */
  int ,         /* c number of atoms */
  int ,		/* d number of dots per fully accessible sphere */
  int ,		/* e flag : dots, volume and/or area per atom */
  double * ,	/* 1 output: overall area */
  double ** ,   /* 2 output: pointer to list of areas per atom */
  double * ,	/* 3 output: overall volume */
  double ** ,	/* 4 output: pointer to list of surface dots x0, y0, z0, ... */
  int *		/* 5 output: number of surface dots */
  );

The input requirements :

Items "a-e" are input data and refer to user-defined sections of memory (arrays or single numbers).


Items "a", "b", and "c":


Item "d":

Item "e":

Example :

The output requirements are :

Items

  1. pointer to an existing double
  2. pointer to an existing pointer to double NSC allocates memory for an array
  3. pointer to an existing double
  4. pointer to an existing pointer to double NSC allocates memory for an array
  5. pointer to an existing integer



Example for Calling NSC (contents of the user source file)


.....

#include "nsc.h"

int routine_calling_NSC(int n_atom, double *coordinates, double *radii) {



You may want to download NSC