Biochemistry/Computer Science BS applying for top 10 Computer Science PhD I am currently an undergraduate student at a large state university.

I have good grades (>3.90 GPA) in Biochemistry and I am now adding computer science courses. I am doing equally well in those (>3.80 GPA). But the majority of my research is in biochemistry. I did my honors thesis, worked in a wet lab for two years, and have two research publications. But these all have nothing to do with computer science. 

I am really happy with the people in biochemistry and molecular biology, but not with the field itself. My biology advisors tell me I can probably do very well for myself in biochemistry. But I want to do computer science, since that is where my interests really lie. I like making algorithms out of strange algebras that don't exist and really fancy statistics that pretend they can think, and that is almost non-existent in my field of molecular genetics. I am not a fan of bioinformatics.

I already have research experience. But it might not be the right type of research experience. Nor do I have CS internships. Just lots of biology. Should I apply for those phd programs now, or should I wait until I have more research in computer science before I apply for Ph.D. programs?

Now suppose I apply for these top ten Ph.D. programs and I am rejected. How are reapplicants viewed within the academic cs community? Can I try again after a stint in your average brand-name company?
In navigating my own applications over the years, I'm led to believe that the most important thing they want to know about you is are you going to be a good researcher. That you have publications in a technical field helps you a lot, it demonstrates you know the process one must go through in pursuing original work. 

I will say that going straight to a PhD at a top 10 university in the field is somewhat of a leap without having much CS background, they won't have much evidence that your research interests are well-developed and that you are really serious about sticking with studying computer science at that level for 5+ years. But if they like what they see from your research and undergraduate coursework and recommendation letters (VERY IMPORTANT), then they will often just have you take a handful of pre-requisite courses at the beginning to get you caught up to where they think a beginning PhD student should be, e.g. taking some upper-level undergraduate classes that give you a good breadth of CS knowledge. 

You would have a much better shot at getting into a Masters program in CS coming from your position, if you are willing to fund it yourself or take out loans. Oftentimes your PhD funding comes from a member of the faculty and so they need adequate convincing that you're worth the money. 

My advice would be: apply to a few top 10 PhD programs you think you'd be a good fit for, apply to a few middle-tier PhD programs to give you some options, and then apply to a few MS programs if you think you'd be willing to go that route. You'll probably get an MS acceptance somewhere, you have a good shot at getting into a middle tier school, and you never know! They may just really like your application bundle and you might land a golden seat at a top 10. 

And if you don't like the results, spend a year or two doing things to improve your application (CS research, online classes, work through problems in well-known textbooks, get a MS degree, read A LOT of papers and develop very specific research interests, etc.)