BitmapData.draw()

Is it possible to draw irregular piece of root for example a circle not square.
If I have a BitmapData 50x50 and want to draw in it a circle (corners leave blank or transparent), what should I do?
And one more question: how to replace whole BitmapData using draw() without creating new BitmapData object (when I want to draw transparent shapes they just add to existing BitmapData not replacing)