I have to identify an ancestral gene from a gene family, which has been duplicated many times and gave rise to a gene family. Please tell me any software which can help me.
The ancestral gene no longer exists, thus what do you mean by 'identify'? All of the extant genes are descendants of an extinct ancestor. First you must understand this point clearly, then re-phrase your question.
If you want to attempt a reconstruction of an ancestral sequence (for what purpose I can only imagine) then you can use the software that Jesus suggests, although it may not be able to handle large numbers of sequences; RAxML is a good option that also allows ancestral reconstruction (not sure if that point is documented well, but you can ask on their forums).
If you want to identify within an organism (or organisms) that contain a set of duplicated paralagous sequences, which one is orthologous across species, this *might* be possible if there is only one orthologous copy across organisms, and with a very conserved sequence, where the paralogous copies have all diverged significantly. Probably your gene family won't be this well-behaved, but if it is, you could argue that the orthologous set defines which gene in each organisms is 'ancestral'.
If you don't understand what I'm talking about, then perhaps you could explain the scientific question that you are trying to answer by identifying the 'ancestor', and this will help me to be clearer.
Into the downloaded package you will see the manual with all the details to install (MacOS, Windows and linux) and run the software. You need basic skills on informatics to execute and manage files.
The ancestral gene no longer exists, thus what do you mean by 'identify'? All of the extant genes are descendants of an extinct ancestor. First you must understand this point clearly, then re-phrase your question.
If you want to attempt a reconstruction of an ancestral sequence (for what purpose I can only imagine) then you can use the software that Jesus suggests, although it may not be able to handle large numbers of sequences; RAxML is a good option that also allows ancestral reconstruction (not sure if that point is documented well, but you can ask on their forums).
If you want to identify within an organism (or organisms) that contain a set of duplicated paralagous sequences, which one is orthologous across species, this *might* be possible if there is only one orthologous copy across organisms, and with a very conserved sequence, where the paralogous copies have all diverged significantly. Probably your gene family won't be this well-behaved, but if it is, you could argue that the orthologous set defines which gene in each organisms is 'ancestral'.
If you don't understand what I'm talking about, then perhaps you could explain the scientific question that you are trying to answer by identifying the 'ancestor', and this will help me to be clearer.
Well, if you have all genes that form a gene family you can tentatively identify a common ancestral sequence in the frame of a probabilistic method for phylogenetic reconstruction (maximum likelihood or bayesian). But as Julian notices, the result is a putative ancestor giving a phylogenetic model (usually the best you have) and your data at hand. For an accurate selection of a model you can use Prottest. Then, if you have lots of sequences, RAxML is less CPU demanding than phylobayes.
You can first select a model using Prottest, then PhyML3.0 to obtain an optimized tree with the selected model, and finally Ancescon to obtain the ancestral sequence (with your alignmentm, your tree, and the WAG model).
As posed and rephrased, the answer to your question is: you can't. If you have the "sequence of all genes that form a gene family", you only have modern i.e. contemporary genes. None of them is the ancestor and therefore you cannot "identify" the ancestor from among them. The question is, do you want to know how to root the tree and thus identify which duplication event is ancestral, or do you want to reconstruct the predicted ancestral sequence at different nodes? There are many programs to do the latter. If you tree is evolving at a pretty regular rate then midpoint rooting can estimate the former, though be very careful if there are lots of short deep branches. The other alternative is to use a gene from a more distance species than diverged prior to the duplications to outgroup root the tree - but only if you know which lineages the duplications have occurred in.