2.1 Linux Basic Homework
徐英泽 2024011267
返回引导页
0. 将test_command.gtf 复制入 docker /home/test/desktop
-
0.1 创建 docker /home/test/desktop
cd /home/test mkdir desktop ls /home/test alter-spl blast chip-seq desktop diff-exp gsea homer linux mapping plot share software(docker linux 环境 )
-
0.2 test_command.gtf 复制入 docker /home/test/desktop
docker cp "C:\Users\54727\Downloads\test_command.gtf" XuYingze_Linux:/home/test/desktop/ Successfully copied 2.56kB to XuYingze_Linux:/home/test/desktop/(windows 环境 )
1. 查看原文件
test@bioinfo_docker:~$ cd /home/test/desktop
test@bioinfo_docker:~/desktop$ cat test_command.gtf
chr_IV ensembl gene 1802 2953 . + . gene_id "YDL248W"; gene_version "1";
chr_IV ensembl transcript 802 2953 . + . gene_id "YDL248W"; gene_version "1";
chromosome_IV ensembl exon 1802 2953 . + . gene_id "YDL248W"; gene_version "1";
chromosome_IV ensembl CDS 1802 950 . + 0 gene_id "YDL248W"; gene_version "1";
chr_IV ensembl start_codon 1802 1804 . + 0 gene_id "YDL248W"; gene_version "1";
chromosome_IV ensembl stop_codon 2951 2953 . + 0 gene_id "YDL248W"; gene_version "1";
chromosome_IV ensembl gene 762 3836 . + . gene_id "YDL247W-A"; gene_version "1";
chr_IV ensembl transcript 3762 836 . + . gene_id "YDL247W-A"; gene_version "1";
2. 使用相关命令或命令组合分别统计文件的行数以及字符数
test@bioinfo_docker:~/desktop$ wc test_command.gtf
8 96 636 test_command.gtf
test@bioinfo_docker:~/desktop$ wc -l test_command.gtf
8 test_command.gtf #行数
test@bioinfo_docker:~/desktop$ wc -c test_command.gtf
636 test_command.gtf #字节数
test@bioinfo_docker:~/desktop$ wc -w test_command.gtf
96 test_command.gtf #单词数
test@bioinfo_docker:~/desktop$ wc -m test_command.gtf
636 test_command.gtf #字符数
test@bioinfo_docker:~/desktop$ wc -lc test_command.gtf
8 636 test_command.gtf #组合使用
test@bioinfo_docker:~/desktop$ wc -cl test_command.gtf
8 636 test_command.gtf #组合使用
(行数为8,单词数为96,字节数为636,也可使用-l -c指令分别统计文件的行数与字节数 )
3. 利用 grep 等命令尝试筛选并输出示例文件中以 chr_ 起始,并且基因id为 YDL248W 的行
method 1
test@bioinfo_docker:~/desktop$ grep "^chr_.*YDL248W" test_command.gtf
chr_IV ensembl gene 1802 2953 . + . gene_id "YDL248W"; gene_version "1";
chr_IV ensembl transcript 802 2953 . + . gene_id "YDL248W"; gene_version "1";
chr_IV ensembl start_codon 1802 1804 . + 0 gene_id "YDL248W"; gene_version "1";
method 2
test@bioinfo_docker:~/desktop$ grep "^chr_" test_command.gtf | grep "YDL248W"
chr_IV ensembl gene 1802 2953 . + . gene_id "YDL248W"; gene_version "1";
chr_IV ensembl transcript 802 2953 . + . gene_id "YDL248W"; gene_version "1";
chr_IV ensembl start_codon 1802 1804 . + 0 gene_id "YDL248W"; gene_version "1";
(’^’符号指行的开头,‘.’指任意字符,‘*’指前面的字符出现0次或无数次 )
4. 使用sed 等命令将示例文件中的 chr_ 替换为 chromosome_ 并输出每行的第1,3,4,5列
test@bioinfo_docker:~/desktop$ sed 's/chr_/chromosome_/g' test_command.gtf | cut -f 1,
3,4,5
chromosome_IV gene 1802 2953
chromosome_IV transcript 802 2953
chromosome_IV exon 1802 2953
chromosome_IV CDS 1802 950
chromosome_IV start_codon 1802 1804
chromosome_IV stop_codon 2951 2953
chromosome_IV gene 762 3836
chromosome_IV transcript 3762 836
5. 通过man命令以及更多的资料学习简单的 awk 命令,尝试互换示例文件的第2列和第3列,并且对输出结果利用 sort 命令依照第4和第5列数字大小排序,将最终结果输出到result.gtf文件中
test@bioinfo_docker:~/desktop$ awk '{print $1, $3, $2, $4, $5, $6, $7, $8, $9}' test_command.gtf | sort -k4,4n -k5,5n > result.gtf
test@bioinfo_docker:~/desktop$ ls /home/test/desktop
result.gtf test_command.gtf
test@bioinfo_docker:~/desktop$ cat result.gtf
chromosome_IV gene ensembl 762 3836 . + . gene_id
chr_IV transcript ensembl 802 2953 . + . gene_id
chromosome_IV CDS ensembl 1802 950 . + 0 gene_id
chr_IV start_codon ensembl 1802 1804 . + 0 gene_id
chr_IV gene ensembl 1802 2953 . + . gene_id
chromosome_IV exon ensembl 1802 2953 . + . gene_id
chromosome_IV stop_codon ensembl 2951 2953 . + 0 gene_id
chr_IV transcript ensembl 3762 836 . + . gene_id
(导出至result.gtf后,检查desktop中是否含有该文件并打开该文件 )
6. 更改示例文件的权限,使得文件所有者及所在用户组用户可读、写、执行而其他用户只可读,展示权限修改前后的权限变化。
PS C:\Users\54727> docker exec -it -u root XuYingze_Linux bash
root@bioinfo_docker:/home/test# cd desktop
root@bioinfo_docker:/home/test/desktop# ls -hl test_command.gtf
-rwxr-xr-x 1 root root 636 Mar 10 08:21 test_command.gtf #修改前权限
root@bioinfo_docker:/home/test/desktop# chmod ug=rwx,o=r test_command.gtf
root@bioinfo_docker:/home/test/desktop# ls -hl test_command.gtf
-rwxrwxr-- 1 root root 636 Mar 10 08:21 test_command.gtf #修改后权限
(需要注意的是,在进入linux虚拟系统的指令中,加入-u root指令,才能以文件所有者身份进行操作,否则会被认定为其他用户 )