 Hello, everyone, and welcome to today's Bitesize Talk. Today, it's just me, I'm Franziska, and this talk is aimed at people who want to start with NFCore or who know someone who would like to start with NFCore and don't really know how to best get into it. And it's based solely on my own experience. So there might be other ways and there might even be better ways, but this is how I found in the end to best start doing work in NFCore actual development work. In order to give you a bit of an idea where I come from, so I did a PhD in developmental biology. I was working with Drosophila doing NGS data or creating NGS data for microRNAs and other RNAs. And at the time I had to analyze my own data. There was no bioinformatician in my group. There was no one that could help me with anything. So it was all learning by doing without much help from anyone really. And in the time I did everything in Perl because that was the state of the art. The big programming language that you had to learn if you were using bioinformatics. I also did some R at the side and to put it all together, I did some batch scripting as well. So after my PhD, I did a postdoc and there I was looking at other small RNAs, not microRNAs anymore, also some RNA and all analyzed with NGS. So this time there were a lot of bioinformaticians around me. It was mainly actually a bioinformatics lab but I wanted to analyze my own data this time. One reason was because I wanted it exactly in that specific way. Another reason was that they were busy with their own projects. So sometimes I had to wait and I'm not known to wanting to wait for things. But in the time I was doing more artwork, a bit more bash, but generally nothing advanced. And after my postdoc, I started at a co-facility called NGI and there I started in the lab as well. So I got to contact with a lot more of different NGS data for one in the lab, but also to analyze and look at the results in the end. So I wanted to do a bit more bio-info and I came in contact with NFCOR for the first time. In this time I started to learn Python and I was using Nexbo pipelines myself. And this is also when I started to become a member of NFCOR. And about one and a half years ago, I switched to the bioinformatics side solely and it was still at the same core facility. I did a bit more Python work and this was the time when I was thinking about doing my own Nexbo pipeline based on NFCOR. And that's when the trouble began. So what I wanted to do was actually really, really simple. I wanted to do QC pipeline for high C libraries. So in the lab, we offer a service for high C library generation. And after that, we want to check if the library prep worked. So to do that, we need to map the reads with BWA and then we run pair tools. We generate some tables based on the results that we get from pair tools and then we feed this into a multi QC and we get a beautiful report out of it. That was the idea. And I thought it would be super easy because there's already modules for BWA and pair tools even some pipelines available that use them and multi QC anyways part of all the NFCOR pipeline. So it would not be an issue. And also because we did run this kind of QC already with a batch script, I already had the Python script to make these tables from the pair tool output. So I really thought it would be a piece of cake. So based on my background, what could I do before I started this? I had some very general scripting experience like I have my R, my Perl, my Bash and Python in the background. I was like, okay. So it was fairly easy to go from, for example, from R to Python. There was not that much more that I had to learn just a slightly different syntax. So it should be fine. Also I felt very comfortable on the command line already at that point, having been doing a lot of command line work up to that point. So that was not an issue. And being part of NFCOR and the core team I had some experience with Git and GitHub. So I knew how to like make a fork and have my own repo and how to work on it on the remote and things like that. So I felt a bit like Hacker Man. I learned this on my own and I can do this. It's easy. And then also, of course I had some experience with running NFCOR pipelines and this gives me some familiarity with the names of things and I was like, okay. I just fill in the gaps and then it should work out. Also I was really interested. I really wanted to do this and I was curious how it would work. And I like things to be neat and tidy. So a next full pipeline would be exactly what I wanted to have. And finally, I had some very healthy overestimation of my knowledge. This can be a good thing in that it lowers the threshold to actually get into things. But of course it also gives you some major drawbacks later on. So it's good and bad to be a bit over optimistic. So what were the mistakes that I run into at the very beginning when I wanted to start? So one of the things was that this attitude of, I can do this, how difficult can this be? It should be very easy to just put things together. And the idea for me was also in the beginning to not have this as a standalone next full pipeline but I penned this to an already existing NFCOR pipeline. And that turned out to be a bit more than I can chew and I fairly quickly gave up on that. Also because of that, I was not really working on a testing repo where I started from scratch to learn the basics but I forked the existing pipeline and then I just looked at it and tried to figure out what the different bits mean and it was definitely not the right way to start this. So I would not advise that to anyone starting from scratch. And finally, it's not as much a mistake as more coming with my kind of work. I could not work on it continuously. So I had an hour here and hour there. At some point I was like, Monday mornings, I will work on this and it didn't work. At least for the very beginning, I would say a week where you do nothing but like start to learn next flow. So this brings me now to what you probably should do at least from my point of view, what my recommendations are. The very first one is to plan your project. Like learning next flow just in order to have it learned is probably not very fruitful. So you should have an idea what you want to do with it afterwards and this will also deepen your knowledge and it will create some basic for later work. So if you don't have a current project that you are working on and that you want to implement, it can be also something like, I want to generate the only set pipeline but with these kinds of different things that the current one can't do or something like that. It doesn't have to be perfect. It doesn't have to be a big one but have an idea of what you want to do on your own once you think you are at a step where you can start your own work and have enough training. The second one, which was definitely true for me that I did not follow my own recommendations now was to watch the next flow tutorial. You do need a foundation of next flow in order to understand how NF core pipelines work. So there are YouTube tutorials I can show you here. Let me know in the chat if you cannot see this now. Maybe I have to change my share. So I just assume that you can see it. So on YouTube here, you have the foundational next flow training which was just recently done like just a week ago, I believe. And there's three sessions, they're two and a half hours long roughly. And if you have different language requirements, we also had them beginning of the year in different languages like, for example, we had them in Hindi, I think in French, in Spanish. So have a look at these trainings. And these trainings also come with a training tutorial, which is here. And here you can start your training workshop. So this is independent of when we actually hosted the training that you can go through this. Be aware that we only do this YouTube tutorials twice a year and we continuously improve on the next flow training documentation. So maybe if something of the two is not exactly the same as the other, stick with the one that is written because that would be the most up to date one. Also choose the latest training if you can, because that will have the latest updates in them as well from NFCOR. There's something in the chat. Oh yeah. The videos should be embedded in the training.nextflow.io very soon, so. Also, I would suggest to you to take notes when you do the next flow tutorial. Reason for that is that at least for me, I can easier remember things that I actually wrote down. I have maybe my own logic of how I organize things and that helps me remembering things. Also, I would very much recommend you to do the exercises on your own. So when you're going through a tutorial, they will show you how the exercises are done. So they will in a way already show you the results. So try to stop it there, do the exercises on your own and then go back and see if you did it right. Then also take time. Sometimes an exercise will not make sense immediately. So maybe you want to go back. You might also want to read up on other documentation or you want to redo the exercise that you've done two sessions before. So I said those tutorials take two and a half hours, but I actually needed a full day for each session because I wanted to write down, I wanted to really sink it through what this means and how it relates to the previous session or the previous exercises that I've done. And feeding into that, I sometimes made up my own exercises. So I now understand these three points, how they work and how they interact with each other. And now I combine them all and I want to do this. And then I try it on my own and I try to figure out if it works or not. And I just kept at it until I got it to work. So this is my points for the tutorial. Once I done the tutorial, I was again very confident. I was like, yes, I understand this. It is a piece of cake to just put this all into work and get my next flow NF core workflow to be done. So unfortunately, I had to learn that there is a gap between the next flow course and the NF core pipelines. It is addressed now, so there's going to be an advanced course at the end of the month, I believe that I think you can still sign up to. But at least at the point of this video, there is no advanced course available that closes this gap. So there are some steps that you have to make sure before you start working with the NF core template and on NF core pipeline in my opinion. And one is to familiarize yourself with the template that we get from NF core. Like what do the different entries mean? What are the different directories? What are they used for? For example, very important is the work directory. How can I utilize that? So look through it and make sure that you understand these things before you actually start writing anything. And then there will be a time when this will not be enough and you will get stuck. And without tooting my own horn here, I think the bite size helped me quite a bit. So we do have on YouTube a bite size playlist that is specifically for developers. And I hope you can see this. It has from very, very basic things like resources to learn next flow, which maybe is the next step to this video down to things that I used for example, was how to customize my multi QC report. Or in my case, I wanted to integrate a custom script. So that one helped me a lot. So it is very good for you to look through here if maybe something of this applies to your problem. And maybe it gives you exactly the answer you need. There is also of course times when YouTube doesn't help you and you really need someone to help you directly with your code. This is usually the case when you have an error message that is not helpful. In my case, I had a forgotten a comma in a tuple and it told me that my process was already used and the error message had nothing to do with the problem and I just couldn't figure it out on my own. So then I turned on to Slack and yeah, there I got help in the end. So first in Slack, I would advise you to look through someone else had the same issue before and maybe then you don't have to spend more time or someone else's time to look at your problem specifically because it has already been solved. But more often than not, your problems either not directly described or you don't understand the solution. And then of course you can help, you can ask for help. There is a Slack channel that is called No Stupid Questions. And that is really the case. So there's no stupid question in that channel. You can ask whatever you need to. And finally for me, one of the main points was to set small goals. Like I said in the beginning, I started with this big idea of having everything at once and I started with like trying to get this goal specifically in the beginning and it didn't work out. I needed to start small, like set my goal to be, I don't know, adding this one already existing module to a test pipeline that I had or something like that. So that helped a lot. So and with that, I would like to end this today. So thank you all for listening. I will now allow everyone to unmute themselves and also share their video if they want. And I'm open for any questions. Thank you. It seems we don't have questions. I feel it. Thank you for your talk, Anne. It was really good. It was really nice to hear that story and also to hear the projects moving along. Yes. I'm now at the Multi-QC report. Maybe I have some questions about that. I just wanted to reiterate a couple of bits in the chats. So you mentioned the error messages. It's like a common thing I was going to say this week. Yesterday, a podcast went out where Ben from Sekiro, an X-ray developer, and I discussed in detail about why error messages in X-ray were difficult, but also had some good news saying that the edge release that went out this week had a whole load of improvements in error messages. So that one you found, we actually specifically discussed retuples with a comma. Now it says, did you miss that retuple comma somewhere? Whoa. Yeah, hopefully that will make life a bit easier for beginners. And yeah, also the training is actually, we've got three trainings in September. We just had the foundational. We've got a short one for beginners, which is new as well, called Hands On, or at least Revitalize, which is just one session, which is good for beginners, also good for anyone who just wants a refresher who's done the foundational a year ago, hasn't used it very much, just wants to kind of get up to speed and then Rob is doing the advanced training, which is the first time we've done that publicly in there, or online free and will be online forever. Yeah, awesome. Okay, are there any questions? Otherwise, I would like to thank you all for listening. And as usual, I would like to thank the Chan-Zakarberg Initiative for funding our Bites as Talks. And I hope to see you all next week. Bye-bye.