Mike Saint-Antoine
Mike Saint-Antoine
  • 126
  • 343 843
PyTorch Speed Comparison: NVIDIA 3070 GPU vs Apple M3 CPU vs Apple GPU
Hi everyone! This video is a speed comparison to see how fast a simple PyTorch neural network training script runs on:
1.) Apple M3 chip CPU
2.) Apple built-in GPU (using the MPS framework)
3.) NVIDIA RTX 3070 GPU
Here's the PyTorch script that I used:
github.com/mikesaint-antoine/Comp_Bio_Tutorials/blob/main/pytorch_speed_comparison/speed_test.py
Thanks for watching!
มุมมอง: 515

วีดีโอ

Python Basics 10: Functions
มุมมอง 712 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 9: Boolean Logic (AND / OR / NOT)
มุมมอง 312 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 8: While Loops
มุมมอง 732 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 7: For Loops
มุมมอง 772 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 6: Lists
มุมมอง 202 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 5: User Input
มุมมอง 653 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 4: If Statements
มุมมอง 513 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 3: Data Types
มุมมอง 703 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Basic Python 2: Variables
มุมมอง 723 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Basic Python 1: Installing Python and Writing Our First Program
มุมมอง 1573 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Neural Nets from Scratch in Julia [PART 18]: Solving MNIST
มุมมอง 1274 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 17]: Softmax Activation / Crossentropy Loss (2)
มุมมอง 724 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 16]: Softmax Activation / Crossentropy Loss
มุมมอง 504 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 15]: Tensor ReLU Function
มุมมอง 564 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 14]: Tensor Addition
มุมมอง 564 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 14]: Tensor Addition
Neural Nets from Scratch in Julia [PART 13]: Tensor Matrix Multiplication
มุมมอง 394 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 13]: Tensor Matrix Multiplication
Neural Nets from Scratch in Julia [PART 12]: Adding Tensor Functionality
มุมมอง 644 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 12]: Adding Tensor Functionality
Neural Nets from Scratch in Julia [PART 11]: Defining Tensor Type
มุมมอง 674 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 11]: Defining Tensor Type
Neural Nets from Scratch in Julia [PART 10]: Value Tanh Function
มุมมอง 574 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 10]: Value Tanh Function
Neural Nets from Scratch in Julia [PART 9]: Value Inversion and Division
มุมมอง 434 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 9]: Value Inversion and Division
Neural Nets from Scratch in Julia [PART 8]: Value Negation and Subtraction
มุมมอง 634 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 8]: Value Negation and Subtraction
Neural Nets from Scratch in Julia [PART 7]: Value Multiplication
มุมมอง 495 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 7]: Value Multiplication
Neural Nets from Scratch in Julia [PART 6]: Adding Robustness
มุมมอง 755 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 6]: Adding Robustness
Neural Nets from Scratch in Julia [PART 5]: Backpropagation for Addition (2)
มุมมอง 675 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 5]: Backpropagation for Addition (2)
Neural Nets from Scratch in Julia [PART 4]: Backpropagation for Addition
มุมมอง 915 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 4]: Backpropagation for Addition
Neural Nets from Scratch in Julia [PART 3]: Value Addition
มุมมอง 885 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 3]: Value Addition
Neural Nets from Scratch in Julia [PART 2]: Defining "Value" Type
มุมมอง 1495 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 2]: Defining "Value" Type
Neural Nets from Scratch in Julia [PART 1]: Introduction
มุมมอง 7115 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 1]: Introduction
How to Make a Job History Timeline with Python/Matplotlib
มุมมอง 4137 หลายเดือนก่อน
How to Make a Job History Timeline with Python/Matplotlib

ความคิดเห็น

  • @TheLORDNIGHTSHIELD
    @TheLORDNIGHTSHIELD 12 ชั่วโมงที่ผ่านมา

    M3 has weak GPU and bandwidth. It is like mobile version of 3050. You should compare M4 Pro to 3070. Plus, 3070 eats way more energy, and form factor is not the same.

  • @ObitodellaLL
    @ObitodellaLL 13 ชั่วโมงที่ผ่านมา

    Thanks for your videos, they are very good to learn :D

  • @apurvaumredkar3654
    @apurvaumredkar3654 14 ชั่วโมงที่ผ่านมา

    that is an insane difference! question though, why didn't you opt for a RTX 40 series GPU...pretty sure that would have been even faster :p

  • @mohamedzaghloul9778
    @mohamedzaghloul9778 15 ชั่วโมงที่ผ่านมา

    I think its unfair to compare a pc with a laptop. They really shrunk that GPU to fit

    • @paulocacella
      @paulocacella 7 ชั่วโมงที่ผ่านมา

      You can use any windows laptop with mobile gpu and it will be a massacre

  • @ObitodellaLL
    @ObitodellaLL 17 ชั่วโมงที่ผ่านมา

    Thanks for your video! It was useful :D

  • @contii8243
    @contii8243 23 ชั่วโมงที่ผ่านมา

    That's such a mind blowing difference! 🤯🤯🤯🤯

  • @samanthalee1038
    @samanthalee1038 วันที่ผ่านมา

    thank you so much for posting this series. its been extremely helpful

    • @MikeSaintAntoine
      @MikeSaintAntoine วันที่ผ่านมา

      No problem, thanks for watching and let me know if you have any questions 🙂

  • @ArjunDzn
    @ArjunDzn 3 วันที่ผ่านมา

    Came here to understand that ncert line of EVOLUTION This video was really helpful, thanks 👍🏻

    • @MikeSaintAntoine
      @MikeSaintAntoine 2 วันที่ผ่านมา

      No problem, and let me know if you have any questions! 🙂

  • @mauricioagurcia1423
    @mauricioagurcia1423 6 วันที่ผ่านมา

    Great lecture !

    • @MikeSaintAntoine
      @MikeSaintAntoine 6 วันที่ผ่านมา

      Thanks and let me know if you have any questions! 🙂

  • @stevenvargas6863
    @stevenvargas6863 11 วันที่ผ่านมา

    I am watching all of your videos. Thank you for existing! You're playing a big role in my own undergraduate experience.

    • @MikeSaintAntoine
      @MikeSaintAntoine 6 วันที่ผ่านมา

      No problem and let me know if you have any questions! 🙂

  • @AmirmohammadKhosravi-kk6or
    @AmirmohammadKhosravi-kk6or 13 วันที่ผ่านมา

    Please make more videos about proteomics. Thanks.

    • @MikeSaintAntoine
      @MikeSaintAntoine 6 วันที่ผ่านมา

      Ok, I'll try to make some more in the future!

  • @harsham.j5354
    @harsham.j5354 20 วันที่ผ่านมา

    Hi, if the data file does not mention treatments given, rather name it as samples 1-10, how can I get the treatment conditions of samples?

    • @MikeSaintAntoine
      @MikeSaintAntoine 6 วันที่ผ่านมา

      Hi Harsha, sorry about the late reply! Unfortunately I don't really have a good answer to this question. Usually you have to kinda look around the other files they have posted, and try to find the one that has the relationship between sample labels and treatments. Or if you can't find it, try reading through the methods section of the paper to see if it's there. I purposely picked a nice and easy dataset to work with for this video series, but unfortunately sometimes it's not so easy to find all the information you need for the analysis. Good luck with your research!

  • @fl0a226
    @fl0a226 25 วันที่ผ่านมา

    Great video. Really helpful!

  • @ciferusbux
    @ciferusbux หลายเดือนก่อน

    the population status of the predator is 1, that's a bit strange, will it reproduce? I'm asking seriously

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi, sorry about the confusion! I put on the plot axis label that the unit here is in the hundreds, so the predator population was starting at 1 (hundred) and the prey population was starting at 10 (hundred). But I forgot to actually say this! So good point, yes if it was just one predator then it wouldn't make sense because they would't be able to reproduce.

    • @ciferusbux
      @ciferusbux 27 วันที่ผ่านมา

      @@MikeSaintAntoine if x=initial number of predators and y=initial number of prey do we always start by getting to a situation where x=1? it seems that this makes the calculations easier because x*y=y, am I thinking correctly?

    • @noahniederklein8038
      @noahniederklein8038 12 วันที่ผ่านมา

      @@ciferusbux Note that the values of x and y in this model are not necessarily integers. For example, x could be 327.61325.... The model isn't meant to provide an exact number of predator/prey at a certain time, it is meant to demonstrate the overall trends in the population change over time. Hopefully that helps.

  • @tink417
    @tink417 หลายเดือนก่อน

    Love this tutorial. getting an error on saving the .npy ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 2 dimensions. The detected shape was (9210, 2) + inhomogeneous part.

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi, off the top of my head I'm not sure what the error could be. If you've copied the exact same code I used and are still getting an error, that could be because we're using different versions of the same package, like maybe you have an older version, or maybe you have a newer version and they changed something so that my original code no longer works. Could you send me your code to take a look at? My email is mikest@udel.edu. Then maybe I'll be able to reproduce the error and fix it. Thanks!

  • @sinashahshenas7199
    @sinashahshenas7199 หลายเดือนก่อน

    Thank you for the helpful content you’ve shared on bioinformatics topics. Could you consider making a tutorial on GSEA - gene set enrichment analysis? It would be great to see a step-by-step guide on how to perform and interpret GSEA results, especially with practical examples. Thanks so much.

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi, yeah that's a good idea, I'll try to make a video on GSEA in the future!

  • @zubairhasan9434
    @zubairhasan9434 หลายเดือนก่อน

    Hi, it maybe a silly thing to ask but I can’t seem to wrap my head around on the IF statement block for production and decaying event. I don’t understand how those conditions were set for production and degradation event from the mathematical conditions we saw in the previous video. I’d appreciate if u can shed some light into it even though it’s kinda old video. Thanks

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hey Zubair, good question and definitely not silly to ask! Yeah that part is a bit difficult to understand and it took me awhile to wrap my brain around it myself. I think a good first step is to understand exactly what we're trying to do when we randomly pick the next event. So basically we want to randomly pick the next event with a random draw, but with probabilities weighted according to the rates (also called "propensities"). And these rates change because they depend on the current level of X, so we need to calculate them again each time. So let's say that we're choosing the next event, and and we calculate that the rate for production is 2 (actually it will always be 2 in this example because it doesn't depend on X), and the rate for degradation is 1 (0.1 * X where X=10, for example). So knowing that the rate of production is 2 and the rate of degradation is 1, we want to randomly pick which event will happen next. So basically we convert these into probabilities by dividing the rate of each reaction by the sum of all the rates. So the probability that the next event will be production is 2 / (2+1) = 0.67. And the probability that the next event will be degradation is 1 / (2+1) = 0.33. So basically we want to choose the next event with a random choice, weighted according to these probabilities. The for-loops are just a way of doing that -- randomly picking a next event, weighted according to the appropriate probabilities. It's a little tricky to understand, but if you work your way through it, maybe on paper with the simple example, then you'll see that the first if-statement turns out to be true 67% of the time for the example I just gave, and the elif-statement turns out to be true 33% of the time. Note also that in this simulation with only 2 events we don't even really need the elif-statement. We could have just said "else" and left it at that. But I put the elif statement to show the general pattern, because it we had more than 2 events we'd need to put an elif-statements that follow that general pattern. Anyway, very good question. Yeah wrapping your head around the if-statement checks here can be a little tricky, but I think they key takeaway is that they're just picking the next event randomly, with probabilities that come from the relative rates of the reactions at this point in the simulation.

    • @zubairhasan9434
      @zubairhasan9434 29 วันที่ผ่านมา

      @@MikeSaintAntoine Ahhh I see. I think now I'm getting the gist of it. After playing around with different values for rand product on paper just like you said, I started to see how the value is weighted within the scope of probabilities of each reaction event. It's a bit tricky indeed but now I'm actually getting hang of it. Thank you so much for taking the time to break it down for me. As someone from medical biotech field it's not so very often for me to deal with such mathematical concepts. But you're making it digestible for us 😄. Please keep doing the good work!

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      @@zubairhasan9434 No problem, and let me know if you have any more questions! 🙂

  • @ninopoker
    @ninopoker หลายเดือนก่อน

    Hi there! Does this still apply if we are in the early stages of the diffusion process (in the case of an innovation)? That is, we do not have all data (the overall picture) of the process but just the early data.

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi! Sorry but I don't think I really understand your question. Could you give me some more details on what you're trying to model? But generally a good way to see if this model applies to a dataset is to just plot the data and check it visually -- does it look like the population is increasing exponentially at first, but then leveling off at a carrying capacity?

  • @chocolatemodelsofficial5859
    @chocolatemodelsofficial5859 หลายเดือนก่อน

    The stochastic indicator on stock charts makes more sense to me now, thanks.

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Yeah there's a actually a hypothesis in economics that stock prices tend to follow a random walk: en.wikipedia.org/wiki/Random_walk_hypothesis so good observation! Thanks for watching 🙂

  • @RoysIdea
    @RoysIdea หลายเดือนก่อน

    There are multiple IDEs for Python. Just thinking about Spyder, VSCode, PYCharm, and many more

  • @iot3136
    @iot3136 2 หลายเดือนก่อน

    Thanks Mike. Could you teach how to use an IDE for python. Anything similar to R studio? Also looking forward to seeing omics dataframe analysis 😊

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      I'm not really in a good position to make an IDE video because I actually just use VSCode for writing Python, and don't really use any of the fancy extra features. I just use it like a text editor really. I know there are some pretty advanced IDEs for Python with built-in debuggers and stuff, but I don't really use them. But yeah in the future I can try to make some videos on dataframes / Pandas library. Thanks for watching! 🙂

  • @arpitgopani2713
    @arpitgopani2713 2 หลายเดือนก่อน

    Hey Mike, I did same exact thing as you did in your code, but my testing model is taking a lot of time and showing the result. would you mind taking a look on the error or code if you get time?

    • @MikeSaintAntoine
      @MikeSaintAntoine 2 หลายเดือนก่อน

      Hey Arpit, yeah sure just email your code to me at mikest@udel.edu and I'll take a look!

  • @cbbcbb6803
    @cbbcbb6803 2 หลายเดือนก่อน

    Illustrate download, install, setup, and configuration on windows and Linux also.

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi! Unfortunately I don't have a Windows or Linux computer so I won't be able to actually make a video on that. But my guess is that it's probably the same -- you should be able to install Python from python.org, and when you download and install it should give you the IDLE application automatically.

  • @iot3136
    @iot3136 2 หลายเดือนก่อน

    Hi Mike, these video series are great resource to learn Python. Coming from wetlab, I always struggle to learn coding 😅. Could I ask a favor. Is it possible to do a video lesson with real life data set. Imagine you received a Metabolomics / transcriptomics data matrix. Could you demostrate how you upload the data to downstream exploratory data analysis. 😊

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Yes, I'll try to make something like that in the future! I've actually already made a series like that in R, but I'd like to make one for Python too.

  • @johnlistorage
    @johnlistorage 2 หลายเดือนก่อน

    where does sample appear, it is not describe before in the script. or is it part of R commands

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi, very sorry about the late response! Are you talking about "sample" in this block of code? for(sample in samples){ tmp <- unlist(strsplit(sample,"_")) classes <- append(classes, tmp[1]) } If so, "sample" is just the temporary variable we're using to iterate through the items in the "samples" vector. So basically it's getting assigned to each item in "samples" with each pass of the for loop. Does that make sense? I hope I understood your question correctly, but please let me know if you're still confused and I can try to explain further. Thanks for watching! 🙂

  • @AymanTravelTransport
    @AymanTravelTransport 2 หลายเดือนก่อน

    After doing some research, it turns out a lot of these predatory conferences are real events that actually take place. However, they're usually very chaotic and unprofessional, with no real organisation as talks are swapped around and cancelled last-minute. Also, when you see many conferences all taking place on the same date and location, chances are they're all pointing to the same event, mashing together many unrelated fields into a single conference.

  • @ArunKumar-gl5fx
    @ArunKumar-gl5fx 2 หลายเดือนก่อน

    thank you

  • @intuitionist1
    @intuitionist1 2 หลายเดือนก่อน

    Maybe I did something wrong but I needed to implement these methods (suggested by ChatGPT) to avoid errors using the Tensor constructor: # Implementing required methods for AbstractArray interface Base.size(t::Tensor) = size(t.data) # size method for Tensor Base.getindex(t::Tensor, i::Int, j::Int) = getindex(t.data, i, j) # getindex method to access elements Base.setindex!(t::Tensor, v, i::Int, j::Int) = setindex!(t.data, v, i, j) # setindex! for setting elements

  • @intuitionist1
    @intuitionist1 2 หลายเดือนก่อน

    It strikes me that if there are no cycles in the neural network, then checking whether a node has been visited before is redundant, and so you can just remove the visited array completely making the build_topo function much faster. If there are cycles, then this code will not give the correct answer (or maybe a poor man's approximation at best).

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Yes, good point! If you're only doing neural networks, then the visited check isn't necessary. But part of the idea of the Value type is that it should be useful as a general gradient tracker for basic operations, which could include a cycle. Thanks for watching! 🙂

  • @intuitionist1
    @intuitionist1 2 หลายเดือนก่อน

    If you can use (1 - val.data^2) here (since sech^2(x) = 1 - tanh^2(x)), then you should also be able to use simply val.op.args[1].grad -= val.data^2 * val.grad in the backprop!() function for inv() as (1/x^2) = y^2

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Yes, you're right! Good call on that one, that's an easier way of writing it than what I wrote.

  • @mohammadkhaleghi5609
    @mohammadkhaleghi5609 2 หลายเดือนก่อน

    Thanks Mike. Looking forward to wathcing all of the videos on python tutorial

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Thanks for watching, and let me know if you have any questions! 🙂

  • @divyaranjanpradhan9082
    @divyaranjanpradhan9082 2 หลายเดือนก่อน

    Doing <= will make the iterator go out of index as the length of a list is 1 more than the index of the last element. Thus we will get an error if we do that.

    • @MikeSaintAntoine
      @MikeSaintAntoine 2 หลายเดือนก่อน

      Correct! Yeah this is called an "off-by-one" error and is a common bug that comes up a lot, both for beginners and even more more advanced programmers who make the absent-minded mistake.

    • @divyaranjanpradhan9082
      @divyaranjanpradhan9082 2 หลายเดือนก่อน

      @@MikeSaintAntoine Wow. Didn't know it's name. Thank you.

  • @shiyiyin3403
    @shiyiyin3403 2 หลายเดือนก่อน

    R's list has type match requirement, python does not c('list',0) will not fly in R, but ['list',0] will work in python

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Good point! Yeah Python is more flexible with typing, and I think generally more convenient than R.

  • @6PrettiestPics
    @6PrettiestPics 2 หลายเดือนก่อน

    Can you remake this for Julia?

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi! That's a good idea, I've been meaning to remake this video for both Python and Julia, but just haven't gotten around to it. But hopefully in the future once I have time. Thanks for watching! 🙂

  • @carlgauss6383
    @carlgauss6383 2 หลายเดือนก่อน

    Hi Mike i enjoyed watching your videos can u please help me for LHS/PRCC sensitivity analysis of my model? it would be a great because i can't understand it

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Hi, sorry about the late response! I don't have much familiarity with LHS/PRCC sensitivity analysis, but if you email me your code at mikest@udel.edu I can take a look and try to help.

  • @LincolnDead
    @LincolnDead 3 หลายเดือนก่อน

    Hello, thanks a lot for your playlist about Julia. I want to say that I used metaprogramming for DRY. Something like this: for op in (:-, :tanh, :inv) @eval function ($op)(a::Value) Value(($op)(a.data), 0.0, Operation($op, (a,))) end end

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Oh nice, very cool! Yeah that's a good use of metaprogramming. I think it definitely makes the code cleaner and nicer, although with this series I was focused on teaching and readability rather than writing production-quality code, so I think for the goal of teaching it might still be easier to explicitly write out each function separately rather than use the metaprogramming approach. Thanks for watching! 🙂

  • @rsbenari
    @rsbenari 3 หลายเดือนก่อน

    This is turning out to be a super-helpful channel. Thanks so much!

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      Thanks for watching, and let me know if you have any questions! 🙂

  • @gianmarcocastillohuaccho244
    @gianmarcocastillohuaccho244 3 หลายเดือนก่อน

    thanks <3.

  • @samuelhaiden812
    @samuelhaiden812 3 หลายเดือนก่อน

    Hi there. I'm a little confused by something, you are correlating gene expression values between two genes, but each gene has a control and a treatment sample set. Are you looking at correlations between the overall expression values for each gene across treatments, or the correlation between the foldchange resulting from the treatment? I have a DESeq experiment and I would like to draw correlations between the fold change expression values of one gene vs the other if that makes sense.

    • @MikeSaintAntoine
      @MikeSaintAntoine 3 หลายเดือนก่อน

      Hi, good question! Yes in this example it's looking at correlation for all samples across both conditions. So basically, a high positive correlation between two genes means that expression changed in the same way due to the drug (either both up or both down). A high negative correlation between two genes means that their expression changed in opposite directions due to the drug. Usually when I compute foldchange (or log2-foldchange), I do it like this: log2(mean(drug_expression) / mean(control_expression)), so that it gives only one number for each gene, since it's computed based on the mean expression in each condition. So with only one number per gene, you can't really compute the correlation between two genes. But another way to do it is to compute the log2-foldchange for each drug sample, relative to the control mean, so that will still give you a vector of numbers as a result and you could look at correlation between two genes. I'm not exactly sure if this makes sense though, since it seems like it's losing some information. Basically doing it this way is normalizing the drug-condition expression measurements by the control expression mean. So if we normalize away the effect of the drug, then we're losing that information when we eventually go to calculate the correlations between genes for the log2FC-transformed drug expression values. Does that make sense? If you need any help or want to discuss further, feel free to email me at mikest@udel.edu 🙂

    • @SNMS1114
      @SNMS1114 หลายเดือนก่อน

      @@MikeSaintAntoine@MikeSaintAntoine Hi, I am correlating gene expression values between two same genes (cross-talk genes) from different datasets, but each gene has a control and a case sample set. In this case, what value should I use for correlation analysis?

    • @MikeSaintAntoine
      @MikeSaintAntoine 29 วันที่ผ่านมา

      @@SNMS1114 Hi! I think in that case you should include both control and sample data, and compute the correlation for the genes across both of these conditions. That will give you an idea of how the case-condition is affecting their expression -- does it affect both in the same direction? or in opposite directions? or is there no correlation? If you need any help, please feel free to email me at mikest@udel.edu and I can take a look at your code. Thanks for watching! 🙂

    • @SNMS1114
      @SNMS1114 26 วันที่ผ่านมา

      I mean cross talk genes from the different case. But i want to perform pearson correlation analysis. So, each case has samples as control and case. When I compare the crooss talk genes from different two case.

  • @gianmarcocastillohuaccho244
    @gianmarcocastillohuaccho244 3 หลายเดือนก่อน

    nice, thanks you for the video <3!!

    • @MikeSaintAntoine
      @MikeSaintAntoine 3 หลายเดือนก่อน

      Thanks for watching! 🙂

  • @dasputhucode
    @dasputhucode 3 หลายเดือนก่อน

    Hi Mike Thank you very much for the informative video. One request, can you teach the MCMC using Python as well?

    • @MikeSaintAntoine
      @MikeSaintAntoine 3 หลายเดือนก่อน

      Good idea, I'll try to make a Python version when I have time!

    • @dasputhucode
      @dasputhucode 3 หลายเดือนก่อน

      @@MikeSaintAntoine 👍

  • @KASHIFRASHEED-q4s
    @KASHIFRASHEED-q4s 3 หลายเดือนก่อน

    Hi, I just started your tutorial and very informative even for beginners (just like me) as well. My data set has numbers in GeneID rather symbols. Can you please help in how to change GeneID numbers into Symbols. Thanks again for course.

    • @MikeSaintAntoine
      @MikeSaintAntoine 3 หลายเดือนก่อน

      Hi, sorry about the late response! Yeah that's a tricky problem with gene expression analysis. Often the datasets will give you some kind of ID number rather than the actual gene name. Is there another file somewhere in the dataset that tells you how the IDs correspond to gene names? If not, then you might need to figure out what type of IDs they are, and then you can use an R library called "org.Hs.eg.db" to convert them. For example, if the IDs look like this: ENSG00000139618, then those are called Ensembl IDs and you can convert them to gene names in R like this: library(org.Hs.eg.db) gene_names <- mapIds(org.Hs.eg.db, keys = gene_ids, column = "SYMBOL",keytype = "ENSEMBL") Anyway I hope that helps. Yeah these gene ID conversions are always a bit tricky and annoying.

  • @MKGOfficial_music
    @MKGOfficial_music 3 หลายเดือนก่อน

    AMAZING VIDEO. I actually had the same struggle in finding functions for computing MI in Python. Fun fact.... My professor explained "information" as the amount of "surprise": Here is a fun example: The probability of being sunny in the desert is almost 1. Therefore, the information is low. E.g. I already know that tomorrow is likely to be sunny... However, rain in the desert is very unlikly to happen and it's unexpected. Thus, the "infomation" is higher because this message has high information.

    • @MikeSaintAntoine
      @MikeSaintAntoine 3 หลายเดือนก่อน

      Thanks for watching, and yeah I think explaining it as the amount of "surprise" a random variable has makes sense!

  • @kindheartedone8880
    @kindheartedone8880 3 หลายเดือนก่อน

    clear explanation from basics love from India... keep doing sir helps lot of students like me...🔥🔥🔥🔥😍

    • @MikeSaintAntoine
      @MikeSaintAntoine 3 หลายเดือนก่อน

      Thanks for watching and let me know if you have any questions! 🙂

  • @6PrettiestPics
    @6PrettiestPics 4 หลายเดือนก่อน

    Super interesting. Thank you!

    • @6PrettiestPics
      @6PrettiestPics 4 หลายเดือนก่อน

      What’s next??

    • @MikeSaintAntoine
      @MikeSaintAntoine 3 หลายเดือนก่อน

      Not sure! Ideally I'd like to add in some more functionality, to do some more complicated things like convolutions and transformers. Anything you'd like to see in particular?

  • @LisaMarieJerkins-il7qh
    @LisaMarieJerkins-il7qh 4 หลายเดือนก่อน

    My grandson signed up a few weeks ago, (17) and he has just learned that he is color blind. He is extremely upset!

    • @LisaMarieJerkins-il7qh
      @LisaMarieJerkins-il7qh 4 หลายเดือนก่อน

      Red- green.

    • @MikeSaintAntoine
      @MikeSaintAntoine 4 หลายเดือนก่อน

      Ah, I'm sorry to hear that! But maybe you can tell him to try to look on the bright side. Even though it limits what he can do, it won't disqualify him completely from joining like a lot of other medical conditions would. Also if he has any questions about it he can always send me an email at mikest@udel.edu.

  • @avellanedam
    @avellanedam 4 หลายเดือนก่อน

    Thank you very much for this video, Mike. I finally find a way to go when estimating parameters for ODEs. In my particular case, I don't have any idea on a prior estimation for several of them, thus I find very useful your video. I have a DAE system that has 3 ODEs and one AE, and 12 parameters to estimate. I have two questions respect the modifications I need to make to the code you kindly provide, in order to carry on the estimation: 1) I see that, in the datagen function, the output [out] includes a sum(y,2), which I understand it returns a vector with the sum per each row of the cell count part of the ODE just solved by ode23s. In the example, it is just one column for the dependent variable, so the sum is just the same value for the cell count solution for each time. If I have 3 dependent variables in the solution, should I use the sum as you wrote it?, or should I use plainly the resulting matrix? (I doubt myself on doing the sum, since one of the variables does not have the same units as the other two variables). 2) In the likelihood estimation, how do I proceed to calculate it?: do I calculate 3 likelihoods for each variable and sum them up later? do I modify the data and datagen matrices inside the pdf function to include directly all the columns for the 3 dependent variables? (does the code line work like that for multivariate LL?) I am kind of lost, as I did some out-of-the-blue modifications, but the code won't advance from iteration 2 when running it (also given that my laptop is not the fastest :/ ) Any help would be valuable, if the method works for me, I can proceed with my PhD thesis dissertation data analysis and writing (longing toooo much to finish it!). Thanks again for such a great video! Very valuable!

    • @MikeSaintAntoine
      @MikeSaintAntoine 4 หลายเดือนก่อน

      Hey Luis, I got your email and replied! 🙂

    • @avellanedam
      @avellanedam 3 หลายเดือนก่อน

      @@MikeSaintAntoine I sawit and your remarks were really helpful! Thank you very, very much!

  • @6PrettiestPics
    @6PrettiestPics 4 หลายเดือนก่อน

    Sendex +1

  • @6PrettiestPics
    @6PrettiestPics 4 หลายเดือนก่อน

    Always very well explained.