The Morgan algorithm for fingerprinting was implemented according to the published algorithm for the ECFP/FCFP fingerprints.
The invariants used for the standard morgan fingerprint in the RDKit knime nodes include the same terms as the published algorithm: atomic number, degree, number of hs, formal charge, isotopic mass, ring membership. The actual invariants end up being different from the ones in ECFP since the hashing function is different, but calculated similiarty values between molecules are very, very similar.
The invariants for the FeatMorgan fingerprints use pharmacophoric features. Here are the definitions:
// Definitions for feature points adapted from:
// Gobbi and Poppinger, Biotech. Bioeng. _61_ 47-54 (1998)
const char *smartsPatterns[6]={
"[$([N;!H0;v3,v4&+1]),\
$([O,S;H1;+0]),\
n&H1&+0]", // Donor
"[$([O,S;H1;v2;!$(*-*=[O,N,P,S])]),\
$([O,S;H0;v2]),\
$([O,S;-]),\
$([N;v3;!$(N-*=[O,N,P,S])]),\
n&H0&+0,\
$([o,s;+0;!$([o,s]:n);!$([o,s]:c:n)])]", // Acceptor
"[a]", //Aromatic
"[F,Cl,Br,I]",//Halogen
"[#7;+,\
$([N;H2&+0][$([C,a]);!$([C,a](=O))]),\
$([N;H1&+0]([$([C,a]);!$([C,a](=O))])[$([C,a]);!$([C,a](=O))]),\
$([N;H0&+0]([C;!$(C(=O))])([C;!$(C(=O))])[C;!$(C(=O))])]", // Basic
"[$([C,S](=[O,S,P])-[O;H1,-1])]" //Acidic
};
I'm not sure what you mean by "default atom identifier length".
The fixed length fingerprint is generated as : bitId = bitId % fp_length
-greg